diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 8a91543d..04b74933 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -1,30 +1,38 @@ -name: Docker Buildx +name: Docker Build and Optionally Push on: push: - branches: - - main + release: + types: [created] jobs: - build: + build-and-push: runs-on: ubuntu-latest steps: - - - name: Checkout + - name: Checkout uses: actions/checkout@v4 - - - name: Login to Docker Hub + + - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Set up Docker Buildx + + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - - name: Build and push + + - name: Determine Tag + id: get_tag + run: | + if [[ "${{ github.event_name }}" == "push" ]]; then + echo "::set-output name=tag::latest" + elif [[ "${{ github.event_name }}" == "release" ]]; then + echo "::set-output name=tag::${{ github.event.release.tag_name }}" + fi + + - name: Build and optionally push uses: docker/build-push-action@v5 with: context: . - push: false - tags: ${{ secrets.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest + push: ${{ github.event_name == 'release' }} + tags: ${{ secrets.DOCKER_USERNAME }}/${{ github.event.repository.name }}:${{ steps.get_tag.outputs.tag }}