fix: Update actions doc to reflect new create_components option (#1231) #2610
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build and Publish Docker image | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| - v[0-9]+.[0-9]+.[0-9]+ | |
| jobs: | |
| build-and-publish: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: 'read' | |
| id-token: 'write' | |
| env: | |
| TEST_TAG: ${{ github.repository }}:test | |
| TEST_CONTAINER_NAME: jbi-healthcheck | |
| GAR_LOCATION: us | |
| GAR_REPOSITORY: jbi-prod | |
| GCP_PROJECT_ID: moz-fx-jbi-prod | |
| IMAGE: jbi | |
| steps: | |
| - name: Check out the repo | |
| uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 # Fetch everything (tags) | |
| fetch-tags: true | |
| - name: Set tag version | |
| run: echo "JBI_TAG=$(git describe --tags --abbrev=4)" >> $GITHUB_ENV | |
| - name: Build `version.json` file | |
| run: | | |
| printf '{\n "commit": "%s",\n "version": "%s",\n "source": "%s",\n "build": "%s"\n}\n' \ | |
| "$GITHUB_SHA" \ | |
| "$JBI_TAG" \ | |
| "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" \ | |
| "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" > ./version.json | |
| - name: Extract metadata (tags, labels) for Docker | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: | | |
| ${{ github.repository }} | |
| ${{ env.GAR_LOCATION }}-docker.pkg.dev/${{ env.GCP_PROJECT_ID }}/${{ env.GAR_REPOSITORY }}/${{ env.IMAGE }} | |
| # https://github.com/marketplace/actions/docker-metadata-action#tags-input | |
| tags: | | |
| type=semver,pattern={{raw}} | |
| type=raw,value=latest,enable={{is_default_branch}} | |
| type=sha,prefix=,enable={{is_default_branch}} | |
| - id: gcp_auth | |
| name: Log into GCP | |
| uses: google-github-actions/auth@v3 | |
| if: github.event_name != 'pull_request' | |
| with: | |
| token_format: access_token | |
| service_account: artifact-writer@${{ env.GCP_PROJECT_ID }}.iam.gserviceaccount.com | |
| workload_identity_provider: ${{ vars.GCPV2_GITHUB_WORKLOAD_IDENTITY_PROVIDER }} | |
| - name: Login to GAR | |
| uses: docker/login-action@v3 | |
| if: github.event_name != 'pull_request' | |
| with: | |
| registry: ${{ env.GAR_LOCATION }}-docker.pkg.dev | |
| username: oauth2accesstoken | |
| password: ${{ steps.gcp_auth.outputs.access_token }} | |
| - name: Login to Docker Hub | |
| if: github.event_name != 'pull_request' | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build and export to Docker | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| load: true | |
| push: false | |
| tags: ${{ env.TEST_TAG }} | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max | |
| - name: Spin up container | |
| run: | | |
| docker run \ | |
| --name ${{ env.TEST_CONTAINER_NAME }} \ | |
| --detach \ | |
| --env-file .env.example \ | |
| --publish 8000:8000 \ | |
| ${{ env.TEST_TAG }} | |
| - name: Check that container is running | |
| run: | | |
| docker exec ${{ env.TEST_CONTAINER_NAME }} curl --retry 10 --retry-delay 1 --retry-connrefused http://127.0.0.1:8000/__heartbeat__ | |
| - name: Spin down container | |
| run: | | |
| docker rm -f ${{ env.TEST_CONTAINER_NAME }} | |
| - name: Build and push | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| push: ${{ github.event_name != 'pull_request' }} | |
| tags: ${{ steps.meta.outputs.tags }} | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max |