Merge pull request #282 from OpenWebGAL/dev #51
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 WebGAL Terre | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
build-linux: | |
name: Build Linux Binary | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
- name: Build | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
run: sh release-linux.sh | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: WebGAL_Terre_Linux | |
path: release | |
build-arm64: | |
name: Build Linux ARM64 Binary | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
- name: Build Stage 1 | |
run: | | |
echo "Welcome to build WebGAL Terre, the editor of WebGAL platform." | |
# 安装依赖 | |
yarn install --frozen-lockfile | |
# 清理 | |
test -d release && rm -rf release | |
mkdir release | |
# 进入 Terre 目录 | |
cd packages/terre2 | |
yarn run build | |
- name: Build pkg ARM64 | |
uses: pguyot/arm-runner-action@v2 | |
with: | |
base_image: raspios_lite_arm64:latest | |
bind_mount_repository: true | |
commands: | | |
apt-get update | |
apt-get install -y curl sudo | |
# Install Node.js v18.x | |
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - | |
apt-get install -y nodejs | |
# Enable yarn | |
corepack prepare [email protected] --activate | |
corepack enable yarn | |
cd packages/terre2 | |
yarn run pkg:linux-arm64 | |
- name: Build Stage 2 | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
run: | | |
sudo chmod 777 -R . | |
cd packages/terre2/dist | |
cp -r WebGAL_Terre ../../../release | |
rm WebGAL_Terre | |
cd ../ | |
mkdir Exported_Games | |
cp -r public assets Exported_Games ../../release | |
cd ../../ | |
# 进入 Origine 目录 | |
cd packages/origine2 | |
# 低内存,使用下一行限制内存使用 | |
# export NODE_OPTIONS=--max_old_space_size=512000 | |
yarn run build | |
cp -rf dist/* ../../release/public/ | |
cd ../../ | |
# 进入 Electron 目录 | |
cd packages/WebGAL-electron | |
yarn install --frozen-lockfile | |
yarn run build:arm64 | |
mkdir ../../release/assets/templates/WebGAL_Electron_Template | |
cp -rf build/linux-arm64-unpacked/* ../../release/assets/templates/WebGAL_Electron_Template/ | |
cd ../../ | |
# 克隆 WebGAL Android 模板 | |
cd release/assets/templates/ | |
git clone https://github.com/nini22P/WebGAL-Android.git | |
mv WebGAL-Android WebGAL_Android_Template | |
# MainActivity.kt 移动到主文件夹防止误删 | |
mv WebGAL_Android_Template/app/src/main/java/com/openwebgal/demo/MainActivity.kt WebGAL_Android_Template/app/src/main/java/MainActivity.kt | |
cd ../../../ | |
cd release | |
# 删除冗余文件 | |
rm -rf Exported_Games/* | |
rm -rf public/games/* | |
rm -rf public/games/.gitkeep | |
rm -rf assets/templates/WebGAL_Template/game/video/* | |
rm -rf assets/templates/WebGAL_Template/game/video/.gitkeep | |
rm -rf assets/templates/WebGAL_Android_Template/.github | |
rm -rf assets/templates/WebGAL_Android_Template/.git | |
rm -rf assets/templates/WebGAL_Android_Template/.gitattributes | |
rm -rf assets/templates/WebGAL_Android_Template/app/src/main/assets/webgal/.gitkeep | |
rm -rf assets/templates/WebGAL_Android_Template/app/src/main/java/com | |
echo "WebGAL Terre is now ready to be deployed." | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: WebGAL_Terre_Linux_Arm64 | |
path: release | |
build-mac: | |
name: Build MacOS Binary | |
runs-on: macos-14 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
- name: Build | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
run: sh release-mac.sh | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: WebGAL_Terre_Mac | |
path: release | |
build-windows: | |
name: Build Windows Binary | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
- name: Build | |
shell: bash | |
run: ./release.sh | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: WebGAL_Terre_Windows | |
path: release | |
build-windows-nsis: | |
name: Build Windows Setup | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
- name: Build | |
shell: bash | |
run: ./release.sh | |
- name: Build Setup | |
shell: bash | |
run: mkdir bundle && yarn nsis-bundle | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: WebGAL_Terre_Windows_Setup | |
path: bundle/WebGal_Terre_Setup.exe | |