version: 2 jobs: # ======================================================================================= # Python 3.6 testing. # ======================================================================================= test-3.6: docker: - image: python:3.6 working_directory: ~/spleeter steps: - checkout - run: name: install ffmpeg command: apt-get update && apt-get install -y ffmpeg - run: name: install python dependencies command: pip install -r requirements.txt && pip install pytest - run: name: pytest command: pytest -W ignore::FutureWarning -W ignore::DeprecationWarning # ======================================================================================= # Python 3.7 testing. # ======================================================================================= test-3.7: docker: - image: python:3.7 working_directory: ~/spleeter steps: - checkout - run: name: install ffmpeg command: apt-get update && apt-get install -y ffmpeg - run: name: install python dependencies command: pip install -r requirements.txt && pip install pytest - run: name: pytest command: pytest -W ignore::FutureWarning -W ignore::DeprecationWarning # ======================================================================================= # Source distribution packaging. # ======================================================================================= sdist: docker: - image: python:3 steps: - checkout - run: name: package command: python setup.py sdist - save_cache: key: sdist-{{ .Branch }}-{{ checksum "setup.py" }} paths: - dist # ======================================================================================= # PyPi deployment. # ======================================================================================= pypi-deploy: docker: - image: python:3 steps: - checkout - restore_cache: key: sdist-{{ .Branch }}-{{ checksum "setup.py" }} - run: name: upload to PyPi command: pip install twine && twine upload dist/* workflows: version: 2 spleeter-workflow: jobs: - test-3.6 - test-3.7 - sdist: requires: - test-3.6 - test-3.7 - pypi-deploy: filters: branches: only: - master - development requires: - sdist