mirror of
https://github.com/oxc-project/oxc.git
synced 2026-09-14 19:36:11 +08:00
f412c9aba2
This PR contains the following updates: | Package | Type | Update | Change | Pending | |---|---|---|---|---| | [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) | action | patch | `v5.0.1` → `v5.0.2` | `v5.0.3` | | [Swatinem/rust-cache](https://redirect.github.com/Swatinem/rust-cache) | action | patch | `v2.9.1` → `v2.9.2` | | | [dorny/paths-filter](https://redirect.github.com/dorny/paths-filter) | action | patch | `v4.0.2` → `v4.0.3` | | | [oxc-project/setup-node](https://redirect.github.com/oxc-project/setup-node) | action | minor | `v1.3.2` → `v1.4.0` | | | [samypr100/setup-dev-drive](https://redirect.github.com/samypr100/setup-dev-drive) | action | minor | `v4.0.0` → `v4.1.0` | | | [taiki-e/install-action](https://redirect.github.com/taiki-e/install-action) | action | patch | `v2.85.5` → `v2.85.9` | `v2.85.11` (+1) | --- ### Release Notes <details> <summary>CodSpeedHQ/action (CodSpeedHQ/action)</summary> ### [`v5.0.2`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.0.2) [Compare Source](https://redirect.github.com/CodSpeedHQ/action/compare/v5.0.1...v5.0.2) #### What's Changed - feat: add cycle-estimation and exclude-allocations inputs by [@​not-matthias](https://redirect.github.com/not-matthias) in [#​229](https://redirect.github.com/CodSpeedHQ/action/pull/229) **Full Changelog**: <https://github.com/CodSpeedHQ/action/compare/v5.0.1...v5.0.2> </details> <details> <summary>Swatinem/rust-cache (Swatinem/rust-cache)</summary> ### [`v2.9.2`](https://redirect.github.com/Swatinem/rust-cache/releases/tag/v2.9.2) [Compare Source](https://redirect.github.com/Swatinem/rust-cache/compare/v2.9.1...v2.9.2) ##### What's Changed - Typofix by [@​23Skidoo](https://redirect.github.com/23Skidoo) in [#​316](https://redirect.github.com/Swatinem/rust-cache/pull/316) - fix: include target names in build/ and .fingerprint/ cleanup by [@​eitsupi](https://redirect.github.com/eitsupi) in [#​317](https://redirect.github.com/Swatinem/rust-cache/pull/317) - fix: include cdylib/rlib/dylib/staticlib targets in build and fingerprint cleanup by [@​eitsupi](https://redirect.github.com/eitsupi) in [#​320](https://redirect.github.com/Swatinem/rust-cache/pull/320) - Scan content of `$CARGO_HOME/bin` on restore instead of relying on `cargo install` metadata by [@​clechasseur](https://redirect.github.com/clechasseur) in [#​325](https://redirect.github.com/Swatinem/rust-cache/pull/325) - docs: Update checkout action version to latest by [@​sondrelg](https://redirect.github.com/sondrelg) in [#​345](https://redirect.github.com/Swatinem/rust-cache/pull/345) - Fix Windows cache path validation after Rollup migration by [@​eitsupi](https://redirect.github.com/eitsupi) in [#​355](https://redirect.github.com/Swatinem/rust-cache/pull/355) - fix: support Cargo V2 build dir layout by [@​claytonwramsey](https://redirect.github.com/claytonwramsey) in [#​371](https://redirect.github.com/Swatinem/rust-cache/pull/371) ##### New Contributors - [@​23Skidoo](https://redirect.github.com/23Skidoo) made their first contribution in [#​316](https://redirect.github.com/Swatinem/rust-cache/pull/316) - [@​eitsupi](https://redirect.github.com/eitsupi) made their first contribution in [#​317](https://redirect.github.com/Swatinem/rust-cache/pull/317) - [@​clechasseur](https://redirect.github.com/clechasseur) made their first contribution in [#​325](https://redirect.github.com/Swatinem/rust-cache/pull/325) - [@​sondrelg](https://redirect.github.com/sondrelg) made their first contribution in [#​345](https://redirect.github.com/Swatinem/rust-cache/pull/345) - [@​claytonwramsey](https://redirect.github.com/claytonwramsey) made their first contribution in [#​371](https://redirect.github.com/Swatinem/rust-cache/pull/371) **Full Changelog**: <https://github.com/Swatinem/rust-cache/compare/v2.9.1...v2.9.2> </details> <details> <summary>dorny/paths-filter (dorny/paths-filter)</summary> ### [`v4.0.3`](https://redirect.github.com/dorny/paths-filter/blob/HEAD/CHANGELOG.md#v403) [Compare Source](https://redirect.github.com/dorny/paths-filter/compare/v4.0.2...v4.0.3) - [Document safe handling of file list outputs in workflows](https://redirect.github.com/dorny/paths-filter/pull/326) - [Escape multi-line filenames in list-files shell and csv output](https://redirect.github.com/advisories/GHSA-7hc6-8hq5-9q2m) - [Add 'some-with-excludes' predicate quantifier](https://redirect.github.com/dorny/paths-filter/pull/322) - [Add contents permission to PR example](https://redirect.github.com/dorny/paths-filter/pull/248) - [Scope base-ignored warning to API path](https://redirect.github.com/dorny/paths-filter/pull/319) - [Update outputs in readme to account for the 'every' predicate-quantifier](https://redirect.github.com/dorny/paths-filter/pull/247) </details> <details> <summary>oxc-project/setup-node (oxc-project/setup-node)</summary> ### [`v1.4.0`](https://redirect.github.com/oxc-project/setup-node/releases/tag/v1.4.0) [Compare Source](https://redirect.github.com/oxc-project/setup-node/compare/v1.3.2...v1.4.0) ##### What's Changed - chore(deps): update semgrep/semgrep docker tag to v1.171.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​31](https://redirect.github.com/oxc-project/setup-node/pull/31) - Stop the pnpm store cache from growing without bound by [@​connorshea](https://redirect.github.com/connorshea) in [#​33](https://redirect.github.com/oxc-project/setup-node/pull/33) - chore(deps): update semgrep/semgrep docker tag to v1.172.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​32](https://redirect.github.com/oxc-project/setup-node/pull/32) ##### New Contributors - [@​connorshea](https://redirect.github.com/connorshea) made their first contribution in [#​33](https://redirect.github.com/oxc-project/setup-node/pull/33) **Full Changelog**: <https://github.com/oxc-project/setup-node/compare/v1.3.2...v1.4.0> </details> <details> <summary>samypr100/setup-dev-drive (samypr100/setup-dev-drive)</summary> ### [`v4.1.0`](https://redirect.github.com/samypr100/setup-dev-drive/releases/tag/v4.1.0) [Compare Source](https://redirect.github.com/samypr100/setup-dev-drive/compare/v4.0.0...v4.1.0) ##### What's Changed - See [CHANGELOG.md](https://redirect.github.com/samypr100/setup-dev-drive/blob/v4.1.0/CHANGELOG.md) **Full Changelog**: <https://github.com/samypr100/setup-dev-drive/compare/v4.0.0...v4.1.0> </details> <details> <summary>taiki-e/install-action (taiki-e/install-action)</summary> ### [`v2.85.9`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.9): 2.85.9 [Compare Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.8...v2.85.9) - Update `zola@latest` to 0.23.1. - Update `wild@latest` to 0.10.0. - Update `mise@latest` to 2026.8.2. - Update `just@latest` to 1.58.0. - Update `jaq@latest` to 3.1.1. - Update `cargo-nextest@latest` to 0.9.143. - Update `cargo-crap@latest` to 0.4.2. - Update `biome@latest` to 2.5.7. ### [`v2.85.8`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.8): 2.85.8 [Compare Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.7...v2.85.8) - Update `zizmor@latest` to 1.29.0. - Update `typos@latest` to 1.49.0. - Update `trivy@latest` to 0.73.0. - Update `tombi@latest` to 1.2.6. - Update `prek@latest` to 0.4.12. - Update `mise@latest` to 2026.8.1. - Update `convco@latest` to 0.7.1. - Update `cargo-semver-checks@latest` to 0.50.0. - Update `cargo-crap@latest` to 0.4.1. ### [`v2.85.7`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.7): 2.85.7 [Compare Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.6...v2.85.7) - Update `wasmtime@latest` to 47.0.3. - Update `uv@latest` to 0.12.1. - Update `rclone@latest` to 1.75.0. - Update `kingfisher@latest` to 1.110.0. ### [`v2.85.6`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.6): 2.85.6 [Compare Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.5...v2.85.6) - Update `wasm-tools@latest` to 1.255.0. - Update `tombi@latest` to 1.2.5. - Update `mise@latest` to 2026.7.18. - Update `cargo-neat@latest` to 0.5.3. - Update `cargo-crap@latest` to 0.4.0. </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - "before 10am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
261 lines
9.2 KiB
YAML
261 lines
9.2 KiB
YAML
name: Release NAPI
|
|
|
|
permissions: {}
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
name:
|
|
required: true
|
|
type: string
|
|
description: "The component name"
|
|
|
|
jobs:
|
|
check:
|
|
name: Check version
|
|
runs-on: ubuntu-slim
|
|
outputs:
|
|
version_changed: ${{ steps.check.outputs.version_changed }}
|
|
env:
|
|
name: ${{ inputs.name }}
|
|
steps:
|
|
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2
|
|
- uses: ./.github/actions/check-version
|
|
id: check
|
|
with:
|
|
file-name: napi/${{ inputs.name }}/package.json
|
|
file-url: https://unpkg.com/oxc-${{ inputs.name }}@latest/package.json
|
|
|
|
build:
|
|
needs: check
|
|
if: needs.check.outputs.version_changed == 'true'
|
|
name: Build ${{ matrix.target }}
|
|
runs-on: ${{ matrix.os }}
|
|
env:
|
|
name: ${{ inputs.name }}
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: windows-latest
|
|
target: x86_64-pc-windows-msvc
|
|
build: pnpm build --target x86_64-pc-windows-msvc
|
|
|
|
- os: windows-latest
|
|
target: aarch64-pc-windows-msvc
|
|
build: pnpm build --target aarch64-pc-windows-msvc
|
|
|
|
- os: ubuntu-latest
|
|
target: x86_64-unknown-linux-gnu
|
|
build: pnpm build --target x86_64-unknown-linux-gnu --use-napi-cross
|
|
|
|
- os: ubuntu-latest
|
|
target: x86_64-unknown-linux-musl
|
|
build: pnpm build --target x86_64-unknown-linux-musl -x
|
|
|
|
- os: ubuntu-latest
|
|
target: aarch64-unknown-linux-gnu
|
|
build: pnpm build --target aarch64-unknown-linux-gnu --use-napi-cross
|
|
|
|
- os: ubuntu-latest
|
|
target: aarch64-unknown-linux-musl
|
|
build: pnpm build --target aarch64-unknown-linux-musl -x
|
|
|
|
- os: ubuntu-latest
|
|
target: armv7-unknown-linux-gnueabihf
|
|
build: pnpm build --target armv7-unknown-linux-gnueabihf --use-napi-cross
|
|
|
|
- os: macos-latest
|
|
target: x86_64-apple-darwin
|
|
build: pnpm build --target x86_64-apple-darwin
|
|
|
|
- os: macos-latest
|
|
target: aarch64-apple-darwin
|
|
build: pnpm build --target aarch64-apple-darwin
|
|
|
|
- os: ubuntu-latest
|
|
target: wasm32-wasip1-threads
|
|
build: pnpm build-wasm
|
|
|
|
- os: ubuntu-latest
|
|
target: s390x-unknown-linux-gnu
|
|
build: |
|
|
export CFLAGS="-fuse-ld=lld"
|
|
pnpm build --target s390x-unknown-linux-gnu --use-napi-cross
|
|
|
|
- os: ubuntu-latest
|
|
target: aarch64-linux-android
|
|
build: pnpm build --target aarch64-linux-android
|
|
|
|
- os: ubuntu-latest
|
|
target: riscv64gc-unknown-linux-gnu
|
|
build: |
|
|
sudo apt-get update
|
|
sudo apt-get install gcc-riscv64-linux-gnu g++-riscv64-linux-gnu -y
|
|
export TARGET_CC=riscv64-linux-gnu-gcc
|
|
export CXX=riscv64-linux-gnu-g++
|
|
pnpm build --target riscv64gc-unknown-linux-gnu
|
|
|
|
- os: ubuntu-latest
|
|
target: aarch64-unknown-linux-ohos
|
|
build: pnpm build --target aarch64-unknown-linux-ohos
|
|
|
|
- os: ubuntu-latest
|
|
target: armv7-linux-androideabi
|
|
build: pnpm build --target armv7-linux-androideabi
|
|
|
|
- os: ubuntu-latest
|
|
target: armv7-unknown-linux-musleabihf
|
|
build: pnpm build --target armv7-unknown-linux-musleabihf -x
|
|
|
|
- os: windows-latest
|
|
target: i686-pc-windows-msvc
|
|
build: pnpm build --target i686-pc-windows-msvc
|
|
|
|
- os: ubuntu-latest
|
|
target: powerpc64le-unknown-linux-gnu
|
|
build: pnpm build --target powerpc64le-unknown-linux-gnu --use-napi-cross
|
|
|
|
- os: ubuntu-latest
|
|
target: riscv64gc-unknown-linux-musl
|
|
build: |
|
|
sudo apt-get update
|
|
sudo apt-get install gcc-riscv64-linux-gnu g++-riscv64-linux-gnu -y
|
|
export TARGET_CC=riscv64-linux-gnu-gcc
|
|
export CXX=riscv64-linux-gnu-g++
|
|
pnpm build --target riscv64gc-unknown-linux-musl -x
|
|
|
|
steps:
|
|
- if: ${{ contains(matrix.os, 'windows') }}
|
|
run: git config --system core.longpaths true
|
|
|
|
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2
|
|
|
|
- uses: oxc-project/setup-node@d59b270414aa7d0eed947eed4eb5b0b8a675f01d # v1.4.0
|
|
|
|
- run: rustup target add ${{ matrix.target }}
|
|
|
|
- name: Setup OpenHarmony SDK
|
|
if: ${{ contains(matrix.target, 'ohos') }}
|
|
uses: Boshen/setup-ohos-sdk@edb865a89a712f1f15dbad932dfa9cfce849d95c # v1.0.0
|
|
|
|
- uses: goto-bus-stop/setup-zig@abea47f85e598557f500fa1fd2ab7464fcb39406 # v2.2.1
|
|
if: ${{ contains(matrix.target, 'musl') }}
|
|
with:
|
|
version: 0.13.0
|
|
|
|
- name: Build
|
|
working-directory: napi/${{ inputs.name }}
|
|
run: ${{ matrix.build }}
|
|
shell: bash
|
|
env:
|
|
# `clang` lacks the `__ldar64`/`__stlr64` MSVC intrinsics that mimalloc's
|
|
# atomic.h uses on the ARM64 MSVC C path, so leave TARGET_CC unset on
|
|
# `*-pc-windows-msvc` targets and let cc-rs pick `cl.exe`.
|
|
TARGET_CC: ${{ !contains(matrix.target, 'pc-windows-msvc') && 'clang' || '' }} # for mimalloc
|
|
|
|
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
with:
|
|
if-no-files-found: error
|
|
name: bindings-${{ matrix.target }}
|
|
# `**/*.node` because in `napi/parser`, binaries are in `src-js` subdirectory
|
|
path: |
|
|
napi/${{ inputs.name }}/**/*.node
|
|
napi/${{ inputs.name }}/**/*.wasm
|
|
|
|
build-freebsd:
|
|
needs: check
|
|
if: needs.check.outputs.version_changed == 'true'
|
|
name: Build FreeBSD
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2
|
|
- name: Build
|
|
id: build
|
|
uses: cross-platform-actions/action@5ea7e8e4677bd726033a10b094ba1c5762b15dee # v1.3.0
|
|
env:
|
|
DEBUG: napi:*
|
|
RUSTUP_IO_THREADS: 1
|
|
with:
|
|
operating_system: freebsd
|
|
version: "14.2"
|
|
memory: 8G
|
|
cpu_count: 3
|
|
environment_variables: "DEBUG RUSTUP_IO_THREADS"
|
|
shell: bash
|
|
run: |
|
|
sudo pkg install -y -f curl libnghttp2 node22 npm cmake ca_root_nss
|
|
curl https://sh.rustup.rs -sSf --output rustup.sh
|
|
sh rustup.sh -y --profile minimal --default-toolchain stable
|
|
source "$HOME/.cargo/env"
|
|
echo "~~~~ rustc --version ~~~~"
|
|
rustc --version
|
|
echo "~~~~ node -v ~~~~"
|
|
node -v
|
|
pwd
|
|
ls -lah
|
|
whoami
|
|
env
|
|
cd napi/${{ inputs.name }}
|
|
export COREPACK_INTEGRITY_KEYS=0
|
|
sudo corepack enable
|
|
pnpm install --ignore-scripts # postinstall: The current platform (freebsd) and architecture (x64) is not supported.
|
|
pnpm build --target x86_64-unknown-freebsd
|
|
rm -rf node_modules
|
|
rm -rf target
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
with:
|
|
if-no-files-found: error
|
|
name: bindings-freebsd
|
|
# `**/*.node` because in `napi/parser`, binary is in `src-js` subdirectory
|
|
path: napi/${{ inputs.name }}/**/*.node
|
|
|
|
publish:
|
|
name: Publish NAPI
|
|
needs:
|
|
- build
|
|
- build-freebsd
|
|
runs-on: ubuntu-slim
|
|
permissions:
|
|
id-token: write # for `pnpm publish --provenance`
|
|
env:
|
|
name: ${{ inputs.name }}
|
|
package_path: napi/${{ inputs.name }}
|
|
npm_dir: release-dir
|
|
PUBLISH_FLAGS: "--provenance --access public --no-git-checks"
|
|
steps:
|
|
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2
|
|
|
|
- uses: oxc-project/setup-node@d59b270414aa7d0eed947eed4eb5b0b8a675f01d # v1.4.0
|
|
|
|
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
with:
|
|
path: artifacts
|
|
|
|
- run: mkdir -p ${npm_dir}
|
|
|
|
- run: pnpm napi create-npm-dirs --package-json-path ${package_path}/package.json --npm-dir ${npm_dir}
|
|
|
|
- run: pnpm napi artifacts --package-json-path ${package_path}/package.json --build-output-dir ${package_path}/src-js --npm-dir ${npm_dir}
|
|
if: ${{ inputs.name == 'parser' }}
|
|
|
|
- run: pnpm napi artifacts --package-json-path ${package_path}/package.json --build-output-dir ${package_path} --npm-dir ${npm_dir}
|
|
if: ${{ inputs.name != 'parser' }}
|
|
|
|
- run: pnpm -C ${package_path} build-browser-bundle --npmDir ../../${npm_dir}
|
|
if: ${{ inputs.name == 'parser' }}
|
|
|
|
- name: Check Publish
|
|
run: node .github/scripts/check-npm-packages.js "${npm_dir}/*" "${package_path}"
|
|
|
|
- name: Trusted Publish
|
|
run: |
|
|
# Trusted publishing is configured, publish token is not required.
|
|
# Publish sub-packages and adds `optionalDependencies` to `package_path`.
|
|
pnpm napi pre-publish --no-gh-release -t npm --package-json-path ${package_path}/package.json --npm-dir ${npm_dir}
|
|
bash .github/scripts/publish-if-needed.sh ${package_path} ${PUBLISH_FLAGS}
|