CI: cache vcpkg #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build_macos | |
on: | |
workflow_call: | |
outputs: | |
name: | |
description: "The artifact name" | |
value: ${{ jobs.build_macos.outputs.name }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
jobs: | |
build_macos: | |
strategy: | |
matrix: | |
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
BUILD_TYPE: [Release, Debug] | |
qt_version: [6.6.1, 5.15.2, 5.12.12] | |
qt_arch: [clang_64] | |
include: | |
- qt_version: 6.6.1 | |
qt_modules: qtscxml qtwebchannel qtwebsockets qtwebview qtpositioning | |
- qt_version: 5.15.2 | |
- qt_version: 5.12.12 | |
runs-on: macos-latest | |
env: | |
BUILD_TYPE: ${{ matrix.BUILD_TYPE }} | |
SOURCE_DIR: ${{github.workspace}}/.cache/source | |
TOOSL_DIR: ${{github.workspace}}/.cache/tools | |
INSTALL_DIR: ${{github.workspace}}/.cache/install_macos | |
qt_modules: qtwebengine ${{matrix.qt_modules}} | |
VCPKGGITCOMMITID: f1c6efee2245009540dde947e0e3d008f3aa7dbb | |
LunarCalendar_VERSION: v0.3.1 | |
artifact_name: build_macos | |
# Map the job outputs to step outputs | |
outputs: | |
name: ${{ env.artifact_name }} | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Make directories | |
run: | | |
cmake -E make_directory ${{env.SOURCE_DIR}} | |
cmake -E make_directory ${{env.TOOSL_DIR}} | |
cmake -E make_directory ${{env.INSTALL_DIR}} | |
cmake -E make_directory ${{github.workspace}}/build | |
- name: Cache installed | |
uses: actions/cache@v3 | |
id: cache-installed | |
with: | |
path: | | |
${{env.INSTALL_DIR}} | |
key: Cache-installed-macos | |
- name: Cache vcpkg | |
#if: false | |
uses: actions/cache@v2 | |
id: cache-installed | |
with: | |
path: | | |
${{ runner.workspace }}/vcpkg/ | |
key: cache-vcpkg | |
- name: run-vcpkg | |
uses: lukka/run-vcpkg@v11 | |
with: | |
vcpkgGitCommitId: ${{env.VCPKGGITCOMMITID}} | |
vcpkgDirectory: ${{runner.workspace}}/vcpkg/ | |
run: | | |
vcpkg install openssl --triplet=arm | |
- name: Cache Qt | |
id: cache-qt | |
uses: actions/cache@v1 # not v2! | |
with: | |
path: ${{env.TOOSL_DIR}}/qt | |
key: qt${{matrix.qt_version}}-${{matrix.qt_arch}} | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
dir: '${{env.TOOSL_DIR}}/qt' # optional | |
version: '${{matrix.qt_version}}' # optional, default is 5.15.2 | |
arch: '${{matrix.qt_arch}}' # optional | |
modules: '${{env.qt_modules}}' # optional. See: https://ddalcino.github.io/aqt-list-server/ | |
cached: '${{steps.cache-qt.outputs.cache-hit}}' # optional, default is false | |
- name: git clone RabbitCommon | |
working-directory: ${{env.SOURCE_DIR}} | |
run: git clone https://github.com/KangLin/RabbitCommon.git | |
- name: Compile | |
working-directory: ${{github.workspace}}/build | |
env: | |
RabbitCommon_DIR: ${{env.SOURCE_DIR}}/RabbitCommon | |
run: | | |
cmake ${{github.workspace}} \ | |
-DCMARK_SHARED=OFF \ | |
-DCMARK_TESTS=OFF \ | |
-DCMARK_STATIC=ON \ | |
-DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} \ | |
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/build/install \ | |
-DCMAKE_PREFIX_PATH=${{env.INSTALL_DIR}}/lib/cmake \ | |
-DVCPKG_VERBOSE=ON \ | |
-DX_VCPKG_APPLOCAL_DEPS_INSTALL=ON \ | |
-DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake | |
cmake --build . --config ${{ matrix.BUILD_TYPE }} --target install | |
7z a LunarCalendar_${{env.LunarCalendar_VERSION}}_macos_qt${{matrix.qt_version}}_${{ matrix.BUILD_TYPE }}.zip ./install/* | |
- name: Update artifact | |
#if: ${{ matrix.BUILD_TYPE == 'Release' && matrix.qt_version == '5.12.12' }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ env.artifact_name }} | |
path: | | |
${{github.workspace}}/build/LunarCalendar_${{env.LunarCalendar_VERSION}}_macos_qt${{matrix.qt_version}}_${{ matrix.BUILD_TYPE }}.zip | |
# - name: Upload To Github Release | |
# if: ${{ matrix.BUILD_TYPE == 'Release' && startsWith(github.ref, 'refs/tags/') }} | |
# uses: softprops/action-gh-release@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# prerelease: true | |
# body: | | |
# [:cn: 修改日志](ChangeLog_zh_CN.md) [:us: Change log](ChangeLog.md) | |
# files: | | |
# ${{github.workspace}}/rabbitcommon_${{env.RabbitCommon_VERSION}}_amd64.deb |