Skip to content

Merge pull request #282 from OpenWebGAL/dev #51

Merge pull request #282 from OpenWebGAL/dev

Merge pull request #282 from OpenWebGAL/dev #51

Workflow file for this run

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