Skip to content

[0516] Velopack 更新源按社区版/商业版区分 (#4351) #4909

[0516] Velopack 更新源按社区版/商业版区分 (#4351)

[0516] Velopack 更新源按社区版/商业版区分 (#4351) #4909

name: Build and Test on macOS arm64
on:
push:
branches: [ main ]
paths:
- 'src/**'
- '!src/Plugins/Windows/**'
- 'tests/**'
- 'xmake.lua'
- 'xmake/packages.lua'
- 'xmake/research.lua'
- 'xmake/options.lua'
- 'xmake/requires.lua'
- 'xmake/targets/**'
- 'xmake/packages/**'
- 'xmake-requires.lock'
- 'lolly/Data/**'
- 'lolly/Kernel/**'
- 'lolly/Plugins/**'
- 'lolly/System/**'
- 'lolly/lolly/**'
- 'lolly/tests/**'
- 'lolly/xmake.lua'
- 'moebius/Data/**'
- 'moebius/Kernel/**'
- 'moebius/Scheme/**'
- 'moebius/moebius/**'
- 'moebius/tests/**'
- 'moebius/xmake.lua'
- '.github/workflows/ci-macos-arm64.yml'
- 'TeXmacs/tests/*.scm'
- 'TeXmacs/progs/**'
- 'TeXmacs/plugins/**'
- '3rdparty/**'
pull_request:
branches: [ main ]
paths:
- 'src/**'
- '!src/Plugins/Windows/**'
- 'tests/**'
- 'xmake.lua'
- 'xmake/packages.lua'
- 'xmake/research.lua'
- 'xmake/options.lua'
- 'xmake/requires.lua'
- 'xmake/targets/**'
- 'xmake/packages/**'
- 'xmake-requires.lock'
- 'lolly/Data/**'
- 'lolly/Kernel/**'
- 'lolly/Plugins/**'
- 'lolly/System/**'
- 'lolly/lolly/**'
- 'lolly/tests/**'
- 'lolly/xmake.lua'
- 'moebius/Data/**'
- 'moebius/Kernel/**'
- 'moebius/Scheme/**'
- 'moebius/moebius/**'
- 'moebius/tests/**'
- 'moebius/xmake.lua'
- '.github/workflows/ci-macos-arm64.yml'
- 'TeXmacs/tests/*.scm'
- 'TeXmacs/progs/**'
- 'TeXmacs/plugins/**'
- '3rdparty/**'
jobs:
macosbuild:
strategy:
matrix:
os: [macos-14]
arch: [arm64]
runs-on: ${{ matrix.os }}
timeout-minutes: 45
if: always()
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Detect changes
id: filter
uses: dorny/paths-filter@v3
with:
filters: |
lolly:
- 'lolly/Data/**'
- 'lolly/Kernel/**'
- 'lolly/Plugins/**'
- 'lolly/System/**'
- 'lolly/lolly/**'
- 'lolly/tests/**'
- 'lolly/xmake.lua'
lolly_src:
- 'lolly/Data/**'
- 'lolly/Kernel/**'
- 'lolly/Plugins/**'
- 'lolly/System/**'
- 'lolly/lolly/**'
- 'lolly/xmake.lua'
moebius:
- 'moebius/Data/**'
- 'moebius/Kernel/**'
- 'moebius/Scheme/**'
- 'moebius/moebius/**'
- 'moebius/tests/**'
- 'moebius/xmake.lua'
moebius_src:
- 'moebius/Data/**'
- 'moebius/Kernel/**'
- 'moebius/Scheme/**'
- 'moebius/moebius/**'
- 'moebius/xmake.lua'
mogan:
- 'src/**'
- 'tests/**'
- 'xmake.lua'
- 'xmake/packages.lua'
- 'xmake/research.lua'
- 'xmake/packages/**'
- 'xmake-requires.lock'
- 'TeXmacs/tests/*.scm'
- 'TeXmacs/progs/**'
- 'TeXmacs/plugins/**'
- '3rdparty/**'
- name: cache xmake
uses: actions/cache@v4
with:
path: |
${{github.workspace}}/build/.build_cache
/Users/runner/.xmake
key: xmake-${{ runner.os }}-${{ matrix.arch }}-${{ hashFiles('xmake/vars.lua', 'lolly/xmake.lua', 'moebius/xmake.lua') }}
- name: Set Qt Environment Variables
run: |
echo "Qt6_DIR=$Qt6_DIR" >> $GITHUB_ENV
echo "CMAKE_PREFIX_PATH=$Qt6_DIR" >> $GITHUB_ENV
echo "Qt6Widgets_DIR=$Qt6_DIR/lib/QtWidgets.framework" >> $GITHUB_ENV
echo "Qt6Gui_DIR=$Qt6_DIR/lib/QtGui.framework" >> $GITHUB_ENV
echo "Qt6Core_DIR=$Qt6_DIR/lib/QtCore.framework" >> $GITHUB_ENV
- name: set XMAKE_GLOBALDIR
run: echo "XMAKE_GLOBALDIR=${{ runner.workspace }}/xmake-global" >> $GITHUB_ENV
- uses: xmake-io/github-action-setup-xmake@v1
with:
xmake-version: v3.0.4
actions-cache-folder: '.xmake-cache'
- name: xmake repo --update
run: xmake repo --update
- name: cache packages from xrepo
uses: actions/cache@v4
with:
path: |
${{ env.XMAKE_GLOBALDIR }}/.xmake/packages
key: xrepo-${{ runner.os }}-${{ matrix.arch }}-${{ hashFiles('xmake/vars.lua', 'lolly/xmake.lua', 'moebius/xmake.lua') }}
- name: config
run: xmake config --policies=build.ccache -o ${{ runner.workspace }}/build -m releasedbg --loro=yes --yes
- name: build lolly
if: steps.filter.outputs.lolly == 'true'
run: xmake build --yes -vD liblolly
- name: test lolly
if: steps.filter.outputs.lolly == 'true'
run: xmake test "lolly_tests/*"
- name: build moebius
if: steps.filter.outputs.moebius == 'true'
run: xmake build --yes -vD libmoebius
- name: test moebius
if: steps.filter.outputs.moebius == 'true'
run: xmake test "moebius_tests/*"
- name: build
if: steps.filter.outputs.lolly_src == 'true' || steps.filter.outputs.moebius_src == 'true' || steps.filter.outputs.mogan == 'true'
run: xmake build --yes -vD stem && xmake build --yes -vD --group=tests
- name: C++ tests
if: steps.filter.outputs.lolly_src == 'true' || steps.filter.outputs.moebius_src == 'true' || steps.filter.outputs.mogan == 'true'
run: xmake run --yes --verbose --diagnosis --group=tests
env:
QT_QPA_PLATFORM: offscreen
- name: Scheme tests
if: steps.filter.outputs.lolly_src == 'true' || steps.filter.outputs.moebius_src == 'true' || steps.filter.outputs.mogan == 'true'
run: xmake run --yes -vD --group=scheme_tests
# - name: integration test
# run: xmake run --yes -vD --group=integration_tests
# env:
# QT_QPA_PLATFORM: offscreen