Skip to content

Migrate CI/CD from CircleCI to GitHub Actions #9309

Open
sylvestre wants to merge 5 commits intomozilla:masterfrom
sylvestre:master
Open

Migrate CI/CD from CircleCI to GitHub Actions #9309
sylvestre wants to merge 5 commits intomozilla:masterfrom
sylvestre:master

Conversation

@sylvestre
Copy link
Contributor

No description provided.

@codecov-commenter
Copy link

codecov-commenter commented Mar 16, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.20%. Comparing base (2da013d) to head (0c16306).
⚠️ Report is 12 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff            @@
##           master    #9309    +/-   ##
========================================
  Coverage   82.19%   82.20%            
========================================
  Files         615      615            
  Lines       34695    34695            
  Branches     3229     3295    +66     
========================================
+ Hits        28518    28520     +2     
+ Misses       6053     5832   -221     
- Partials      124      343   +219     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@sylvestre sylvestre mentioned this pull request Mar 16, 2026
@sylvestre sylvestre marked this pull request as ready for review March 16, 2026 14:23
"$GITHUB_SHA" \
"${{ github.ref_name }}" \
"$GITHUB_REPOSITORY" \
"$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" > version.json
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IDK if this must follow a specific format

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it does, it's a bit different than what we had with CircleCI

tag_and_push "${{ github.ref_name }}"
fi

# Deploy to GCP Artifact Registry
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to find a way to test these steps, there are some minor differences between CircleCI and this one that I don't know if they are required (e.g. "use_oidc")

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah oidc might be required, I see in bugbug we are doing things a bit different than what you're doing here: https://github.com/mozilla/bugbug/blob/11b9dc0ce9fdbbc7c8846dffa1f10d6e8a77bc57/.github/workflows/docker-push.yml#L58

But bugbug is on mozcloud v2 while treeherder is on v1, so I don't know if we can use it fully as an example

- uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'pnpm'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We were locking to a specific version here, probably to avoid unexpected regressions

name: Run Jest tests
- uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need the codecov token? IIRC it was possible to upload without a token from a github action

Comment on lines +50 to +53
- name: Create docker-compose shim
run: |
printf '#!/bin/sh\nexec docker compose "$@"\n' | sudo tee /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feels wonky

Comment on lines +101 to +109
- name: Create version.json
run: |
printf '{"commit":"%s","version":"%s","source":"https://github.com/%s","build":"%s"}\n' \
"$GITHUB_SHA" \
"${{ github.ref_name }}" \
"$GITHUB_REPOSITORY" \
"$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" > version.json
- name: Build Docker image
run: DOCKER_BUILDKIT=1 docker build -f docker/Dockerfile -t app:build .
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These steps are duplicated between "test-docker-build" and "deploy", could we share them somehow like we were doing with circleci?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants