Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
161 changes: 110 additions & 51 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@ name: CI
env:
DEBUG: napi:*
APP_NAME: webview
MACOSX_DEPLOYMENT_TARGET: '10.13'
CARGO_INCREMENTAL: '1'
MACOSX_DEPLOYMENT_TARGET: "10.13"
CARGO_INCREMENTAL: "1"
CARGO_TERM_COLOR: always
permissions:
contents: write
id-token: write
'on':
"on":
push:
branches:
- main
tags-ignore:
- '**'
- "**"
paths-ignore:
- '**/*.md'
- "**/*.md"
- LICENSE
- '**/*.gitignore'
- "**/*.gitignore"
- .editorconfig
- docs/**
pull_request: null
Expand All @@ -39,57 +39,115 @@ jobs:
- host: windows-latest
build: bun run build --target i686-pc-windows-msvc
target: i686-pc-windows-msvc
# - host: ubuntu-latest
# target: x86_64-unknown-linux-gnu
# docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
# setup: |
# sudo apt-get update
# sudo apt-get install pkg-config -y
# build: bun run build --target x86_64-unknown-linux-gnu
# - host: ubuntu-latest
# target: x86_64-unknown-linux-musl
# docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
# setup: |
# sudo apt-get update
# sudo apt-get install pkg-config -y
# build: bun run build --target x86_64-unknown-linux-musl
- host: ubuntu-latest
target: x86_64-unknown-linux-gnu
build: |
sudo apt-get update
sudo apt-get install -y pkg-config libwebkit2gtk-4.1-dev libsoup-3.0-dev libglib2.0-dev libcairo2-dev libpango1.0-dev libatk1.0-dev libgdk-pixbuf2.0-dev libgtk-3-dev
npm install
npm run build -- --target x86_64-unknown-linux-gnu
- host: ubuntu-latest
target: i686-unknown-linux-gnu
build: |
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y gcc-multilib g++-multilib pkg-config libwebkit2gtk-4.1-dev:i386 libsoup-3.0-dev:i386 libglib2.0-dev:i386 libcairo2-dev:i386 libpango1.0-dev:i386 libatk1.0-dev:i386 libgdk-pixbuf2.0-dev:i386 libgtk-3-dev:i386
rustup target add i686-unknown-linux-gnu
npm install
export PKG_CONFIG_ALLOW_CROSS=1
export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig
export RUSTFLAGS="-L /usr/lib/i386-linux-gnu"
npm run build -- --target i686-unknown-linux-gnu

- host: macos-latest
target: aarch64-apple-darwin
build: bun run build --target aarch64-apple-darwin
# - host: ubuntu-latest
# target: aarch64-unknown-linux-gnu
# docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
# setup: |
# sudo apt-get update
# sudo apt-get install pkg-config -y
# build: bun run build --target aarch64-unknown-linux-gnu
# - host: ubuntu-latest
# target: armv7-unknown-linux-gnueabihf
# setup: |
# sudo apt-get update
# sudo apt-get install gcc-arm-linux-gnueabihf -y
# build: |
# bun run build --target armv7-unknown-linux-gnueabihf
build: |
export PKG_CONFIG_ALLOW_CROSS=1
bun run build --target aarch64-apple-darwin
- host: ubuntu-latest
target: aarch64-unknown-linux-gnu
build: |
set -e
# Add arm64 architecture
sudo dpkg --add-architecture arm64
sudo apt-get update
# Install cross-compiler toolchain and arm64 deps
sudo apt-get install -y --no-install-recommends \
gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \
pkg-config curl ca-certificates \
libwebkit2gtk-4.1-dev:arm64 \
libsoup-3.0-dev:arm64 \
libglib2.0-dev:arm64 \
libcairo2-dev:arm64 \
libpango1.0-dev:arm64 \
libatk1.0-dev:arm64 \
libgdk-pixbuf2.0-dev:arm64 \
libgtk-3-dev:arm64
# Install Node.js 24
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo bash -
sudo apt-get install -y nodejs
# Verify Node.js version
echo "Node.js version: $(node --version)"
# Update rust and add target
rustup update stable && rustup default stable
rustup target add aarch64-unknown-linux-gnu
npm install
# Configure zig cross-compilation environment
export PKG_CONFIG_ALLOW_CROSS=1
export CC="zig cc -target aarch64-linux-gnu.2.28"
export CXX="zig c++ -target aarch64-linux-gnu.2.28"
export AR="zig ar"
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=zig
export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig
export RUSTFLAGS="-L /usr/lib/aarch64-linux-gnu"
npm run build -- --target aarch64-unknown-linux-gnu
- host: ubuntu-latest
target: armv7-unknown-linux-gnueabihf
build: |
set -e
# Add armhf architecture
sudo dpkg --add-architecture armhf
sudo apt-get update
# Install cross-compiler toolchain and armhf deps
sudo apt-get install -y --no-install-recommends \
gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf \
pkg-config curl ca-certificates \
libwebkit2gtk-4.1-dev:armhf \
libsoup-3.0-dev:armhf \
libglib2.0-dev:armhf \
libcairo2-dev:armhf \
libpango1.0-dev:armhf \
libatk1.0-dev:armhf \
libgdk-pixbuf2.0-dev:armhf \
libgtk-3-dev:armhf
# Install Node.js 24
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo bash -
sudo apt-get install -y nodejs
# Verify Node.js version
echo "Node.js version: $(node --version)"
# Update rust and add target
rustup update stable && rustup default stable
rustup target add armv7-unknown-linux-gnueabihf
npm install
# Configure zig cross-compilation environment
export PKG_CONFIG_ALLOW_CROSS=1
export CC="zig cc -target arm-linux-gnueabihf -mcpu=generic+v7a"
export CXX="zig c++ -target arm-linux-gnueabihf -mcpu=generic+v7a"
export AR="zig ar"
export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=zig
export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig
export RUSTFLAGS="-L /usr/lib/arm-linux-gnueabihf"
npm run build -- --target armv7-unknown-linux-gnueabihf
- host: ubuntu-latest
target: aarch64-linux-android
build: bun run build --target aarch64-linux-android
- host: ubuntu-latest
target: armv7-linux-androideabi
build: bun run build --target armv7-linux-androideabi
# - host: ubuntu-latest
# target: aarch64-unknown-linux-musl
# docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
# setup: |
# sudo apt-get update
# sudo apt-get install pkg-config -y
# build: |-
# set -e &&
# rustup target add aarch64-unknown-linux-musl &&
# bun run build --target aarch64-unknown-linux-musl
- host: windows-latest
target: aarch64-pc-windows-msvc
build: bun run build --target aarch64-pc-windows-msvc
name: stable - ${{ matrix.settings.target }} - node@18
name: stable - ${{ matrix.settings.target }} - node@24
runs-on: ${{ matrix.settings.host }}
steps:
- uses: actions/checkout@v4
Expand All @@ -102,7 +160,7 @@ jobs:
uses: actions/setup-node@v4
if: ${{ !matrix.settings.docker }}
with:
node-version: 20
node-version: 24
- name: Install
uses: dtolnay/rust-toolchain@stable
if: ${{ !matrix.settings.docker }}
Expand All @@ -120,21 +178,22 @@ jobs:
target/
key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }}
- uses: goto-bus-stop/setup-zig@v2
if: ${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' }}
if: ${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' || matrix.settings.target == 'aarch64-unknown-linux-gnu' }}
with:
version: 0.13.0
- name: Setup toolchain
run: ${{ matrix.settings.setup }}
if: ${{ matrix.settings.setup }}
if: ${{ matrix.settings.setup && !matrix.settings.docker }}
shell: bash
- name: Install dependencies
run: bun install
if: ${{ !matrix.settings.docker }}
- name: Build in docker
uses: addnab/docker-run-action@v3
if: ${{ matrix.settings.docker }}
with:
image: ${{ matrix.settings.docker }}
options: '--user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build'
options: "--user 0:0 ${{ matrix.settings.docker_platform && format('--platform {0}', matrix.settings.docker_platform) || '' }} -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo-cache/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo-cache/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build"
run: ${{ matrix.settings.build }}
- name: Build
run: ${{ matrix.settings.build }}
Expand Down Expand Up @@ -207,7 +266,7 @@ jobs:
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 24
- name: Install dependencies
run: bun install
- name: Download all artifacts
Expand Down
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,16 @@
"x86_64-apple-darwin",
"aarch64-apple-darwin",
"x86_64-unknown-linux-gnu",
"i686-unknown-linux-gnu",
"aarch64-unknown-linux-gnu",
"armv7-unknown-linux-gnueabihf",
"aarch64-linux-android",
"armv7-linux-androideabi",
"x86_64-unknown-freebsd"
]
},
"engines": {
"node": ">= 10"
"node": ">= 24"
},
"publishConfig": {
"registry": "https://registry.npmjs.org/",
Expand Down
Loading