Skip to content

Conversation

henrymercer
Copy link
Contributor

Continue running ones on macOS and Windows too where it's useful, but the default should be Linux only as most functionality is platform independent.

This should reduce unnecessary compute usage and help avoid rate limiting.

Risk assessment

For internal use only. Please select the risk level of this change:

  • Low risk: Changes are fully under feature flags, or have been fully tested and validated in pre-production environments and are highly observable, or are documentation or test only.

Merge / deployment checklist

  • Confirm this change is backwards compatible with existing workflows.
  • Consider adding a changelog entry for this change.
  • Confirm the readme and docs have been updated if necessary.

@henrymercer henrymercer requested a review from a team as a code owner September 23, 2025 12:40
@Copilot Copilot AI review requested due to automatic review settings September 23, 2025 12:40
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR changes the default operating systems for CI tests from all platforms (Ubuntu, macOS, Windows) to Ubuntu only. The goal is to reduce compute usage and avoid rate limiting by running most tests exclusively on Linux, while preserving cross-platform testing for specific tests where it provides meaningful coverage.

  • Removes Ubuntu-only OS specifications from many test files since Ubuntu is now the default
  • Updates the default OS list in the sync script from all platforms to Ubuntu only
  • Preserves multi-platform testing for specific tests like autobuild and file baseline export where platform differences matter
  • Removes Windows-specific conditional logic that's no longer needed

Reviewed Changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated no comments.

File Description
pr-checks/sync.py Changes default OS from all platforms to Ubuntu only and removes exclusion logic
pr-checks/checks/*.yml Removes redundant Ubuntu-only OS specifications from 25+ test files
.github/workflows/*.yml Removes macOS/Windows entries from generated workflow matrices

mbg
mbg previously approved these changes Sep 24, 2025
Copy link
Member

@mbg mbg left a comment

Choose a reason for hiding this comment

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

Makes sense. I have added a few comments for where we might be able to make further improvements, but they can all be handled separately.

@@ -1,5 +1,6 @@
name: "autobuild-action"
description: "Tests that the C# autobuild action works"
operatingSystems: ["ubuntu", "macos", "windows"]
Copy link
Member

Choose a reason for hiding this comment

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

Should the other two autobuild- workflows also run on macos? Or was there a specific reason those only run on linux and windows?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think just because it's very unlikely to run Java analysis on macOS.

Copy link
Member

Choose a reason for hiding this comment

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

If the tests are mainly for direct tracing, would it make sense to switch to a different traced language where we're more likely to run on all platforms (e.g. C#)?

Or alternatively, if the main goal is to test direct tracing, does it matter that it's unlikely to run Java analysis on macOS?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Can you open an issue about this? We want testing of both indirect and direct tracing, and I'd like to understand better why we disable the CLR tracer in this job.

Copy link
Member

Choose a reason for hiding this comment

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

Could this test be combined with one of autobuild-direct-tracing*? Seems similar.

Alternatively, maybe we could combine the three build-mode tests in one workflow with a matrix (and conditional steps based on the build-mode) / sequential jobs.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Could this test be combined with one of autobuild-direct-tracing*? Seems similar.

I've combined with autobuild-direct-tracing now that we will use direct tracing by default. But with the specific working directory it might still be useful to check build-mode: autobuild respects the working directory.

Alternatively, maybe we could combine the three build-mode tests in one workflow with a matrix (and conditional steps based on the build-mode) / sequential jobs.

We could, but we could no longer generate the workflow, so won't do for now.

@@ -1,6 +1,5 @@
name: "Clean up database cluster directory"
description: "The database cluster directory is cleaned up if it is not empty."
operatingSystems: ["ubuntu"]
Copy link
Member

Choose a reason for hiding this comment

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

This seems like it could be useful across all platforms because of difference in how IO behaves. That said, it feels like this could easily just be tacked on to another test that already runs on all platforms.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'll preserve the existing behaviour here. It seems unlikely that this would break.

Copy link
Member

Choose a reason for hiding this comment

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

Feels like this could be added on to some other test.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

True, but I'll leave this for future work.

Copy link
Member

Choose a reason for hiding this comment

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

This can probably be removed in favour of unit test coverage (which may already exist).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think a test is useful, particularly since default setup relies on language aliases.

Copy link
Member

Choose a reason for hiding this comment

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

Do we need this specific one for Rust?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It provides some coverage against specific older versions. I'll keep for now.

@henrymercer henrymercer requested a review from mbg September 24, 2025 11:04
@henrymercer henrymercer force-pushed the henrymercer/slim-pr-checks branch from ad33e2f to 4082f8c Compare September 24, 2025 11:33
@henrymercer henrymercer merged commit 5235174 into main Sep 25, 2025
233 checks passed
@henrymercer henrymercer deleted the henrymercer/slim-pr-checks branch September 25, 2025 11:57
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.

2 participants