Spaces:
Runtime error
Runtime error
| name: "Docker build and push" | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| - dev | |
| tags: | |
| - v* | |
| jobs: | |
| docker-build: | |
| name: "Build and push Docker image" | |
| runs-on: ubuntu-20.04 | |
| strategy: | |
| matrix: | |
| arch: ["amd64"] | |
| base: | |
| - "nvidia/cuda:11.8.0-base-ubuntu22.04" # GPU enabled | |
| - "python:3.10.8-slim" # CPU only | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Log in to the Container registry | |
| uses: docker/login-action@v1 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Compute Docker tags, check VERSION file matches tag | |
| id: compute-tag | |
| run: | | |
| set -ex | |
| base="ghcr.io/coqui-ai/tts" | |
| tags="" # PR build | |
| if [[ ${{ matrix.base }} = "python:3.10.8-slim" ]]; then | |
| base="ghcr.io/coqui-ai/tts-cpu" | |
| fi | |
| if [[ "${{ startsWith(github.ref, 'refs/heads/') }}" = "true" ]]; then | |
| # Push to branch | |
| github_ref="${{ github.ref }}" | |
| branch=${github_ref#*refs/heads/} # strip prefix to get branch name | |
| tags="${base}:${branch},${base}:${{ github.sha }}," | |
| elif [[ "${{ startsWith(github.ref, 'refs/tags/') }}" = "true" ]]; then | |
| VERSION="v$(cat TTS/VERSION)" | |
| if [[ "${{ github.ref }}" != "refs/tags/${VERSION}" ]]; then | |
| echo "Pushed tag does not match VERSION file. Aborting push." | |
| exit 1 | |
| fi | |
| tags="${base}:${VERSION},${base}:latest,${base}:${{ github.sha }}" | |
| fi | |
| echo "::set-output name=tags::${tags}" | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v1 | |
| - name: Set up Docker Buildx | |
| id: buildx | |
| uses: docker/setup-buildx-action@v1 | |
| - name: Build and push | |
| uses: docker/build-push-action@v2 | |
| with: | |
| context: . | |
| platforms: linux/${{ matrix.arch }} | |
| push: ${{ github.event_name == 'push' }} | |
| build-args: "BASE=${{ matrix.base }}" | |
| tags: ${{ steps.compute-tag.outputs.tags }} | |