name: Build & Publish Docker Image on: push: tags: - 'v[0-9]+.[0-9]+.[0-9]+' env: IMAGE: recklessop/zroc-ui CONTEXT: ./zroc-ui jobs: build-and-push: name: Build & Push runs-on: ubuntu-latest permissions: contents: read packages: write steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log in to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract version from tag id: meta run: | VERSION=${GITHUB_REF_NAME#v} echo "version=$VERSION" >> $GITHUB_OUTPUT echo "tag=$GITHUB_REF_NAME" >> $GITHUB_OUTPUT - name: Build and push uses: docker/build-push-action@v5 with: context: ${{ env.CONTEXT }} platforms: linux/amd64,linux/arm64 push: true tags: | ${{ env.IMAGE }}:${{ steps.meta.outputs.version }} ${{ env.IMAGE }}:stable ${{ env.IMAGE }}:latest cache-from: type=gha cache-to: type=gha,mode=max build-args: | BUILD_VERSION=${{ steps.meta.outputs.version }} BUILD_DATE=${{ github.event.repository.updated_at }} GIT_SHA=${{ github.sha }} - name: Update Docker Hub description uses: peter-evans/dockerhub-description@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} repository: ${{ env.IMAGE }} readme-filepath: ./zroc-ui/DOCKER_README.md short-description: "zROC UI — Zerto Resiliency Observation Console frontend"