Skip to content

Add arm64 macOS testing to CI#1652

Merged
freakboy3742 merged 2 commits intobeeware:mainfrom
rmartin16:ci-macos-arm64
Feb 18, 2024
Merged

Add arm64 macOS testing to CI#1652
freakboy3742 merged 2 commits intobeeware:mainfrom
rmartin16:ci-macos-arm64

Conversation

@rmartin16
Copy link
Member

@rmartin16 rmartin16 commented Feb 17, 2024

Changes

  • Adds macOS arm64 runners to CI
  • To limit the overall number of jobs, Python 3.9, 3.10, and 3.11 are only tested on Ubuntu

PR Checklist:

  • All new features have been tested
  • All new features have been documented
  • I have read the CONTRIBUTING.md file
  • I will abide by the code of conduct

@rmartin16 rmartin16 force-pushed the ci-macos-arm64 branch 6 times, most recently from 21dd6aa to fbd604a Compare February 17, 2024 15:36
@rmartin16
Copy link
Member Author

I also added arm64 macOS to the integration tests. With the couple of times I ran the full set of jobs, it is clear that GitHub is limiting the number of concurrent runners a repo/org can use beyond what they limit for the Linux runners. That said, the Linux jobs still take long enough that even the macOS jobs that have to wait end up finishing before or around the same time.

It's also interesting how long the unit tests run for 3.13-dev on Windows...they must be using a debug build of Python or something.

P.S. as a mental note....the biggest opportunity for speeding up the integration tests on Linux is the Docker builds. First, since the linux package from Briefcase is installed, it may be possible to alternatively just ask the installer to do a dry-run and not actually install everything. Second, caching the Briefcase images in GHCR.

@rmartin16 rmartin16 marked this pull request as ready for review February 17, 2024 17:01
Copy link
Member

@freakboy3742 freakboy3742 left a comment

Choose a reason for hiding this comment

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

The mechanics of this all look good. One comment about value quoting inline; the other detail is that the platform support chart can upgrade the support level for ARM64.

matrix:
platform: [ "macos", "ubuntu", "windows" ]
python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12", "3.13-dev" ]
platform: [ macos-12, macos-14, windows-latest, ubuntu-latest ]
Copy link
Member

Choose a reason for hiding this comment

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

I'm not sure removing the quotes here (and below) is a good idea. YAML has an... interesting relationship with bare values; I've found it safer to unilaterally quote when you know the value is a string, even if it isn't strictly necessary (and it clearly isn't here, because CI is passing).

Copy link
Member Author

Choose a reason for hiding this comment

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

This is definitely the thing I hate most about YAML....other than everything else. To add to this, I've also wondered how the GitHub substitutions are handled, i.e. ${{ xxx }}, and whether any of these substitutions happen before a YAML processor runs...

Copy link
Member

@freakboy3742 freakboy3742 left a comment

Choose a reason for hiding this comment

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

👍

@freakboy3742 freakboy3742 merged commit d7525d4 into beeware:main Feb 18, 2024
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