Skip to content

feat: 新增 Action 字段 MultiSwipe 用于多指触控 #1959

feat: 新增 Action 字段 MultiSwipe 用于多指触控

feat: 新增 Action 字段 MultiSwipe 用于多指触控 #1959

Workflow file for this run

name: test
on:
push:
branches:
- '**'
paths:
- '.github/workflows/test.yml'
- '3rdparty/**'
- 'cmake/**'
- 'include/**'
- 'source/**'
- 'CMakeLists.txt'
- 'test/**'
pull_request:
branches:
- '**'
paths:
- '.github/workflows/test.yml'
- '3rdparty/**'
- 'cmake/**'
- 'include/**'
- 'source/**'
- 'CMakeLists.txt'
- 'test/**'
workflow_dispatch:
jobs:
meta:
uses: ./.github/workflows/meta.yml
windows:
needs: meta
runs-on: windows-latest
strategy:
matrix:
arch: [x86_64]
fail-fast: false
steps:
- name: Windows runner hack
shell: cmd
run: |
dir d:\a
cd ..
mkdir C:\MaaFramework
rmdir MaaFramework
mklink /j MaaFramework C:\MaaFramework
dism /Online /Disable-Feature /FeatureName:Windows-Defender /Remove /NoRestart /Quiet
cd .
- name: Windows runner hack (2)
uses: al-cheb/[email protected]
with:
minimum-size: 16GB
maximum-size: 16GB
disk-root: 'D:'
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Windows 10 SDK
uses: GuillaumeFalourd/[email protected]
with:
sdk-version: 22621
- name: Bootstrap MaaDeps
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
python3 tools/maadeps-download.py ${{ matrix.arch == 'x86_64' && 'x64' || 'arm64' }}-windows
- uses: pnpm/action-setup@v4
with:
version: latest
- name: Use Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Prepare Node Binding
shell: bash
run: |
cd source/binding/NodeJS
pnpm i
cd release/maa-node
pnpm i
npm run build
- name: Build MAA
run: |
cmake --preset "${{ matrix.arch == 'x86_64' && 'MSVC 2022' || 'MSVC 2022 ARM' }}" -DMAADEPS_TRIPLET="maa-${{ matrix.arch == 'x86_64' && 'x64' || 'arm64' }}-windows" -DCMAKE_SYSTEM_VERSION="10.0.22621.0" -DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}' -DBUILD_NODEJS_BINDING=ON -DBUILD_PIPELINE_TESTING=ON -DBUILD_DLOPEN_TESTING=ON
cmake --build build --preset "${{ matrix.arch == 'x86_64' && 'MSVC 2022' || 'MSVC 2022 ARM' }} - Release" -j 16
- name: Install
shell: bash
run: |
cmake --install build --prefix install
- name: Run DlopenTesting
# TODO: qemu for aarch64
if: ${{matrix.arch == 'x86_64'}}
shell: bash
run: |
./install/bin/DlopenTesting
- name: Run PipelineTesting
# TODO: qemu for aarch64
if: ${{matrix.arch == 'x86_64'}}
shell: bash
run: |
./install/bin/PipelineTesting.exe ./install/test
- name: Run Python testing
shell: bash
run: |
python3 -m pip install -r ./install/binding/Python/requirements.txt
python3 ./test/python/binding_test.py ./install
- name: Run NodeJS testing
shell: bash
run: |
cd test/nodejs
pnpm i
npx tsx binding.ts
- uses: actions/upload-artifact@v4
if: always()
with:
name: MAA-win-${{ matrix.arch }}-text_log
path: 'install/bin/debug/*.log'
- uses: actions/upload-artifact@v4
if: always()
with:
name: MAA-win-${{ matrix.arch }}-full_log
path: 'install/bin/debug'
ubuntu:
needs: meta
runs-on: ubuntu-latest
container: archlinux:base-devel
strategy:
matrix:
arch: [x86_64]
fail-fast: false
steps:
# maybe should explicitly update some pkg instead of all?
- name: Update system
run: |
pacman -Syu --noconfirm
- name: Install dep
run: |
pacman -Sy
pacman -S --noconfirm cmake python python-pip ccache ninja git
# https://github.com/MaaXYZ/MaaFramework/actions/runs/5643408179/job/15285186255
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install cross compile toolchains
if: ${{ matrix.arch != 'x86_64' }}
run: |
pacman -Sy
pacman -S --noconfirm aarch64-linux-gnu-gcc
- name: Setup ccache
uses: Chocobo1/setup-ccache-action@v1
with:
remove_stale_cache: false
- name: Bootstrap MaaDeps
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
python3 tools/maadeps-download.py ${{ matrix.arch == 'x86_64' && 'x64' || 'arm64' }}-linux
- uses: pnpm/action-setup@v4
with:
version: latest
- name: Use Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Prepare Node Binding
shell: bash
run: |
cd source/binding/NodeJS
pnpm i
cd release/maa-node
pnpm i
npm run build
- name: Build MAA
env:
CC: ${{ matrix.arch == 'x86_64' && 'gcc' || 'aarch64-linux-gnu-gcc' }}
CXX: ${{ matrix.arch == 'x86_64' && 'g++' || 'aarch64-linux-gnu-g++' }}
run: |
cmake --preset 'NinjaMulti' \
-DMAADEPS_TRIPLET='maa-${{ matrix.arch == 'x86_64' && 'x64' || 'arm64' }}-linux' \
-DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}' \
-DBUILD_NODEJS_BINDING=ON \
-DBUILD_PIPELINE_TESTING=ON -DBUILD_DLOPEN_TESTING=ON
cmake --build build --preset 'NinjaMulti - Release' -j 16
- name: Install
shell: bash
run: |
cmake --install build --prefix install
- name: Run DlopenTesting
# TODO: qemu for aarch64
if: ${{matrix.arch == 'x86_64'}}
shell: bash
run: |
./install/bin/DlopenTesting
- name: Run PipelineTesting
# TODO: qemu for aarch64
if: ${{matrix.arch == 'x86_64'}}
shell: bash
run: |
./install/bin/PipelineTesting ./install/test
- name: Run Python testing
shell: bash
run: |
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r ./install/binding/Python/requirements.txt
python3 ./test/python/binding_test.py ./install
- name: Run NodeJS testing
shell: bash
run: |
cd test/nodejs
pnpm i
npx tsx binding.ts
- uses: actions/upload-artifact@v4
if: always()
with:
name: MAA-linux-${{ matrix.arch }}-text_log
path: 'install/bin/debug/*.log'
- uses: actions/upload-artifact@v4
if: always()
with:
name: MAA-linux-${{ matrix.arch }}-full_log
path: 'install/bin/debug'
macos:
needs: meta
strategy:
matrix:
include:
- os: macos-13
arch: x86_64
- os: macos-14
arch: aarch64
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install dep
run: |
brew install cmake ninja ccache
- name: Install compiler
run: |
brew install llvm
- name: Setup ccache
uses: Chocobo1/setup-ccache-action@v1
with:
remove_stale_cache: false
- name: Bootstrap MaaDeps
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
python3 tools/maadeps-download.py ${{ matrix.arch == 'x86_64' && 'x64' || 'arm64' }}-osx
- uses: pnpm/action-setup@v4
with:
version: latest
- name: Use Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Prepare Node Binding
shell: bash
run: |
cd source/binding/NodeJS
pnpm i
cd release/maa-node
pnpm i
npm run build
- name: Build MAA
run: |
LLVM_PREFIX=$(brew --prefix llvm)
cmake --preset 'NinjaMulti' \
-DMAADEPS_TRIPLET='maa-${{ matrix.arch == 'x86_64' && 'x64' || 'arm64' }}-osx' \
-DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}' \
-DCMAKE_C_COMPILER=${LLVM_PREFIX}/bin/clang \
-DCMAKE_CXX_COMPILER=${LLVM_PREFIX}/bin/clang++ \
-DBUILD_NODEJS_BINDING=ON \
-DBUILD_PIPELINE_TESTING=ON -DBUILD_DLOPEN_TESTING=ON
cmake --build build --preset 'NinjaMulti - Release' -j 16
- name: Install
shell: bash
if: always()
run: |
cmake --install build --prefix install
- name: Run DlopenTesting
shell: bash
run: |
./install/bin/DlopenTesting
- name: Run PipelineTesting
shell: bash
run: |
./install/bin/PipelineTesting ./install/test
- name: Run Python testing
shell: bash
run: |
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r ./install/binding/Python/requirements.txt
python3 ./test/python/binding_test.py ./install
- name: Run NodeJS testing
shell: bash
run: |
cd test/nodejs
pnpm i
npx tsx binding.ts
- uses: actions/upload-artifact@v4
if: always()
with:
name: MAA-macos-${{ matrix.arch }}-text_log
path: 'install/bin/debug/*.log'
- uses: actions/upload-artifact@v4
if: always()
with:
name: MAA-macos-${{ matrix.arch }}-full_log
path: 'install/bin/debug'