Offload macOS .app assembly off the build->test critical path#563
Open
Keno wants to merge 1 commit into
Open
Conversation
Take advantage of JuliaLang/julia@1fd3353, which turns the macOS .app into a pure repackage of the tree .tar.gz (contrib/mac/app no longer needs osacompile/plutil and runs on any host). The mac build jobs therefore no longer need to assemble the .app themselves. * build_julia.sh: stop assembling+staging the .app on the mac builders. The build now stages only the tree .tar.gz, so it finishes sooner and the test jobs waiting on it start sooner. * utilities/macos/assemble_app.sh (new): shared recipe that builds the unsigned Julia-X.Y.app from a downloaded .tar by driving contrib/mac/app's Makefile with MAKE=true (neutralizing its recursive `make binary-dist`, which would otherwise trigger a full source build) and an empty codesign identity. * julia-pr: a small Linux app-builder (stage_macos_app.{yml,arches,sh}) downloads the staged tree tarball and repackages+stages the .app. It depends only on the matching build_ job -- so it runs in parallel with the tests, off the build->test critical path -- and is gated `if: pipeline.slug == "julia-pr"` (juliaup fetches PR .apps from the ephemeral-pr bucket; julia-ci gets its .app from publish instead). * julia-ci: upload_julia.sh now assembles the unsigned .app from the .tar it already downloads (via the shared script) before signing, instead of downloading a staged .app that the build no longer produces. Also bump the x86_64-apple-darwin build timeout 80 -> 90. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Take advantage of JuliaLang/julia@1fd3353, which turns the macOS .app into a pure repackage of the tree .tar.gz (contrib/mac/app no longer needs osacompile/plutil and runs on any host). The mac build jobs therefore no longer need to assemble the .app themselves.
build_julia.sh: stop assembling+staging the .app on the mac builders. The build now stages only the tree .tar.gz, so it finishes sooner and the test jobs waiting on it start sooner.
utilities/macos/assemble_app.sh (new): shared recipe that builds the unsigned Julia-X.Y.app from a downloaded .tar by driving contrib/mac/app's Makefile with MAKE=true (neutralizing its recursive
make binary-dist, which would otherwise trigger a full source build) and an empty codesign identity.julia-pr: a small Linux app-builder (stage_macos_app.{yml,arches,sh}) downloads the staged tree tarball and repackages+stages the .app. It depends only on the matching build_ job -- so it runs in parallel with the tests, off the build->test critical path -- and is gated
if: pipeline.slug == "julia-pr"(juliaup fetches PR .apps from the ephemeral-pr bucket; julia-ci gets its .app from publish instead).julia-ci: upload_julia.sh now assembles the unsigned .app from the .tar it already downloads (via the shared script) before signing, instead of downloading a staged .app that the build no longer produces.
Also bump the x86_64-apple-darwin build timeout 80 -> 90.