try fix macOS CI #742
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: CI-MacOS | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
# Allows you to run this workflow manually from the Actions tab. | |
workflow_dispatch: | |
inputs: | |
debug_enabled: | |
type: boolean | |
description: 'Run the build with tmate debugging enabled' | |
required: false | |
default: false | |
env: | |
VNOTE_VER: 3.17.0 | |
CMAKE_VER: 3.24.3 | |
jobs: | |
build: | |
name: Build On MacOS | |
timeout-minutes: 120 | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: "Build on Arm64" | |
os: macos-latest | |
arch: universal | |
runs-on: ${{matrix.config.os}} | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE. | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 1 | |
- name: Init Submodules | |
run: | | |
auth_header="$(git config --local --get http.https://github.com/.extraheader)" | |
git submodule sync --recursive | |
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1 | |
- name: Install Dependencies | |
run: | | |
brew install tree libiodbc libpq | |
- name: Fix SQL | |
if: ${{matrix.config.arch == 'universal'}} | |
run: | | |
sudo mkdir -p /usr/local/opt/libiodbc/lib | |
sudo ln -s /opt/homebrew/opt/libiodbc/lib/libiodbc.2.dylib /usr/local/opt/libiodbc/lib/libiodbc.2.dylib | |
sudo mkdir -p /Applications/Postgres.app/Contents/Versions/14/lib | |
sudo ln -s /opt/homebrew/Cellar/libpq/16.3/lib/libpq.5.dylib /Applications/Postgres.app/Contents/Versions/14/lib/libpq.5.dylib | |
- name: Install a fresh CMake | |
run: | | |
wget --no-verbose https://github.com/Kitware/CMake/releases/download/v${CMAKE_VER}/cmake-${CMAKE_VER}-macos-universal.tar.gz | |
tar xzf cmake-${CMAKE_VER}-macos-universal.tar.gz | |
sudo rm -f /usr/local/bin/cmake /usr/local/bin/cpack | |
sudo ln -s ${{runner.workspace}}/cmake-${CMAKE_VER}-macos-universal/CMake.app/Contents/bin/cmake /usr/local/bin/cmake | |
sudo ln -s ${{runner.workspace}}/cmake-${CMAKE_VER}-macos-universal/CMake.app/Contents/bin/cpack /usr/local/bin/cpack | |
working-directory: ${{runner.workspace}} | |
- name: Install macdeployqtfix | |
run: | | |
git clone https://github.com/tamlok/macdeployqtfix.git macdeployqtfix --depth=1 | |
working-directory: ${{runner.workspace}} | |
- name: Cache Qt | |
id: cache-qt | |
uses: actions/cache@v1 # not v2! | |
with: | |
path: ../Qt | |
key: ${{ runner.os }}-QtCache-6.5 | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: 6.5.3 | |
target: desktop | |
modules: 'qtwebengine qtwebchannel qtpositioning qtpdf qtimageformats qt5compat qtserialport' | |
cache: 'true' | |
- name: Create Build Dir | |
run: mkdir build | |
working-directory: ${{runner.workspace}} | |
- name: Configure Project | |
run: | | |
qmake -v | |
cmake --version | |
cmake -DMACDEPLOYQTFIX_EXECUTABLE=${{runner.workspace}}/macdeployqtfix/macdeployqtfix.py -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" ${GITHUB_WORKSPACE} | |
working-directory: ${{runner.workspace}}/build | |
- name: Build Project | |
run: | | |
cmake --build . --target pack | |
ls -ls . | |
ls -ls src | |
mv src/vnote.dmg VNote-${{env.VNOTE_VER}}-mac-${{matrix.config.arch}}.dmg | |
working-directory: ${{runner.workspace}}/build | |
# Enable tmate debugging of manually-triggered workflows if the input option was provided | |
- name: Setup tmate session | |
uses: mxschmitt/action-tmate@v3 | |
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }} | |
- name: Archive Artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: VNote-${{env.VNOTE_VER}}-mac-${{matrix.config.arch}} | |
path: ${{runner.workspace}}/build/VNote-${{env.VNOTE_VER}}-mac-${{matrix.config.arch}}.dmg | |
- name: Update Tag | |
if: github.ref == 'refs/heads/master' | |
run: | | |
git tag --force continuous-build ${GITHUB_SHA} | |
git push --force --tags | |
- name: Update Continuous Build Release | |
if: github.ref == 'refs/heads/master' | |
uses: johnwbyrd/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
files: ${{runner.workspace}}/build/VNote-${{env.VNOTE_VER}}-mac-${{matrix.config.arch}}.dmg | |
release: Continuous Build | |
tag: continuous-build | |
- name: Release | |
if: github.ref == 'refs/heads/master' && startsWith(github.event.head_commit.message, '[Release]') | |
uses: ncipollo/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
artifacts: ${{runner.workspace}}/build/VNote-${{env.VNOTE_VER}}-mac-${{matrix.config.arch}}.dmg | |
commit: master | |
tag: v${{env.VNOTE_VER}} | |
allowUpdates: true | |
draft: true |