name: Build and Push to ACR # Builds the arcade-eval reference MCP server image and pushes it to the # ServiceTitan dev Azure Container Registry. The image is consumed by # apps/mcp/arcade-eval-ref/ in k8s-backstage-v2 (backstage-wus2-v4). # # Adapted from servicetitan/mem0 .github/workflows/build-push-acr.yml. # Requires repo secrets ACR_DEV_USERNAME and ACR_DEV_PASSWORD. on: workflow_dispatch: push: branches: - main paths: - 'lib/mcp_server/**' - '.github/workflows/build-push-acr.yml' env: REGISTRY: servicetitandev.azurecr.io IMAGE: arcade-eval-ref VERSION_PREFIX: "1.0" jobs: build-and-push: runs-on: ubuntu-latest permissions: contents: read steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to ACR uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ secrets.ACR_DEV_USERNAME }} password: ${{ secrets.ACR_DEV_PASSWORD }} - name: Generate image tag id: meta run: | echo "tag=${{ env.VERSION_PREFIX }}.${{ github.run_number }}" >> "$GITHUB_OUTPUT" - name: Build and push uses: docker/build-push-action@v6 with: context: lib/mcp_server file: lib/mcp_server/Dockerfile push: true tags: | ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ steps.meta.outputs.tag }} cache-from: type=gha,scope=${{ env.IMAGE }} cache-to: type=gha,mode=max,scope=${{ env.IMAGE }}