Skip to content
Open
Changes from 4 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
aba2719
Add macOS CI workflow using spack/setup-spack and spack/github-action…
wdconinc Dec 18, 2025
61b57b4
Align macOS CI with container build: derive configuration at runtime …
Copilot Dec 19, 2025
36be71a
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 9, 2026
9cd97c1
fix(ci): matrix on ENV [ci, xl] instead of compiler
wdconinc Aug 9, 2026
d818597
fix: spack/setup-spack => manual clone
wdconinc Aug 9, 2026
013c767
fix(ci): only run on push to master
wdconinc Aug 9, 2026
43c4444
fix(macos): avoid external cmake
wdconinc Aug 9, 2026
8ad8b05
fix(macos): buildcache autopush unsigned with secrets
wdconinc Aug 9, 2026
dc629dc
fix(macos): clone spack for spack
wdconinc Aug 9, 2026
f4fb6b5
fix(ci): add key4hep-spack, eic-spack, and fixup repo.yaml location
wdconinc Aug 9, 2026
6a8eac5
fix: key4hep url fix
wdconinc Aug 9, 2026
2cfcdb1
fix: cd into cloned path
wdconinc Aug 9, 2026
0185366
fix: spack repo add relative to spack root
wdconinc Aug 9, 2026
c120d17
fix: avoid activate; install both ENV and ENV/epic
wdconinc Aug 9, 2026
e7245a8
fix: packages: clang on darwin
wdconinc Aug 9, 2026
2345030
fix: strace on linux only
wdconinc Aug 9, 2026
3fef000
fix: gl/glu provided by apple-gl/glu on darwin
wdconinc Aug 9, 2026
6b4b421
fix: darwin: c,cxx=apple-clang, fortran=gcc
wdconinc Aug 9, 2026
6b74af0
fix: use definitions for extra packages per platform
wdconinc Aug 9, 2026
5c8a576
fix: disable view in macOS (/opt/local not writable)
wdconinc Aug 9, 2026
1c78613
fix: add comment on definitions:when syntax
wdconinc Aug 9, 2026
e25d698
fix: epic: install with view:false
wdconinc Aug 9, 2026
2739b7b
fix: allow for empty and duplicative cherry-picks
wdconinc Aug 9, 2026
dd27cc4
fix: packages: require: ~opengl when platform=darwin
wdconinc Aug 9, 2026
bef60cc
fix: packages: geant4: require: ~x11 when platform=linux
wdconinc Aug 9, 2026
b685c6f
fix: packages: qt{-base}: require: +opengl also on darwin
wdconinc Aug 9, 2026
22f25e2
fix: packages: root: require: ~x when darwin
wdconinc Aug 9, 2026
81004af
fix: grammar
wdconinc Aug 9, 2026
446cda3
fix: spack install ~~install~~ epic
wdconinc Aug 9, 2026
35d64a6
fix(ci): fail-fast: false, cancel-in-progress: false
wdconinc Aug 9, 2026
6621aec
fix: use actions/checkout (faster)
wdconinc Aug 9, 2026
6929f4b
fix: spack cherry-pick: readline: switch url for patch download
wdconinc Aug 9, 2026
262472b
fix: correct checkout syntax
wdconinc Aug 9, 2026
5750755
fix: checkout syntax
wdconinc Aug 10, 2026
4be1419
fix: fetch pull request for cherry-picking in CI
wdconinc Aug 10, 2026
904af07
fix: add fetch for pull request 52207 in macOS CI
wdconinc Aug 10, 2026
d3d2cda
Update SPACK_CHERRYPICKS with new commit hash
wdconinc Aug 10, 2026
94fca93
Update SPACKPACKAGES_CHERRYPICKS with new package
wdconinc Aug 10, 2026
b810184
Fetch develop branch in macOS CI workflow
wdconinc Aug 10, 2026
c0bb828
Remove cherry-pick reference and update comments
wdconinc Aug 10, 2026
b2c6b19
Modify SPACKPACKAGES_CHERRYPICKS entries
wdconinc Aug 10, 2026
c5a17fc
Update package version for py-tensorboard
wdconinc Aug 10, 2026
c9af7e2
Add fetch for pull request 3698 in macOS CI
wdconinc Aug 10, 2026
d1ba781
Update TensorFlow and add missing dependencies
wdconinc Aug 10, 2026
a2412b8
Add fetch for pull request 4871 in macOS CI workflow
wdconinc Aug 10, 2026
7dfe2b8
Add fetch for pull request 5856 in macOS CI workflow
wdconinc Aug 10, 2026
32fe2fe
Add 'tf' to the environment matrix in CI workflow
wdconinc Aug 10, 2026
261e1eb
Add platform-specific TensorFlow definitions
wdconinc Aug 10, 2026
5f0f2e7
fix: concretize $ENV/epic; move compilers/externals/mirrors to scope …
wdconinc Aug 10, 2026
7a32392
fix: add valgrind to linux_packages
wdconinc Aug 10, 2026
55d0d8f
fix: unpin binutils
wdconinc Aug 10, 2026
900644e
Set MACOSX_DEPLOYMENT_TARGET in macOS CI workflow
wdconinc Aug 10, 2026
b1eb757
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 10, 2026
382e34e
fix: ci: move more packages to linux-only
wdconinc Aug 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 112 additions & 0 deletions .github/workflows/macos-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: macOS CI Build

on:
push:
branches:
- master
- macos-ci-workflow
pull_request:
branches:
- master
Comment on lines +7 to +9
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

permissions:
contents: read
packages: write
Comment on lines +16 to +18

jobs:
build:
runs-on: macos-latest
Comment thread
wdconinc marked this conversation as resolved.
strategy:
matrix:
ENV: [ci, xl]

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive

- name: Extract Spack configuration
id: spack-config
run: |
# Source spack.sh to get SPACK_VERSION and SPACK_CHERRYPICKS
source spack.sh
echo "spack-version=${SPACK_VERSION}" >> $GITHUB_OUTPUT
echo "spack-cherrypicks<<EOF" >> $GITHUB_OUTPUT
echo "${SPACK_CHERRYPICKS}" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT

# Source spack-packages.sh to get SPACKPACKAGES_VERSION and SPACKPACKAGES_CHERRYPICKS
source spack-packages.sh
echo "spackpackages-version=${SPACKPACKAGES_VERSION}" >> $GITHUB_OUTPUT
echo "spackpackages-cherrypicks<<EOF" >> $GITHUB_OUTPUT
echo "${SPACKPACKAGES_CHERRYPICKS}" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT

# Extract buildcache URL from mirrors.yaml.in (simplified - get the version)
echo "buildcache-version=${SPACKPACKAGES_VERSION}" >> $GITHUB_OUTPUT

- name: Setup Spack
uses: spack/setup-spack@v2.1.1
with:
ref: ${{ steps.spack-config.outputs.spack-version }}
Comment thread
Copilot marked this conversation as resolved.
color: true
path: ${{ github.workspace }}/spack
Comment thread
wdconinc marked this conversation as resolved.
Outdated

- name: Apply Spack cherry-picks
run: |
cd ${{ github.workspace }}/spack
git config user.name "GitHub Actions"
git config user.email "actions@github.com"

# Apply cherry-picks from spack.sh (match only valid git commit hashes)
echo "${{ steps.spack-config.outputs.spack-cherrypicks }}" | grep -E '^[a-f0-9]{40}$' | while read -r commit; do
echo "Cherry-picking ${commit}"
git cherry-pick "${commit}"
done
Comment thread
Copilot marked this conversation as resolved.
Outdated

- name: Checkout and configure spack-packages
run: |
cd ${{ github.workspace }}/spack
git clone https://github.com/spack/spack-packages.git var/spack/repos/spack-packages
cd var/spack/repos/spack-packages
git checkout ${{ steps.spack-config.outputs.spackpackages-version }}
git config user.name "GitHub Actions"
git config user.email "actions@github.com"

# Apply cherry-picks from spack-packages.sh (match only valid git commit hashes)
echo "${{ steps.spack-config.outputs.spackpackages-cherrypicks }}" | grep -E '^[a-f0-9]{40}$' | while read -r commit; do
echo "Cherry-picking ${commit}"
git cherry-pick "${commit}"
done

cd ${{ github.workspace }}/spack
spack repo add var/spack/repos/spack-packages

- name: Add Spack environment
run: |
spack env activate -d spack-environment/${{matrix.ENV}}
spack compiler find
spack external find llvm
Comment thread
wdconinc marked this conversation as resolved.
Outdated
spack external find --not-buildable cmake

- name: Concretize
run: |
spack env activate -d spack-environment/${{matrix.ENV}}
spack concretize -f

- name: Configure buildcache
run: |
spack env activate -d spack-environment/${{matrix.ENV}}
spack mirror add eic oci://ghcr.io/eic/spack-${{ steps.spack-config.outputs.buildcache-version }}
spack buildcache keys --install --trust

- name: Install
run: |
spack env activate -d spack-environment/${{matrix.ENV}}
spack install --no-check-signature --show-log-on-error
Loading