Skip to content

v0.1.0-rc.1

v0.1.0-rc.1 #1

Workflow file for this run

on:
release:
types:
- published
env:
LLVM_VERSION: 15
LIBNODE_VERSION: 22.12.0
jobs:
# 编译
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, windows-2022]
name: Build with ${{ matrix.os == 'windows-2022' && 'Win-MSVC' || 'Ubuntu-Clang' }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: xmake-io/github-action-setup-xmake@v1
# with:
# xmake-version: branch@master
- uses: actions/cache@v4
with:
path: |
~/AppData/Local/.xmake
key: xmake-${{ hashFiles('xmake.lua') }}
restore-keys: |
xmake-
- name: Set up Clang(Linux)
if: runner.os == 'Linux'
run: |
sudo apt-get update -y -q
sudo apt-get install -y -q lsb-release wget software-properties-common gnupg
sudo wget https://apt.llvm.org/llvm.sh
sudo chmod +x llvm.sh
sudo ./llvm.sh ${{env.LLVM_VERSION}}
sudo apt-get install -y -q libc++-${{env.LLVM_VERSION}}-dev libc++abi-${{env.LLVM_VERSION}}-dev
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang-${{env.LLVM_VERSION}} 100
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-${{env.LLVM_VERSION}} 100
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${{env.LLVM_VERSION}} 100
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${{env.LLVM_VERSION}} 100
sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-${{env.LLVM_VERSION}} 100
sudo update-alternatives --install /usr/bin/ld ld /usr/bin/ld.lld-${{env.LLVM_VERSION}} 100
- run: |
xmake repo -u
- run: |
xmake f -a x64 -m release -v -y
- run: |
xmake -v -y
- uses: actions/upload-artifact@v4
with:
name: ${{ github.event.repository.name }}-${{ runner.os }}-x64-${{ github.sha }}
path: |
bin/
# 发布 Changelog
update-release-notes:
outputs:
release_notes: ${{ steps.extract-release-notes.outputs.release_notes }}
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- id: extract-release-notes
uses: ffurrer2/extract-release-notes@v2
- uses: softprops/action-gh-release@v1
with:
body: |
${{ steps.extract-release-notes.outputs.release_notes }}
# 发布
pack-and-upload-to-release:
needs:
- build
- update-release-notes
permissions:
contents: write
strategy:
matrix:
platform: ["Windows", "Linux"]
name: Pack and upload to release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download depends
run: |
curl -o bin-linux.zip -L https://github.com/IceBlcokMC/node/releases/download/v${{env.LIBNODE_VERSION}}/bin-linux.zip
curl -o bin-windows.zip -L https://github.com/IceBlcokMC/node/releases/download/v${{env.LIBNODE_VERSION}}/bin-windows.zip
curl -o node_modules.zip -L https://github.com/IceBlcokMC/node/releases/download/v${{env.LIBNODE_VERSION}}/node_modules.zip
- name: Unzip depends
run: |
mkdir deps
mkdir deps/node_modules
unzip -a -q bin-linux.zip -d deps/
unzip -a -q bin-windows.zip -d deps/
unzip -a -q node_modules.zip -d deps/node_modules/
- uses: actions/download-artifact@v4
with:
name: ${{ github.event.repository.name }}-${{ matrix.platform }}-x64-${{ github.sha }}
path: bin/
- name: Pack full
run: |
mkdir full
mkdir full/plugins
cp -r bin/* full/plugins/
cp -a deps/node_modules/. full/plugins/js_engine/node_modules/
if [ "${{ matrix.platform }}" == "Windows" ]; then
cp deps/libnode.dll full/
cp deps/node.exe full/
else
cp deps/libnode.so.127 full/
cp deps/node full/
fi
- run: |
cp CHANGELOG.md README.md LICENSE full/
cp CHANGELOG.md README.md LICENSE bin/
- run: |
zip -r ../${{ github.event.repository.name }}-${{ matrix.platform }}-x64.zip .
working-directory: bin
- run: |
zip -r ../${{ github.event.repository.name }}-${{ matrix.platform }}-full-x64.zip .
working-directory: full
- uses: softprops/action-gh-release@v1
with:
files: |
${{ github.event.repository.name }}-${{ matrix.platform }}-x64.zip
${{ github.event.repository.name }}-${{ matrix.platform }}-full-x64.zip