Skip to content

Commit 83980d6

Browse files
committed
github: workflows: Enable ACL caching for macOS ci
- Upgrade MacOS image to v15.
1 parent 42be8d5 commit 83980d6

File tree

2 files changed

+58
-16
lines changed

2 files changed

+58
-16
lines changed

.github/automation/build_acl.sh

+16-10
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,19 @@ fi
6161
echo "Compiler version:"
6262
$CC --version
6363

64-
set -x
65-
git clone --branch $ACL_VERSION --depth 1 $ACL_REPO $ACL_ROOT_DIR
66-
67-
cd $ACL_ROOT_DIR
68-
69-
scons $MP Werror=0 debug=$ACL_DEBUG neon=1 opencl=0 embed_kernels=0 \
70-
os=$ACL_OS arch=$ACL_ARCH build=native multi_isa=$ACL_MULTI_ISA_SUPPORT \
71-
fixed_format_kernels=1 cppthreads=0 openmp=$ACL_OPENMP examples=0 \
72-
validation_tests=0
73-
set +x
64+
if [[ "$ACL_ACTION" == "clone" ]]; then
65+
set -x
66+
git clone --branch $ACL_VERSION --depth 1 $ACL_REPO $ACL_ROOT_DIR
67+
set +x
68+
elif [[ "$ACL_ACTION" == "build" ]]; then
69+
cd $ACL_ROOT_DIR
70+
set -x
71+
scons $MP Werror=0 debug=$ACL_DEBUG neon=1 opencl=0 embed_kernels=0 \
72+
os=$ACL_OS arch=$ACL_ARCH build=native multi_isa=$ACL_MULTI_ISA_SUPPORT \
73+
fixed_format_kernels=1 cppthreads=0 openmp=$ACL_OPENMP examples=0 \
74+
validation_tests=0
75+
set +x
76+
else
77+
echo "Unknown action: $ACL_ACTION"
78+
exit 1
79+
fi

.github/workflows/ci-aarch64.yml

+42-6
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,20 @@ on:
2424
pull_request:
2525
types: [opened, synchronize, reopened]
2626

27+
# TODO: Fix job cancellation.
2728
#* Stop stale workflows when pull requests are updated: https://stackoverflow.com/a/70972844
2829
#* Does not apply to the main branch.
29-
concurrency:
30-
group: ${{ github.ref }}
31-
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
30+
# concurrency:
31+
# group: ${{ github.ref }}
32+
# cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
3233

3334
# Declare default permissions as read only.
3435
permissions: read-all
3536

3637
jobs:
3738
macos:
3839
name: macOS
39-
runs-on: macos-14
40+
runs-on: macos-15
4041
strategy:
4142
matrix:
4243
toolset: [clang, gcc]
@@ -53,14 +54,49 @@ jobs:
5354
with:
5455
packages: scons
5556

57+
- name: Clone ACL
58+
run: ${{ github.workspace }}/oneDNN/.github/automation/build_acl.sh
59+
env:
60+
ACL_ACTION: clone
61+
ACL_CONFIG: ${{ matrix.config }}
62+
ACL_ROOT_DIR: ${{ github.workspace }}/ComputeLibrary
63+
BUILD_TOOLSET: ${{ matrix.toolset }}
64+
GCC_VERSION: 14
65+
66+
- name: Get ACL commit hash for cache key
67+
id: get_acl_commit_hash
68+
run: (cd ${{ github.workspace }}/ComputeLibrary && echo "ACLCommitHash=$(git rev-parse --short HEAD)") >> $GITHUB_OUTPUT
69+
70+
- name: Get system name
71+
id: get_system_name
72+
run: (echo "SystemName=$(uname)") >> $GITHUB_OUTPUT
73+
74+
- name: Restore cached ACL
75+
id: cache-acl-restore
76+
uses: actions/cache/restore@v4
77+
with:
78+
# Key must have MacOS version to force rebuild when it is updated.
79+
key: ${{ steps.get_system_name.outputs.SystemName }}-15-acl-${{ matrix.toolset }}-${{ matrix.config }}-${{ steps.get_acl_commit_hash.outputs.ACLCommitHash }}
80+
path: ${{ github.workspace }}/ComputeLibrary/build
81+
5682
- name: Build ACL
83+
if: ${{ steps.cache-acl-restore.outputs.cache-hit != 'true' }}
5784
run: ${{ github.workspace }}/oneDNN/.github/automation/build_acl.sh
5885
env:
86+
ACL_ACTION: build
5987
ACL_ROOT_DIR: ${{ github.workspace }}/ComputeLibrary
6088
BUILD_TOOLSET: ${{ matrix.toolset }}
6189
ACL_CONFIG: ${{ matrix.config }}
6290
GCC_VERSION: 14
6391

92+
- name: Save ACL in cache
93+
if: ${{ steps.cache-acl-restore.outputs.cache-hit != 'true' }}
94+
id: cache-acl_build-save
95+
uses: actions/cache/save@v4
96+
with:
97+
key: ${{ steps.cache-acl-restore.outputs.cache-primary-key }}
98+
path: ${{ github.workspace }}/ComputeLibrary/build
99+
64100
- name: Build oneDNN
65101
run: ${{ github.workspace }}/oneDNN/.github/automation/build_aarch64.sh
66102
working-directory: ${{ github.workspace }}/oneDNN
@@ -69,15 +105,15 @@ jobs:
69105
BUILD_TOOLSET: ${{ matrix.toolset }}
70106
CMAKE_BUILD_TYPE: ${{ matrix.config }}
71107
GCC_VERSION: 14
72-
108+
73109
- if: matrix.toolset == 'clang'
74110
name: Run oneDNN smoke tests
75111
run: ${{ github.workspace }}/oneDNN/.github/automation/test_aarch64.sh
76112
working-directory: ${{ github.workspace }}/oneDNN/build
77113
env:
78114
CMAKE_BUILD_TYPE: ${{ matrix.config }}
79115
DYLD_LIBRARY_PATH: ${{ github.workspace }}/ComputeLibrary/build
80-
116+
81117
# We only run the linux aarch64 runners if macos smoke tests pass.
82118
linux:
83119
needs: macos

0 commit comments

Comments
 (0)