|
|
- name: docker
- on:
- workflow_dispatch:
- inputs:
- version:
- description: "Spleeter version to build image for"
- required: true
- default: "2.1.2"
- jobs:
- cuda-base:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- distribution: [3.6, 3.7, 3.8]
- fail-fast: true
- steps:
- - uses: actions/checkout@v2
- - name: Build CUDA base image
- run: |
- docker build \
- --build-arg BASE=python:${{ matrix.distribution }} \
- -t deezer/python-cuda-10-1:${{ matrix.distribution }} \
- -f docker/cuda-10-1.dockerfile .
- - name: Docker login
- run: echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
- - name: Push deezer/python-cuda-10-1:${{ matrix.distribution }} image
- run: docker push deezer/python-cuda-10-1:${{ matrix.distribution }}
- pip-images:
- needs: cuda-base
- runs-on: ubuntu-latest
- strategy:
- matrix:
- platform: [cpu, gpu]
- distribution: [3.6, 3.7, 3.8]
- fail-fast: true
- steps:
- - uses: actions/checkout@v2
- - if: ${{ matrix.platform == 'cpu' }}
- run: |
- echo "base=python:${{ matrix.distribution }}" >> $GITHUB_ENV
- echo "image=spleeter" >> $GITHUB_ENV
- - if: ${{ matrix.platform == 'gpu' }}
- run: |
- echo "base=deezer/python-cuda-10-1:${{ matrix.distribution }}" >> $GITHUB_ENV
- echo "image=spleeter-gpu" >> $GITHUB_ENV
- - name: Build deezer/${{ env.image }}:${{ matrix.distribution }} image
- run: |
- docker build \
- --build-arg BASE=${{ env.base }} \
- --build-arg SPLEETER_VERSION=${{ github.event.inputs.version }} \
- -t deezer/${{ env.image }}:${{ matrix.distribution }} \
- -f docker/spleeter.dockerfile .
- - name: Test deezer/${{ env.image }}:${{ matrix.distribution }} image
- run: |
- docker run \
- -v $(pwd):/runtime \
- deezer/${{ env.image }}:${{ matrix.distribution }} \
- separate -o /tmp /runtime/audio_example.mp3
- - name: Docker login
- run: echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
- - name: Push deezer/${{ env.image }}:${{ matrix.distribution }} image
- run: docker push deezer/${{ env.image }}:${{ matrix.distribution }}
- conda-images:
- needs: cuda-base
- runs-on: ubuntu-latest
- strategy:
- matrix:
- platform: [cpu, gpu]
- fail-fast: true
- steps:
- - uses: actions/checkout@v2
- - if: ${{ matrix.platform == 'cpu' }}
- name: Build Conda base image
- run: |
- docker build -t conda:cpu -f docker/conda.dockerfile .
- echo "image=spleeter" >> $GITHUB_ENV
- - if: ${{ matrix.platform == 'gpu' }}
- name: Build Conda base image
- run: |
- docker build --build-arg BASE=deezer/python-cuda-10-1:3.8 -t conda:gpu -f docker/conda.dockerfile .
- echo "image=spleeter-gpu" >> $GITHUB_ENV
- - name: Build deezer/${{ env.image }}:${{ env.tag }} image
- run: |
- docker build \
- --build-arg BASE=conda:${{ matrix.platform }} \
- --build-arg SPLEETER_VERSION=${{ github.event.inputs.version }} \
- -t deezer/${{ env.image }}:conda \
- -f docker/spleeter-conda.dockerfile .
- - name: Docker login
- run: echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
- - name: Push deezer/${{ env.image }}:conda image
- run: docker push deezer/${{ env.image }}:conda
- images-with-model:
- needs: [pip-images, conda-images]
- runs-on: ubuntu-latest
- strategy:
- matrix:
- platform: [cpu, gpu]
- distribution: [3.6, 3.7, 3.8]
- model: [2stems, 4stems, 5stems]
- fail-fast: true
- steps:
- - uses: actions/checkout@v2
- - if: ${{ matrix.platform == 'cpu' }}
- run: echo "image=spleeter" >> $GITHUB_ENV
- - if: ${{ matrix.platform == 'gpu' }}
- run: echo "image=spleeter-gpu" >> $GITHUB_ENV
- - name: Build deezer/${{ env.image }}:${{ matrix.distribution }}-${{ matrix.model }} image
- run: |
- docker build \
- --build-arg BASE=deezer/${{ env.image }}:${{ matrix.distribution }} \
- --build-arg MODEL=${{ matrix.model }} \
- -t deezer/${{ env.image }}:${{ matrix.distribution }}-${{ matrix.model }} \
- -f docker/spleeter-model.dockerfile .
- - name: Test deezer/${{ env.image }}:${{ matrix.distribution }}-${{ matrix.model }} image
- run: |
- docker run \
- -v $(pwd):/runtime \
- deezer/${{ env.image }}:${{ matrix.distribution }} \
- separate -o /tmp -p spleeter:${{ matrix.model }} /runtime/audio_example.mp3
- - name: Docker login
- run: echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
- - name: Push deezer/${{ env.image }}:${{ matrix.distribution }}-${{ matrix.model }} image
- run: docker push deezer/${{ env.image }}:${{ matrix.distribution }}-${{ matrix.model }}
|