Skip to content

refactor: use V8Engine* in EnterV8Scope #202

refactor: use V8Engine* in EnterV8Scope

refactor: use V8Engine* in EnterV8Scope #202

Workflow file for this run

name: CI / CD
on:
push:
paths:
- src/**
- xmake.lua
- .github/workflows/build.yml
pull_request:
paths:
- src/**
- xmake.lua
- .github/workflows/build.yml
workflow_dispatch:
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/
pack:
needs: build
strategy:
fail-fast: false
matrix:
platform: ["Windows", "Linux"]
name: Package ${{ matrix.platform }} platform dependencies
runs-on: ubuntu-22.04
steps:
- uses: actions/download-artifact@v4
with:
name: ${{ github.event.repository.name }}-${{ matrix.platform }}-x64-${{ github.sha }}
path: bin/
- 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/
- name: Pack
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
- uses: actions/upload-artifact@v4
with:
name: ${{ github.event.repository.name }}-${{ matrix.platform }}-full-x64-${{ github.sha }}
include-hidden-files: true
path: |
full/