@@ -3,7 +3,6 @@ name: MacOS Continuous Integration
33env :
44 # "Source" is set in the setup-dotnet action
55 VCPKG_BINARY_SOURCES : ' clear;nuget,Source,readwrite;nugettimeout,3601'
6- TRIPLET : ' x64-osx-rel'
76 VCPKG_DEFAULT_HOST_TRIPLET : ' x64-osx-rel'
87
98on :
@@ -38,11 +37,15 @@ jobs:
3837 ' llvm-14' ,
3938 ' llvm-15'
4039 ]
40+ target_arch : [
41+ ' x64' ,
42+ ' arm64'
43+ ]
4144
4245 runs-on : ${{ matrix.os.runner }}
4346
4447 env :
45- ARTIFACT_NAME : vcpkg_${{ matrix.os.runner }}_${{ matrix.llvm }}_xcode-${{ matrix.os.xcode }}_amd64
48+ ARTIFACT_NAME : vcpkg_${{ matrix.os.runner }}_${{ matrix.llvm }}_xcode-${{ matrix.os.xcode }}_${{ matrix.target_arch }}
4649
4750 steps :
4851 - uses : actions/checkout@v3
9497 -source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json" \
9598 "${{ secrets.GITHUB_TOKEN }}"
9699
97- ./build_dependencies.sh --release --export-dir ./${{ env.ARTIFACT_NAME }} ${{ matrix.llvm }} --clean-after-build --debug
100+ ./build_dependencies.sh --release --target-arch ${{ matrix.target_arch }} -- export-dir ./${{ env.ARTIFACT_NAME }} ${{ matrix.llvm }} --clean-after-build --debug
98101
99102 echo "VCPKG_ROOT=$(pwd)/${{ env.ARTIFACT_NAME }}" >> $GITHUB_ENV
103+ echo "TARGET_TRIPLET=${{ matrix.target_arch }}-osx-rel" >> $GITHUB_ENV
100104
101105 - name : ' Export Packages'
102106 if : contains(env.COMMIT_MESSAGE, 'debug artifacts') || github.event.release
@@ -139,9 +143,9 @@ jobs:
139143 uses : actions/cache@v3
140144 with :
141145 path : ${{ github.workspace }}/.ccache
142- key : ccache-${{ matrix.os.runner }}-${{ matrix.os.xcode }}-${{ matrix.llvm }}-${{ steps.ccache_prep.outputs.timestamp }}
146+ key : ccache-${{ matrix.os.runner }}-${{ matrix.os.xcode }}-${{ matrix.llvm }}-${{ matrix.target_arch }}-${{ steps.ccache_prep.outputs.timestamp }}
143147 restore-keys : |
144- ccache-${{ matrix.os.runner }}-${{ matrix.os.xcode }}-${{ matrix.llvm }}-
148+ ccache-${{ matrix.os.runner }}-${{ matrix.os.xcode }}-${{ matrix.llvm }}-$${{ matrix.target_arch }}
145149
146150 - name : ccache Initial stats
147151 shell : bash
@@ -150,54 +154,75 @@ jobs:
150154
151155 - name : ' Rellic build'
152156 shell : ' bash'
153- if : ${{ matrix.llvm == 'llvm-14' }}
157+ if : ${{ matrix.llvm == 'llvm-14' && matrix.target_arch == 'x64' }}
154158 run : |
155159 cd rellic
156160 mkdir -p build && cd build
157161 cmake -G Ninja \
158162 -DCMAKE_VERBOSE_MAKEFILE=ON \
159163 -DVCPKG_ROOT="${VCPKG_ROOT}" \
164+ -DVCPKG_TARGET_TRIPLET=${TARGET_TRIPLET} \
165+ -DCMAKE_OSX_ARCHITECTURES=${{ matrix.target_arch == 'x64' && 'x86_64' || matrix.target_arch }} \
160166 -DCMAKE_INSTALL_PREFIX="$(pwd)/install" \
161167 ..
162168 cmake --build .
163169 cmake --build . --target install
164- ../scripts/roundtrip.py ./tools/rellic-decomp ../tests/tools/decomp "${VCPKG_ROOT}/installed/${TRIPLET}/tools/llvm/clang"
165-
170+ - name : ' Rellic test'
171+ shell : ' bash'
172+ if : ${{ matrix.llvm == 'llvm-14' && matrix.target_arch == 'x64' }}
173+ run : |
174+ # Test only should run when we're not cross compiling
175+ cd rellic/build
176+ ../scripts/roundtrip.py ./tools/rellic-decomp ../tests/tools/decomp "${VCPKG_ROOT}/installed/${TARGET_TRIPLET}/tools/llvm/clang"
166177 - name : ' Remill build'
167178 shell : ' bash'
168- if : ${{ matrix.llvm == 'llvm-14' }}
179+ if : ${{ matrix.llvm == 'llvm-14' && matrix.target_arch == 'x64' }}
169180 run : |
170181 cd remill
171182 mkdir -p build && cd build
172183 cmake -G Ninja \
173184 -DCMAKE_VERBOSE_MAKEFILE=ON \
174185 -DVCPKG_ROOT="${VCPKG_ROOT}" \
186+ -DVCPKG_TARGET_TRIPLET=${TARGET_TRIPLET} \
187+ -DCMAKE_OSX_ARCHITECTURES=${{ matrix.target_arch == 'x64' && 'x86_64' || matrix.target_arch }} \
175188 -DCMAKE_INSTALL_PREFIX="$(pwd)/install" \
176189 ..
177190 cmake --build .
178191 cmake --build . --target install
179192 cmake --build . --target test_dependencies
193+ - name : ' Remill test'
194+ shell : ' bash'
195+ if : ${{ matrix.llvm == 'llvm-14' && matrix.target_arch == 'x64' }}
196+ run : |
197+ # Only run test on x64
180198 # Sometimes fails on a flaky test
199+ cd remill/build
181200 env CTEST_OUTPUT_ON_FAILURE=1 cmake --build . --target test || true
182-
183201 - name : ' Anvill build'
184202 shell : ' bash'
185- if : ${{ matrix.llvm == 'llvm-14' }}
203+ if : ${{ matrix.llvm == 'llvm-14' && matrix.target_arch == 'x64' }}
186204 run : |
187205 cd anvill
188206 mkdir -p build && cd build
189207 cmake -G Ninja \
190208 -DCMAKE_VERBOSE_MAKEFILE=ON \
191209 -DCMAKE_INSTALL_PREFIX="$(pwd)/install" \
192210 -DVCPKG_ROOT="${VCPKG_ROOT}" \
211+ -DVCPKG_TARGET_TRIPLET=${TARGET_TRIPLET} \
212+ -DCMAKE_OSX_ARCHITECTURES=${{ matrix.target_arch == 'x64' && 'x86_64' || matrix.target_arch }} \
193213 -DANVILL_ENABLE_INSTALL_TARGET=ON \
194214 -DANVILL_ENABLE_PYTHON3_LIBS=OFF \
195215 -Dremill_DIR="$(pwd)/../../remill/build/install/lib/cmake/remill" \
196216 ..
197217 cmake --build .
198218 cmake --build . --target install
219+ - name : ' Anvil test'
220+ shell : ' bash'
221+ if : ${{ matrix.llvm == 'llvm-14' && matrix.target_arch == 'x64' }}
222+ run : |
223+ # Only run test on x64
224+ cd anvill/build
199225 ./install/bin/anvill-decompile-json -spec ../bin/Decompile/tests/specs/ret0.json -bc_out ./ret0.bc -ir_out ret0.ir
200-
201226 - name : Cache cleanup and reporting
202227 shell : ' bash'
203228 run : |
0 commit comments