Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
matrix:
# Environments in which to run, such as those used in development and production, or which are candidates to
# move to.
os: ["ubuntu-22.04"]
os: ["ubuntu-24.04"]

Choose a reason for hiding this comment

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

🔴 chromium-browser command likely unavailable on ubuntu-24.04 runners, causing CI failure

The OS is changed from ubuntu-22.04 to ubuntu-24.04, but the "Pre-build report" steps at .github/workflows/build-and-test.yml:65-66 and .github/workflows/build-and-test.yml:180-181 still reference chromium-browser (via which chromium-browser and chromium-browser --version). On Ubuntu 24.04, the chromium-browser apt package became a snap transitional package, and GitHub Actions runners don't support snap well. The Chromium binary on ubuntu-24.04 is typically named chromium rather than chromium-browser. Because these steps run with set -xueo pipefail, a failed which chromium-browser command will immediately fail the entire job.

Affected lines in build-and-test.yml

Lines 65-66 (build-development job):

          which chromium-browser
          chromium-browser --version

Lines 180-181 (build-production job):

          which chromium-browser
          chromium-browser --version
Prompt for agents
In .github/workflows/build-and-test.yml, the two "Pre-build report" steps (around lines 53-66 and 168-181) reference `chromium-browser`, which may not exist on ubuntu-24.04 GitHub Actions runners. Update lines 65-66 and 180-181 to use `chromium` instead of `chromium-browser`, or use a fallback like `which chromium-browser || which chromium` and `chromium-browser --version || chromium --version`. Also check the Ansible playbook at deploy/dev-server.playbook.yml:144 which sets `CHROME_BIN=chromium-browser` and may also need updating for ubuntu-24.04 compatibility in the e2e-tests.yml workflow.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Collaborator

Choose a reason for hiding this comment

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

The manifest shows that Chromium is at least in the Ubuntu 24.04 runner. Checking a runner's logs from this PR, we see

+ which chromium-browser
/usr/bin/chromium-browser
+ chromium-browser --version
Chromium 145.0.7632.0 

So it looks like it is fine.

Choose a reason for hiding this comment

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

🚩 Incomplete OS migration across workflow files

Several other workflow files still reference ubuntu-22.04: compute-next-version.yml:32, release-live.yml:33,121, and release-qa.yml:29,76,142. This may be intentional (e.g., release workflows might need to stay on ubuntu-22.04 to match production, or may be updated in a separate PR), but it's worth confirming this is deliberate rather than an oversight.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Let's also update os in these remaining 3 files as well. Note that when we update os in release-live.yml and release-qa.yml, there might be initial problems deploying, because of default rsync arguments. So after we make that change I'd like to watch what happens when deploying to QA.

That change may as well be in this PR, but I won't hold up approval for that.

dotnet_version: ["8.0.x"]
node_version: ["22.13.0"]
npm_version: ["11.11.0"]
Expand Down Expand Up @@ -133,7 +133,7 @@ jobs:
name: "Production build and test"
strategy:
matrix:
os: ["ubuntu-22.04"]
os: ["ubuntu-24.04"]
dotnet_version: ["8.0.x"]
node_version: ["22.13.0"]
npm_version: ["11.11.0"]
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/chromatic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
name: "Deploy Storybook to Chromatic"
strategy:
matrix:
os: ["ubuntu-22.04"]
os: ["ubuntu-24.04"]
node_version: ["22.13.0"]
npm_version: ["11.11.0"]
runs-on: ${{matrix.os}}
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
name: "Prepare Realtime Server backend"
strategy:
matrix:
os: ["ubuntu-22.04"]
os: ["ubuntu-24.04"]
dotnet_version: ["8.0.x"]
node_version: ["22.13.0"]
npm_version: ["11.11.0"]
Expand Down Expand Up @@ -78,7 +78,7 @@ jobs:
needs: [prepare-realtimeserver-backend]
strategy:
matrix:
os: ["ubuntu-22.04"]
os: ["ubuntu-24.04"]
dotnet_version: ["8.0.x"]
node_version: ["22.13.0"]
npm_version: ["11.11.0"]
Expand Down Expand Up @@ -148,7 +148,7 @@ jobs:
needs: [prepare-realtimeserver-backend]
strategy:
matrix:
os: ["ubuntu-22.04"]
os: ["ubuntu-24.04"]
dotnet_version: ["8.0.x"]
node_version: ["22.13.0"]
npm_version: ["11.11.0"]
Expand Down Expand Up @@ -230,7 +230,7 @@ jobs:
needs: [prepare-realtimeserver-backend]
strategy:
matrix:
os: ["ubuntu-22.04"]
os: ["ubuntu-24.04"]
dotnet_version: ["8.0.x"]
node_version: ["22.13.0"]
npm_version: ["11.11.0"]
Expand Down Expand Up @@ -291,7 +291,7 @@ jobs:
environment: "e2e_tests"
strategy:
matrix:
os: ["ubuntu-22.04"]
os: ["ubuntu-24.04"]

Choose a reason for hiding this comment

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

🚩 Ansible playbook also references chromium-browser

The E2E tests workflow runs ansible-playbook dev-server.playbook.yml --limit localhost --diff at .github/workflows/e2e-tests.yml:446. The playbook at deploy/dev-server.playbook.yml:144 sets CHROME_BIN=chromium-browser. If chromium-browser doesn't exist on ubuntu-24.04, this would cause the karma test runner to fail to find a browser when running frontend tests in the E2E workflow. This is downstream of the same chromium-browser naming concern flagged as a bug, but affects a different workflow (e2e-tests.yml) via the Ansible playbook rather than directly in the workflow YAML.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I don't think it's a problem. And the E2E build passed.

dotnet_version: ["8.0.x"]
node_version: ["22.13.0"]
npm_version: ["11.11.0"]
Expand Down
Loading