Skip to content

Merge pull request #277 from OpenWebGAL/dev #27

Merge pull request #277 from OpenWebGAL/dev

Merge pull request #277 from OpenWebGAL/dev #27

Workflow file for this run

name: Release WebGAL Terre
on:
push:
tags:
- '*.*'
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: Compress
run: 7z a -tzip WebGAL_Terre_Linux.zip release/*
- name: Upload Artifact
uses: actions/upload-artifact@v2
with:
name: WebGAL_Terre_Linux
path: WebGAL_Terre_Linux.zip
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: Compress
run: 7z a -tzip WebGAL_Terre_Linux_Arm64.zip release/*
- name: Upload Artifact
uses: actions/upload-artifact@v2
with:
name: WebGAL_Terre_Linux_Arm64
path: WebGAL_Terre_Linux_Arm64.zip
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: Compress
run: 7z a -tzip WebGAL_Terre_Mac.zip release/*
- name: Upload Artifact
uses: actions/upload-artifact@v2
with:
name: WebGAL_Terre_Mac
path: WebGAL_Terre_Mac.zip
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: Compress
run: 7z a -tzip WebGAL_Terre_Windows.zip release/*
- name: Upload Artifact
uses: actions/upload-artifact@v2
with:
name: WebGAL_Terre_Windows
path: WebGAL_Terre_Windows.zip
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
release:
name: Release
runs-on: ubuntu-latest
needs: ['build-linux','build-arm64','build-mac','build-windows','build-windows-nsis']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v2
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: WebGAL Terre ${{ github.ref }}
body_path: releasenote.md
draft: true
prerelease: false
- name: Upload Linux Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: WebGAL_Terre_Linux/WebGAL_Terre_Linux.zip
asset_name: WebGAL_Terre_Linux_${{ github.ref_name }}.zip
asset_content_type: application/zip
- name: Upload Linux Arm64 Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: WebGAL_Terre_Linux_Arm64/WebGAL_Terre_Linux_Arm64.zip
asset_name: WebGAL_Terre_Linux_Arm64_${{ github.ref_name }}.zip
asset_content_type: application/zip
- name: Upload MacOS Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: WebGAL_Terre_Mac/WebGAL_Terre_Mac.zip
asset_name: WebGAL_Terre_Mac_${{ github.ref_name }}.zip
asset_content_type: application/zip
- name: Upload Windows Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: WebGAL_Terre_Windows/WebGAL_Terre_Windows.zip
asset_name: WebGAL_Terre_Windows_${{ github.ref_name }}.zip
asset_content_type: application/zip
- name: Upload Windows Setup Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: WebGAL_Terre_Windows_Setup/WebGal_Terre_Setup.exe
asset_name: WebGAL_Terre_Windows_Setup_${{ github.ref_name }}.exe
asset_content_type: application/vnd.microsoft.portable-executable