You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
macOS releases do not use ccache and take 5.5 hours #4053
The release machines are configured such that ccache should be available to the release process.
We need to adjust the build process/makefile to allow for ccache to be used if it is available, following the same pattern that other architectures use.
We should be able to modify the release machines to symlink cc to ccache to cause the macos release builds to use ccache without modifying the makefile.
May be worth checking if symlinks for the compilers are automatically created in $(brew --prefix)/opt/ccache/libexec by the ccache install?
Indeed they are.
I have added $(brew --prefix)/opt/ccache/libexec to the path variables set in jenkins for the ephemeral instances (similar to the previous start.sh entrypoint), and now the release jobs use the ccache.
Update: Have resolved the issues with the release images and they are now using the shared ccache.
osx13-release-pkg build was down to 1 hour. Once all the versions have been rebuilt and re-fill the caches we should see releases back down to the "less than 1.5 hrs"
Activity
ryanaslett commentedon Mar 27, 2025
We should be able to modify the release machines to symlink cc to ccache to cause the macos release builds to use ccache without modifying the makefile.
richardlau commentedon Mar 27, 2025
FWIW we have some Ansible setup around ccache on macOS under the old, pre-ephemeral, setup:
build/ansible/roles/baselayout/tasks/partials/ccache/macos.yml
Lines 1 to 13 in a7a185f
and explicitly adding to the
PATHenvironment variable for the Jenkins agent:build/ansible/roles/jenkins-worker/templates/start.j2
Line 11 in a7a185f
May be worth checking if symlinks for the compilers are automatically created in
$(brew --prefix)/opt/ccache/libexecby theccacheinstall?ryanaslett commentedon Mar 31, 2025
Indeed they are.
I have added
$(brew --prefix)/opt/ccache/libexecto the path variables set in jenkins for the ephemeral instances (similar to the previous start.sh entrypoint), and now the release jobs use the ccache.Unfortunately, the release images were not configured to use the shared cache, and used the local cache and ran out of disk running the universal binary builds. (Example: https://ci-release.nodejs.org/job/iojs+release/10883/nodes=osx13-release-pkg/)
I have reconfigured the release images, but am having difficulty saving the images due to some glitch in the orka cluster.
I have an open support ticket with MacStadium to hopefully resolve the cluster issue so I can make the required config changes.
Shout out/thanks to @iuuukhueeee for asking good questions to help get this fixed.
ryanaslett commentedon Apr 1, 2025
Update: Have resolved the issues with the release images and they are now using the shared ccache.
osx13-release-pkg build was down to 1 hour. Once all the versions have been rebuilt and re-fill the caches we should see releases back down to the "less than 1.5 hrs"
ryanaslett commentedon Apr 2, 2025
The osx13-x64-release-tar took 26 minutes (was 2.25 -> 2.5 hrs before)
https://ci-release.nodejs.org/job/iojs+release/nodes=osx13-x64-release-tar/10894/
The osx13-arm64-release-tar took 5min 53 s (was ~50 min before: https://ci-release.nodejs.org/job/iojs+release/nodes=osx13-arm64-release-tar/10891/
the osx13-release-pkg is coming in at 23 min (was ~ 5hrs and 5 min before: https://ci-release.nodejs.org/job/iojs+release/nodes=osx13-release-pkg/10891/)
I think we can call this one done.