Skip to content

Commit

Permalink
CI : Add macos-arm64 builds
Browse files Browse the repository at this point in the history
These builds lack signing and notarization and are published chiefly for our own use. Making the build artifacts available, even in their current state, paves the way towards re-establishing Gaffer CI runs on macOS.
  • Loading branch information
murraystevenson committed Nov 16, 2024
1 parent bee969e commit 39dd46b
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 12 deletions.
28 changes: 17 additions & 11 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ jobs:
linux-gcc11,
linux-debug-gcc11,
windows,
windows-debug
windows-debug,
macos-arm64
]

include:
Expand All @@ -46,6 +47,7 @@ jobs:
dependenciesURL: https://github.com/GafferHQ/dependencies/releases/download/8.0.1/gafferDependencies-8.0.1-linux-gcc11.tar.gz
tests: testCore testCorePython testScene testImage testAlembic testUSD testVDB
publish: true
jobs: 4

- name: linux-debug-gcc11
os: ubuntu-20.04
Expand All @@ -55,6 +57,7 @@ jobs:
dependenciesURL: https://github.com/GafferHQ/dependencies/releases/download/8.0.1/gafferDependencies-8.0.1-linux-gcc11.tar.gz
tests: testCore testCorePython testScene testImage testAlembic testUSD testVDB
publish: false
jobs: 4

- name: windows
os: windows-2019
Expand All @@ -63,6 +66,7 @@ jobs:
dependenciesURL: https://github.com/GafferHQ/dependencies/releases/download/8.0.1/gafferDependencies-8.0.1-windows.zip
tests: testCore testCorePython testScene testImage testAlembic testUSD testVDB
publish: true
jobs: 4

- name: windows-debug
os: windows-2019
Expand All @@ -71,6 +75,16 @@ jobs:
dependenciesURL: https://github.com/GafferHQ/dependencies/releases/download/8.0.1/gafferDependencies-8.0.1-windows.zip
tests: testCore testCorePython testScene testImage testAlembic testUSD testVDB
publish: false
jobs: 4

- name: macos-arm64
os: macos-14
buildType: RELEASE
options: .github/workflows/main/options.posix
dependenciesURL: https://github.com/GafferHQ/dependencies/releases/download/9.0.0/gafferDependencies-9.0.0-macos-arm64.tar.gz
tests: testCore testCorePython testScene testImage testAlembic testUSD testVDB
publish: true
jobs: 3

runs-on: ${{ matrix.os }}

Expand All @@ -92,16 +106,8 @@ jobs:
if: runner.os == 'Windows'

- name: Install toolchain (MacOS)
# Prefer `pip install` because it is faster
# than `brew install`.
run: |
sudo pip3 install scons==4.0.1
# Brew installs all manner of headers into `/usr/local/include`, including
# OpenEXR and Imath versions that conflict with our own. We can't stop Clang
# finding them because Clang is hardcoded to look in `/usr/local/include`
# _before_ anything we specify with `-isystem`, despite documentation to the
# contrary. So we nuke the headers.
rm -rf /usr/local/include/*
pipx install scons==4.6.0
echo PACKAGE_COMMAND=tar -czf >> $GITHUB_ENV
echo PACKAGE_EXTENSION=tar.gz >> $GITHUB_ENV
if: runner.os == 'macOS'
Expand Down Expand Up @@ -154,7 +160,7 @@ jobs:
- name: Build
run: |
scons -j 4 BUILD_TYPE=${{ matrix.buildType }} OPTIONS=${{ matrix.options }} BUILD_CACHEDIR=sconsCache
scons -j ${{ matrix.jobs }} BUILD_TYPE=${{ matrix.buildType }} OPTIONS=${{ matrix.options }} BUILD_CACHEDIR=sconsCache
# Copy the config log for use in the "Debug Failures" step, because it
# gets clobbered by the `scons test*` call below.
cp config.log buildConfig.log
Expand Down
2 changes: 1 addition & 1 deletion test/IECoreScene/MeshPrimitive.py
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ def testBox( self ) :
self.assertEqual( len( m["N"].data ), 6 )
self.assertEqual( len( m["uv"].indices ), m.variableSize( IECoreScene.PrimitiveVariable.Interpolation.FaceVarying ) )


@unittest.skipIf( IECore.TestUtil.inMacCI(), "Incorrect pointAtUV results on virtualized macOS used in CI" )
def testPlane( self ) :

m = IECoreScene.MeshPrimitive.createPlane( imath.Box2f( imath.V2f( 0 ), imath.V2f( 1 ) ) )
Expand Down

0 comments on commit 39dd46b

Please sign in to comment.