diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 775fc48c..56811684 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -828,6 +828,36 @@ jobs: EOF - run: | twine upload --repository pypi *.whl + docker-publish: + name: "Build and publish Docker training image to GHCR" + runs-on: ubuntu-20.04 + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + submodules: 'recursive' + - name: Log in to the Container registry + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Check VERSION matches Git tag and compute Docker tag + id: compute-tag + run: | + VERSION="v$(cat VERSION)" + if [[ "${{ github.ref }}" != "refs/tags/${VERSION}" ]]; then + echo "Pushed tag does not match VERSION file. Aborting push." + exit 1 + fi + echo "::set-output name=tag::${VERSION}" + - name: Build and push + run: | + DOCKER_TAG="${{ steps.compute-tag.outputs.tag }}" + docker build -f Dockerfile.train . -t ghcr.io/coqui-ai/stt-train:latest -t "ghcr.io/coqui-ai/stt-train:${DOCKER_TAG}" + docker push "ghcr.io/coqui-ai/stt-train:${DOCKER_TAG}" + docker push ghcr.io/coqui-ai/stt-train:latest twine-upload-decoder: name: "Upload coqui_stt_ctcdecoder packages to PyPI" runs-on: ubuntu-20.04 @@ -1496,7 +1526,7 @@ jobs: - id: get_cache_key uses: ./.github/actions/get_cache_key with: - extras: "8" + extras: "9" - id: check_artifact_exists uses: ./.github/actions/check_artifact_exists with: diff --git a/Dockerfile.train b/Dockerfile.train index a31f17b3..0e86fa2a 100644 --- a/Dockerfile.train +++ b/Dockerfile.train @@ -44,7 +44,7 @@ RUN wget --no-check-certificate https://github.com/coqui-ai/STT/releases/downloa rm temp.tar.xz -FROM nvcr.io/nvidia/tensorflow:21.05-tf1-py3 +FROM nvcr.io/nvidia/tensorflow:20.06-tf1-py3 ENV DEBIAN_FRONTEND=noninteractive # We need to purge python3-xdg because