name: update docker image on: push: branches: - dev - master tags: - 'v*.*.*' env: CREATE_IMAGE: "true" IMAGE_TAG: "dev" jobs: build: runs-on: ubuntu-latest steps: - name: set docker image tag run: | if [[ "${{ github.ref }}" == "refs/heads/dev" ]]; then echo "IMAGE_TAG=dev" >> $env:GITHUB_ENV echo "CREATE_IMAGE=true" >> $env:GITHUB_ENV elif [[ "${{ github.ref_type }}" == "tag" ]]; then echo "IMAGE_TAG=${{ github.ref_name }}" echo "CREATE_IMAGE=true" >> $env:GITHUB_ENV else echo "CREATE_IMAGE=false" >> $env:GITHUB_ENV fi - name: Login to Docker Hub uses: docker/login-action@v3 if: env.CREATE_IMAGE == 'true' with: username: ${{ vars.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 if: env.CREATE_IMAGE == 'true' - name: Build and push uses: docker/build-push-action@v6 if: env.CREATE_IMAGE == 'true' with: push: true tags: ${{ vars.DOCKERHUB_USERNAME }}/${{ github.repository }}:${{ env.IMAGE_TAG }}