GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — CI: Only test free-threading with faster macOS M1 by hugovk · Pull Request #116814 · python/cpython

Conversation

@hugovk

@hugovk hugovk commented Mar 14, 2024

Copy link
Copy Markdown
Member

We used to only have a single macOS Intel job in the CI.

But we have recently quadrupled it:

  • x2 for free-threading (GH-111449)
  • x2 for macOS M1 (GH-114766)

Plus we occasionally have a couple testing the JIT, but they only trigger when relevant files are modified.

Unfortunately, we're limited to a maximum of 5 concurrent macOS jobs:

  • https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#usage-limits

This means at busy times, jobs can be queued for a long time waiting for free macOS runners. In the meantime, the other jobs have finished, but we need to sit around until one of the five runners becomes free.

We've run in to this once per week for the last three weeks, during European evening/US daytime.

  • Last night: ~105m
  • Last week: ~100m
  • The week before: ~90m

To mitigate, let's remove some macOS jobs.

We can't remove them from the regular build, because they're needed to maintain PEP 11's Tier 1 support. So let's start by removing one macOS test job for the free-threading build.

Here's macOS job times for five recent builds. macos-13 is Intel, macOS-14 is M1.

macOS / (macos-13)    11m 8s
macOS / (macos-13)    13m 40s
macOS / (macos-13)    9m 2s
macOS / (macos-13)    9m 52s
macOS / (macos-13)    9m 9s

macOS / (macos-14)    6m 36s
macOS / (macos-14)    6m 38s
macOS / (macos-14)    6m 50s
macOS / (macos-14)    7m 29s
macOS / (macos-14)    8m 46s
macOS (free-threading) / (macos-13)    14m 23s
macOS (free-threading) / (macos-13)    14m 47s
macOS (free-threading) / (macos-13)    18m 46s
macOS (free-threading) / (macos-13)    26m 22s
macOS (free-threading) / (macos-13)    28m 53s

macOS (free-threading) / (macos-14)    10m 3s
macOS (free-threading) / (macos-14)    7m 36s
macOS (free-threading) / (macos-14)    7m 39s
macOS (free-threading) / (macos-14)    7m 52s
macOS (free-threading) / (macos-14)    8m 46s

M1 is much faster (~8 mins), so let's remove the slower free-threading Intel job (~20 mins).

If the problem persists, we can remove the free-threading M1 job as well.

And hopefully GitHub will be able to increase the number of concurrent macOS jobs in the future, especially as the free-threading work matures. 🤞

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

gpshead reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
@hugovk
Only test free-threading with faster macOS M1
a4b6bdc
@hugovk
hugovk requested a review from ezio-melotti as a code owner March 14, 2024 14:08
@bedevere-app bedevere-app Bot added the awaiting core review label Mar 14, 2024
@hugovk hugovk added skip issue skip news labels Mar 14, 2024
hugovk
hugovk commented Mar 14, 2024
View reviewed changes
Comment thread .github/workflows/reusable-macos.yml
"macos-14", # M1
"macos-13", # Intel
]
os: ${{fromJson(inputs.os-matrix)}}

@hugovk hugovk Mar 14, 2024

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

We can't pass arrays into reusable workflows, only strings, booleans or numbers. So we pass the array as a string, then use fromJson to convert the string into a list.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@hugovk

hugovk commented Mar 14, 2024

Copy link
Copy Markdown
Member Author
Before After
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ambv
ambv enabled auto-merge (squash) March 14, 2024 14:14
@ambv
ambv merged commit 415cd06 into python:main Mar 14, 2024
@bedevere-app bedevere-app Bot removed the awaiting core review label Mar 14, 2024
@hugovk
hugovk deleted the ci-free-threading-m1-only branch March 14, 2024 16:32
vstinner pushed a commit to vstinner/cpython that referenced this pull request Mar 20, 2024
@hugovk @vstinner
CI: Only test free-threading with faster macOS M1 (python#116814)
cd9a375
Only test free-threading with faster macOS M1
@hugovk hugovk mentioned this pull request Mar 22, 2024
Try out Datadog CI Visibility for CPython python/core-workflow#532
Closed
adorilson pushed a commit to adorilson/cpython that referenced this pull request Mar 25, 2024
@hugovk @adorilson
CI: Only test free-threading with faster macOS M1 (python#116814)
545a713
Only test free-threading with faster macOS M1
diegorusso pushed a commit to diegorusso/cpython that referenced this pull request Apr 17, 2024
@hugovk @diegorusso
CI: Only test free-threading with faster macOS M1 (python#116814)
eb04f8f
Only test free-threading with faster macOS M1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@ezio-melotti ezio-melotti Awaiting requested review from ezio-melotti ezio-melotti is a code owner

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

skip issue skip news

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@hugovk @ambv
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.