@@ -2,87 +2,70 @@ name: CMake (macOS)
22
33on : [push, pull_request]
44
5+ permissions :
6+ contents : read
7+
8+ concurrency :
9+ group : ${{ github.workflow }}-${{ github.ref }}
10+ cancel-in-progress : true
11+
512env :
613 BUILD_TYPE : RelWithDebInfo
714 BUILD_DIR : build
815 BUILD_NUMBER : ${{github.run_number}}
9- OPENSSL_ROOT_DIR : ${{ github.workspace }}/openssl-binary
10- GTest_ROOT : ${{ github.workspace }}/gtest-binary
1116 QT_QPA_PLATFORM : offscreen
1217 CMAKE_BUILD_PARALLEL_LEVEL : 3
1318 MACOSX_DEPLOYMENT_TARGET : 14.0
1419
1520jobs :
1621 build :
1722 runs-on : macos-latest
23+ timeout-minutes : 120
1824
1925 steps :
2026 - name : Checkout code
21- uses : actions/checkout@v6
27+ uses : actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
2228 with :
2329 submodules : recursive
2430 persist-credentials : false
2531
26- - name : Cache
27- uses : actions/cache@v5
28- id : cache
32+ - name : Cache vcpkg
33+ uses : actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
2934 with :
30- path : |
31- ${{ env.OPENSSL_ROOT_DIR }}
32- ${{ env.GTest_ROOT }}
33- key : ${{ runner.os }}-deps
34-
35- - name : Build GTest
36- if : steps.cache.outputs.cache-hit != 'true'
37- run : |
38- git clone --depth=1 https://github.com/google/googletest.git
39- cmake -S googletest -B gtest-build \
40- -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
41- -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
42- -DCMAKE_INSTALL_PREFIX=${GTest_ROOT} \
43- -DCMAKE_CXX_STANDARD=20
44- cmake --build gtest-build --target install
45-
46- - name : Build OpenSSL
47- if : steps.cache.outputs.cache-hit != 'true'
48- run : |
49- git clone --depth=1 https://github.com/openssl/openssl.git -b openssl-3.5
50- cd openssl
51- for ARCH in x86_64 arm64; do
52- ./Configure darwin64-${ARCH} --prefix=${OPENSSL_ROOT_DIR} no-apps no-shared no-module no-tests enable-ec_nistp_64_gcc_128
53- MAKEFLAGS=-j1 make -s install_sw
54- mv ${OPENSSL_ROOT_DIR}{,.${ARCH}}
55- make distclean
56- done
57- cd -
58- cp -a ${OPENSSL_ROOT_DIR}{.x86_64,}
59- cd ${OPENSSL_ROOT_DIR}.arm64
60- for i in lib/lib*.*; do
61- lipo -create ${OPENSSL_ROOT_DIR}.x86_64/${i} ${i} -output ${OPENSSL_ROOT_DIR}/${i}
62- done
63- cd -
35+ path : ${{ github.workspace }}/vcpkg_cache
36+ key : ${{ runner.os }}-${{ runner.arch }}-vcpkg-${{ hashFiles('lib/libelectronic-id/vcpkg.json', '.github/vcpkg-triplets/arm64-x64-osx.cmake') }}
6437
6538 - name : Install Qt
66- uses : jurplel/install-qt-action@v4
39+ uses : jurplel/install-qt-action@48d3ad6db93f3627c8ee7a0454bc6f3744f7e730 # v4.3.1
6740 with :
6841 version : 6.10.3
6942 arch : clang_64
7043 cache : true
7144
7245 - name : Configure
73- run : cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -B ${BUILD_DIR} -S .
46+ env :
47+ VCPKG_BINARY_SOURCES : clear;files,${{ github.workspace }}/vcpkg_cache,readwrite
48+ run : |
49+ export VCPKG_ROOT="${VCPKG_INSTALLATION_ROOT}"
50+ cmake -S . -B "${BUILD_DIR}" \
51+ -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \
52+ -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
53+ -DCMAKE_TOOLCHAIN_FILE="${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" \
54+ -DVCPKG_MANIFEST_DIR="${GITHUB_WORKSPACE}/lib/libelectronic-id" \
55+ -DVCPKG_OVERLAY_TRIPLETS="${GITHUB_WORKSPACE}/.github/vcpkg-triplets" \
56+ -DVCPKG_TARGET_TRIPLET=arm64-x64-osx
7457
7558 - name : Build
7659 run : |
7760 cmake --build ${BUILD_DIR} --config ${BUILD_TYPE}
7861 cmake --build ${BUILD_DIR} --config ${BUILD_TYPE} --target installer
7962 cmake --build ${BUILD_DIR} --config ${BUILD_TYPE} --target installer-safari
8063
81- # - name: Test
82- # run: ctest -V -C ${BUILD_TYPE} --test-dir ${BUILD_DIR}
64+ - name : Test
65+ run : ctest -V -C ${BUILD_TYPE} --test-dir ${BUILD_DIR}
8366
8467 - name : Upload artifacts
85- uses : actions/upload-artifact@v7
68+ uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
8669 with :
8770 name : web-eid-app-macos-build-${{github.run_number}}
8871 path : |
0 commit comments