chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
paths:
|
||||
- 'packages/splat-transform-native/source/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- 'master'
|
||||
paths:
|
||||
- 'packages/splat-transform-native/source/**'
|
||||
workflow_dispatch:
|
||||
|
||||
name: build native
|
||||
|
||||
env:
|
||||
NODE_VERSION: 24
|
||||
|
||||
jobs:
|
||||
build-splat-transform-native:
|
||||
name: Build splat-transform native (${{ matrix.target }})
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- target: win32-x64-msvc
|
||||
native-script: build:native:win32-x64
|
||||
os: windows-2025-vs2026
|
||||
shell: pwsh
|
||||
- target: win32-arm64-msvc
|
||||
native-script: build:native:win32-arm64
|
||||
os: windows-11-vs2026-arm
|
||||
shell: pwsh
|
||||
- target: linux-x64-gnu
|
||||
native-script: build:native:linux-x64-gnu
|
||||
os: ubuntu-22.04
|
||||
shell: bash
|
||||
- target: linux-arm64-gnu
|
||||
native-script: build:native:linux-arm64-gnu
|
||||
os: ubuntu-22.04-arm
|
||||
shell: bash
|
||||
- target: darwin-arm64
|
||||
native-script: build:native:darwin-arm64
|
||||
os: macos-26
|
||||
shell: bash
|
||||
defaults:
|
||||
run:
|
||||
shell: ${{ matrix.shell }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
submodules: recursive
|
||||
lfs: true
|
||||
|
||||
- name: Setup node
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
- name: Install workspace dependencies
|
||||
run: |
|
||||
corepack enable
|
||||
corepack install
|
||||
pnpm install
|
||||
|
||||
- name: Setup env (Linux)
|
||||
if: startsWith(matrix.os, 'ubuntu')
|
||||
run: |
|
||||
wget https://apt.llvm.org/llvm.sh
|
||||
chmod a+x ./llvm.sh
|
||||
sudo ./llvm.sh 21
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y clang-21 clang-tools-21 lld-21 ninja-build pkg-config nasm
|
||||
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-21 20
|
||||
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-21 20
|
||||
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang-21 20
|
||||
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-21 20
|
||||
sudo update-alternatives --set clang /usr/bin/clang-21
|
||||
sudo update-alternatives --set clang++ /usr/bin/clang++-21
|
||||
sudo update-alternatives --set cc /usr/bin/clang-21
|
||||
sudo update-alternatives --set c++ /usr/bin/clang++-21
|
||||
cmake --version
|
||||
cc --version
|
||||
c++ --version
|
||||
ninja --version
|
||||
|
||||
- name: Setup env (macOS)
|
||||
if: startsWith(matrix.os, 'macos')
|
||||
run: |
|
||||
brew install ninja nasm
|
||||
cmake --version
|
||||
clang --version
|
||||
ninja --version
|
||||
|
||||
- name: Setup vcpkg (Windows)
|
||||
if: startsWith(matrix.os, 'windows')
|
||||
run: |
|
||||
if ($env:VCPKG_INSTALLATION_ROOT -and (Test-Path $env:VCPKG_INSTALLATION_ROOT)) {
|
||||
$vcpkgRoot = $env:VCPKG_INSTALLATION_ROOT
|
||||
} else {
|
||||
$vcpkgRoot = Join-Path $env:RUNNER_TEMP "vcpkg"
|
||||
git clone https://github.com/microsoft/vcpkg $vcpkgRoot
|
||||
& (Join-Path $vcpkgRoot "bootstrap-vcpkg.bat") -disableMetrics
|
||||
}
|
||||
"VCPKG_ROOT=$vcpkgRoot" >> $env:GITHUB_ENV
|
||||
|
||||
- name: Setup vcpkg (Unix)
|
||||
if: ${{ !startsWith(matrix.os, 'windows') }}
|
||||
run: |
|
||||
if [ -n "${VCPKG_INSTALLATION_ROOT:-}" ] && [ -d "${VCPKG_INSTALLATION_ROOT}" ]; then
|
||||
vcpkg_root="${VCPKG_INSTALLATION_ROOT}"
|
||||
else
|
||||
vcpkg_root="${RUNNER_TEMP}/vcpkg"
|
||||
git clone https://github.com/microsoft/vcpkg "${vcpkg_root}"
|
||||
"${vcpkg_root}/bootstrap-vcpkg.sh" -disableMetrics
|
||||
fi
|
||||
echo "VCPKG_ROOT=${vcpkg_root}" >> "${GITHUB_ENV}"
|
||||
|
||||
- name: Build splat-transform native
|
||||
working-directory: packages/splat-transform-native/source
|
||||
run: pnpm run ${{ matrix.native-script }}
|
||||
|
||||
- name: Validate native package (Windows)
|
||||
if: startsWith(matrix.os, 'windows')
|
||||
run: |
|
||||
if (!(Test-Path ./packages/splat-transform-native/splat-transform-${{ matrix.target }}/splat-transform.node)) {
|
||||
throw "Missing splat-transform.node"
|
||||
}
|
||||
node -e "require('./packages/splat-transform-native/splat-transform-${{ matrix.target }}/splat-transform.node'); console.log('native require ok')"
|
||||
|
||||
- name: Validate native package (Unix)
|
||||
if: ${{ !startsWith(matrix.os, 'windows') }}
|
||||
run: |
|
||||
test -f ./packages/splat-transform-native/splat-transform-${{ matrix.target }}/splat-transform.node
|
||||
node -e "require('./packages/splat-transform-native/splat-transform-${{ matrix.target }}/splat-transform.node'); console.log('native require ok')"
|
||||
|
||||
- name: Upload native package
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: splat-transform-${{ matrix.target }}
|
||||
path: packages/splat-transform-native/splat-transform-${{ matrix.target }}/splat-transform.node
|
||||
if-no-files-found: error
|
||||
Reference in New Issue
Block a user