Add a status mapping for FOG migration #2332
Workflow file for this run
This file contains 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@v4 | |
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@v2 | |
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/#-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/#-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 }} python bin/healthcheck.py | |
- 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 |