Repository navigation
ci: run CI and iOS build on the self-hosted Mac runners - #27
Closed
ahsanalidotme wants to merge 2 commits into
Closed
ahsanalidotme wants to merge 2 commits into
ahsanalidotme wants to merge 2 commits into
Conversation
ci.yml (library, example-android) and ios.yml (ios) move to [self-hosted, macOS], with a fork guard on pull_request runs. Job names are unchanged. - scripts/ci/android-sdk.sh installs the example's pinned SDK packages under a machine lock; the hosted image had them. - scripts/ci/ruby.sh replaces ruby/setup-ruby (hosted images only): Homebrew Ruby with every gem in RUNNER_TEMP. - xcodebuild uses a per-job DerivedData path. release.yml stays on ubuntu-latest: npm publish --provenance is only supported on GitHub-hosted runners.
Contributor
Author
|
Impact: DB changes: none. Live code changes: none (only workflow files plus scripts/ci/). Critical prod impact: No. npm publish stays GitHub-hosted (provenance). CI needs the org runner group to allow public repos. |
Contributor
Author
|
Closing: the runner plan changed. Public repos stay on GitHub-hosted runners (free and unlimited for public repos, macOS included), so this repo needs no CI change. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No linked issue: org-wide move of every Actions job to the self-hosted Mac minis.
What
Moves these jobs to the org's self-hosted Macs (
[self-hosted, macOS]). Job names, which are the required checks, are unchanged:CI→Lint · Typecheck · Build · Codegen(wasubuntu-latest)CI→Example · JS + Android build(wasubuntu-latest)iOS build→Build example (iOS simulator)(wasmacos-15)Not moved:
Publish to npm→Build & publishstays onubuntu-latest. It runsnpm publish --provenance, and the npm registry only accepts provenance built on GitHub-hosted runners; it rejectsself-hosted. Moving this job means publishing without provenance, which is a call for you to make, so I left it and added a comment explaining why.How
if: github.event.pull_request.head.repo.full_name == github.repository || github.event_name != 'pull_request'. There's nopull_request_target.scripts/ci/android-sdk.shreuses~/Library/Android/sdkand installs the example's pinned packages if they're missing (platform 35, build-tools 35.0.0, NDK 27.1.12297006, CMake 3.22.1). Installs run under a machine-wide lock.setup-gradleruns withcache-disabled: true, because~/.gradlepersists on the runners.ruby/setup-rubyonly installs its prebuilt Rubies on GitHub-hosted images. The newscripts/ci/ruby.shuses Homebrew's Ruby withGEM_HOME/BUNDLE_PATHinRUNNER_TEMP, thenbundle installinstalls the Gemfile's CocoaPods. Nothing global is installed. I checked locally that it resolves CocoaPods 1.15.2.xcodebuildbuilds into a per-job-derivedDataPathinstead of the shared~/Library/Developer/Xcode/DerivedData.Production impact
CI only; no change to the published package. Risk: Low.
release.ymlonly gets a comment.Requires org admin: the org runner group (
default) must allow public repositories. Until it does, these jobs queue and never start.Details
actionlintis clean.changesjobs toci.ymlandios.yml. That PR now uses the self-hosted labels and a fork guard too, but the two PRs will conflict. Whichever merges second needs a small rebase.