name: Build
on:
push:
branches: [ master ]
workflow_dispatch:
jobs:
build-macos-arm64:
runs-on: macos-latest
name: Build for macOS arm64
env:
BUILD_ARCH: arm64
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build project for arm64
run: |
# 确保脚本有执行权限
chmod +x ./source/macos.sh
# 执行构建脚本
./source/macos.sh
- name: Upload artifact for arm64
uses: actions/upload-artifact@v4
with:
name: macos-arm64
path: |
./lib/macos/arm64/*
if-no-files-found: error
build-windows-x86_64:
runs-on: windows-2022
name: Build for Windows x86_64
env:
BUILD_ARCH: x86_64
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up build environment
run: |
# 使用 Chocolatey 安装 MinGW
choco install -y mingw
# 将 MinGW 添加到 PATH
$env:PATH += ";C:\ProgramData\mingw64\mingw64\bin"
# 保存 PATH 以便后续步骤使用
echo "C:\ProgramData\mingw64\mingw64\bin" >> $env:GITHUB_PATH
# 安装 msvc 和Windows SDK
choco install -y visualstudio2022-workload-vctools
choco install -y windows-sdk-10
# 将 Windows SDK 添加到 PATH
$env:PATH += ";C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64"
# 保存 PATH 以便后续步骤使用
echo "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64" >> $env:GITHUB_PATH
# 安装 CMake
choco install -y cmake
# 将 CMake 添加到 PATH
$env:PATH += ";C:\Program Files\CMake\bin"
# 保存 PATH 以便后续步骤使用
echo "C:\Program Files\CMake\bin" >> $env:GITHUB_PATH
- name: Build project for x86_64
run: |
# 执行构建脚本
./source/build.cmd
- name: Upload artifact for x86_64
uses: actions/upload-artifact@v4
with:
name: windows-x86_64
path: |
./lib/windows/*
if-no-files-found: error
build-linux-x86_64:
runs-on: ubuntu-latest
name: Build for Linux x86_64
env:
BUILD_ARCH: x86_64
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up build environment
run: |
sudo apt-get update
sudo apt-get install -y build-essential pkg-config
sudo apt-get install libgtk-3-dev libwebkit2gtk-4.1-dev libnotify-dev libglib2.0-dev
- name: Build project for x86_64
run: |
# 确保脚本有执行权限
chmod +x ./source/linux.sh
# 执行构建脚本
./source/linux.sh
- name: Upload artifact for x86_64
uses: actions/upload-artifact@v4
with:
name: linux-x86_64
path: |
./lib/linux/x86_64/*
if-no-files-found: error
build-linux-arrch64:
runs-on: ubuntu-22.04-arm
name: Build for Linux aarch64
env:
BUILD_ARCH: aarch64
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up build environment
run: |
sudo apt-get update
sudo apt-get install -y build-essential pkg-config
sudo apt-get install libgtk-3-dev libwebkit2gtk-4.1-dev libnotify-dev libglib2.0-dev
- name: Build project for aarch64
run: |
# 确保脚本有执行权限
chmod +x ./source/linux.sh
# 执行构建脚本
./source/linux.sh
- name: Upload artifact for aarch64
uses: actions/upload-artifact@v4
with:
name: linux-aarch64
path: |
./lib/linux/aarch64/*
if-no-files-found: error