Skip to content

ci: install Mono for Ubuntu (ARM64) - #4545

Merged
jpnurmi merged 3 commits into
mainfrom
build/linux-arm64
Sep 19, 2025
Merged

jpnurmi merged 3 commits into
mainfrom
build/linux-arm64

Conversation

@jpnurmi

@jpnurmi jpnurmi commented Sep 19, 2025 •

Copy link
Copy Markdown
Collaborator

The latest ubuntu-22.04-arm VM image no longer has Mono pre-installed.

P.S. We can let APT install Mono on any Ubuntu runner regardless of its version or architecture. It's a quick no-op on those Ubuntu runners (22.04/x64) that have it pre-installed. This way, we're prepared and can more easily bump to a newer Ubuntu when the time comes.

Close: #4543

#skip-changelog

@jpnurmi jpnurmi changed the title build: install Mono for Linux (ARM64) ci: install Mono for Linux (ARM64) Sep 19, 2025
@jpnurmi jpnurmi changed the title ci: install Mono for Linux (ARM64) ci: install Mono for Ubuntu (ARM64) Sep 19, 2025
@codecov

codecov Bot commented Sep 19, 2025 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 73.40%. Comparing base (03721c1) to head (aa678ee).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4545      +/-   ##
==========================================
+ Coverage   73.39%   73.40%   +0.01%     
==========================================
  Files         479      479              
  Lines       17506    17506              
  Branches     3480     3480              
==========================================
+ Hits        12849    12851       +2     
+ Misses       3776     3775       -1     
+ Partials      881      880       -1     

☔ 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.

@jpnurmi
jpnurmi marked this pull request as ready for review September 19, 2025 08:26
Comment thread .github/actions/environment/action.yml

@jamescrosswell jamescrosswell left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM once the remaining builds complete.

❤️

@jpnurmi
jpnurmi merged commit 72d56c5 into main Sep 19, 2025
34 checks passed
@jpnurmi
jpnurmi deleted the build/linux-arm64 branch September 19, 2025 09:41
jamescrosswell added a commit that referenced this pull request Oct 27, 2026
* ci: stop installing Mono

Every Linux and macOS job installed Mono, but nothing runs it. #4545
added it for the net4-console integration test, which ran the .NET
Framework app through Mono there. Two weeks later #4461 made that test
Windows-only, and the logs show it skipped on Linux and macOS. The .NET
Framework unit tests only build on Windows too.

On Ubuntu the install downloads 53 MB from the package mirror. On
October 23 that download took 15 to 21 minutes in 4 linux-x64 legs and
1 Android device test job. The chmod after it only repaired the
/usr/share/dotnet permissions that installing Mono had changed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* ci: stop writing detailed text build logs

The Build step wrote a detailed text log next to the binlog, 1.9 GB on
macOS, and uploaded both. The binlog holds the same events and warnings,
and nothing reads the text log. The MSBuild job and the integration test
builds wrote one too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* ci: install only the workloads each job needs

Setup Environment ran dotnet workload restore without a project, so it
evaluated every project in Sentry.slnx in every job. The Linux legs
without mobile targets installed android, maui-android, maui-tizen,
macos, wasm-tools and wasm-tools-net9, and Windows installed ios,
maccatalyst and macos.

The environment action now requires the solution filters or project
files the job builds, and restores only their workloads. dotnet workload
restore doesn't accept a solution filter, so the step passes the
projects in it, and names the filter if it finds none. Jobs that build
everything pass Sentry.slnx. The Android test app is restored only when
the job builds the tests that build it, and the legs without mobile
targets skip Java and the Android SDK. CodeQL, format-code and
verify-api no longer run a second, unfiltered workload restore after the
action. Jobs that build a MAUI project still get maui-tizen, because
dotnet workload restore adds it for every MAUI project.

Measured on top of the other CI changes, Setup Environment went from
about 190 to 89 seconds in the trim job and from 170-180 to 71-78 in
the Android device test build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Apply suggestion from @jamescrosswell

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: James Crosswell <jamescrosswell@users.noreply.github.com>
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.

integration tests are flaky on linux-arm64

2 participants