Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ci] Add macOS versions to build matrix #278

Closed
wants to merge 1 commit into from

Conversation

jidicula
Copy link
Contributor

Why this change was necessary
The GitHub workflows were only testing against macos-latest, which
still points to macOS 10.15 Catalina[1]. Now that M1 Macs running
macOS 11.0 Big Sur have reached consumers, Emacs Plus should also
include that OS (and CPU arch) in its CI tests.

What this change does

  • Adds macOS 11.0 as an option to the build matrix for every
    workflow.
  • Explicitly names macOS 10.15 (Catalina) as an option to the build
    matrix.
  • Explicitly sets Xcode 12.2 if the OS version is 11.0, since
    previous XCode versions cannot build for Big Sur[2].

Any side-effects?
None.

Additional context/notes/links
[1] https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources
[2] actions/runner-images#2056

**Why this change was necessary**
The GitHub workflows were only testing against `macos-latest`, which
still points to macOS 10.15 Catalina[1]. Now that M1 Macs running
macOS 11.0 Big Sur have reached consumers, Emacs Plus should also
include that OS (and CPU arch) in its CI tests.

**What this change does**
 - Adds macOS 11.0 as an option to the build matrix for every
 workflow.
 - Explicitly names macOS 10.15 (Catalina) as an option to the build
 matrix.
 - Explicitly sets Xcode 12.2 if the OS version is 11.0, since
 previous XCode versions cannot build for Big Sur[2].

**Any side-effects?**
None.

**Additional context/notes/links**
[1] https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources
[2] actions/runner-images#2056
@jidicula
Copy link
Contributor Author

jidicula commented Nov 28, 2020

(sorry about the force-push, didn't realize the contains() requires single-quoted arguments 😅 )

@jidicula
Copy link
Contributor Author

@d12frosted I wonder if it would be useful to also include badges for each macOS version so users will know about OS support at a glance from the README. Unfortunately, matrix builds can't have separate badges yet, so it might involve breaking up the workflows into separate YAMLs for both OS versions.

@d12frosted
Copy link
Owner

Cool, I like it. I remember that at some point of time emacs-plus was broken for specific version of macOS, so having ability to test against few major versions sounds nice. Thank you for contribution!

sorry about the force-push

No worries regarding force pushes 😸 I will simply cherry-pick commit :) If it would be two commits, I would simply squash them and cherry pick result.

I wonder if it would be useful to also include badges for each macOS version so users will know about OS support at a glance from the README. Unfortunately, matrix builds can't have separate badges yet,

Yes, it would be nice. I also had an idea to show each option combination in the README, but as you say... matrix is not supported by badges. So that's fine as is.

so it might involve breaking up the workflows into separate YAMLs for both OS versions.

I think this is too much. So let's leave it as is for now. Unless it's possible to have a workflow template that would be reused by per-OS workflows.


Going to cherry pick it now anyways as I like how it looks now.

@d12frosted
Copy link
Owner

Cherry picked to master (315f55c). Thank you very much for your contribution 😸

@d12frosted d12frosted closed this Nov 29, 2020
@jidicula jidicula deleted the macos-versions-matrix branch November 29, 2020 14:40
@jidicula
Copy link
Contributor Author

I think this is too much. So let's leave it as is for now. Unless it's possible to have a workflow template that would be reused by per-OS workflows.

I think there might be (see here)... I'll do some tryouts with this on my dotfiles repo - if it works, I'll submit another PR here 😄

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