Skip to content

feat(ci): add macOS CI workflow - #95

Open
wdconinc wants to merge 106 commits into
masterfrom
macos-ci-workflow
Open

wdconinc wants to merge 106 commits into
masterfrom
macos-ci-workflow

Conversation

@wdconinc

@wdconinc wdconinc commented Dec 18, 2025 •

Copy link
Copy Markdown
Contributor

This PR adds a GitHub Actions workflow to build the ci, tf, and xl environments on macOS.

Features

  • Matrix strategy testing ci, tf, and xl environments
  • Automatic buildcache push/pull for faster rebuilds

Copilot AI lite review requested due to automatic review settings December 18, 2025 22:30
Comment thread .github/workflows/macos-ci.yml Outdated
Comment thread .github/workflows/macos-ci.yml Outdated
Comment thread .github/workflows/macos-ci.yml Outdated
Comment thread .github/workflows/macos-ci.yml Outdated
Comment thread .github/workflows/macos-ci.yml Outdated

This comment was marked as resolved.

This comment was marked as resolved.

Copilot AI review requested due to automatic review settings August 9, 2026 17:47
@wdconinc
wdconinc force-pushed the macos-ci-workflow branch from 24f3357 to 61b57b4 Compare August 9, 2026 17:47

This comment was marked as resolved.

Copilot AI review requested due to automatic review settings August 9, 2026 18:01
@wdconinc wdconinc changed the title Add macOS CI workflow feat(ci): add macOS CI workflow Aug 9, 2026

This comment was marked as low quality.

Copilot AI review requested due to automatic review settings August 9, 2026 18:06

This comment was marked as resolved.

Copilot AI review requested due to automatic review settings August 9, 2026 18:16

This comment was marked as low quality.

Copilot AI review requested due to automatic review settings August 9, 2026 18:38

This comment was marked as low quality.

Copilot AI review requested due to automatic review settings August 9, 2026 18:42

This comment was marked as resolved.

Copilot AI review requested due to automatic review settings August 9, 2026 18:51

This comment was marked as low quality.

Copilot AI review requested due to automatic review settings August 9, 2026 18:58
…refix

- Set CVMFS publish location to unpacked.cern.ch/ghcr.io/eic/mac_<env>:nightly
- Phase 1: Build packages into /opt/software with 128-byte padding and populate local/remote buildcaches
- Phase 2: Relocate and install environment specs from buildcache into target prefix with colons in path
- Hardcode tag to nightly for testing deployment to unpacked.cern.ch
- Job 1 (build): Builds missing packages into /opt/software with padding and autopushes to GHCR buildcache
- Job 2 (install): Installs environment specs from network buildcache into CVMFS target prefix, regenerates views, tests, and publishes container image
- Only the remote buildcache serves as intermediary between the jobs
…as artifacts

- Use actions/cache@v4 for Spack repositories across jobs
- Use actions/cache@v4 for Spack concretization cache (~/.spack/cache/concretization)
- Upload spack.lock files as workflow artifacts in build job
- Download lockfiles in install job and skip concretization entirely
- Remove ~x11 requirement on Darwin in packages_darwin.yaml (x11 variant
  is only defined when platform=linux in spack-packages v2026.10.0).
- Enforce ~opengl ~qt for geant4 on Darwin, matching conflicts('+opengl',
  when='platform=darwin') in geant4 recipe.
- Use conditional  definition (+opengl on Linux, -opengl on Darwin)
  in xl/spack.yaml.
- Condition geant4 requirement on platform (+opengl on Linux, ~opengl on
  Darwin) in xl/epic/spack.yaml.
Add a test-cvmfs job that runs concurrently on macos-latest without
depending on the build or install jobs. It uses cvmfs-contrib/github-action-cvmfs@v5
to mount unpacked.cern.ch and test the existing mac_ci:nightly deployment,
verifying setup.sh activation and functionality of python3 and root.exe.
The existing deployment on CVMFS was built before the prefix change, so
symlinks in opt/local/bin point to /cvmfs/singularity.opensciencegrid.org/eicweb/mac_ci-unstable-pr-95.
Because setup.sh on CVMFS already referenced unpacked.cern.ch, the previous
check on setup.sh contents skipped creating the compatibility symlink,
leaving opt/local/bin/python3 as a broken symlink and falling back to
Homebrew python3.

Inspect the symlink target of opt/local/bin/python3 directly and link the
legacy prefix to DEPLOY_PREFIX across firmlink paths, and assert that which
python3 resolves to the CVMFS deployment.

This branch was successfully deployed

1 active (outdated) deployment
github-pages — bb42a556 Deployed Oct 21, 2026 by wdconinc via deploy-artifacts-page #4423
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.

3 participants