mirror of
https://github.com/oxc-project/oxc.git
synced 2026-09-14 19:36:11 +08:00
9688d38dfa
This PR contains the following updates: | Package | Type | Update | Change | Pending | |---|---|---|---|---| | [benc-uk/workflow-dispatch](https://redirect.github.com/benc-uk/workflow-dispatch) | action | patch | `v1.3.2` → `v1.3.3` | | | [mlugg/setup-zig](https://redirect.github.com/mlugg/setup-zig) | action | minor | `v2` → `v2.2.1` | | | [semgrep/semgrep](https://redirect.github.com/semgrep/semgrep-proprietary) | container | minor | `1.175.0` → `1.176.0` | `1.176.1` | | [taiki-e/install-action](https://redirect.github.com/taiki-e/install-action) | action | patch | `v2.87.0` → `v2.87.4` | `v2.87.6` (+1) | --- ### Release Notes <details> <summary>benc-uk/workflow-dispatch (benc-uk/workflow-dispatch)</summary> ### [`v1.3.3`](https://redirect.github.com/benc-uk/workflow-dispatch/releases/tag/v1.3.3) [Compare Source](https://redirect.github.com/benc-uk/workflow-dispatch/compare/v1.3.2...v1.3.3) ##### What's changed since v1.3.2 ##### Fixed - Continue polling while a dispatched workflow run is in the `pending` state, preventing premature completion warnings and a `null` conclusion for workflows using concurrency groups or waiting for a runner. ([#​97](https://redirect.github.com/benc-uk/workflow-dispatch/issues/97), fixes [#​106](https://redirect.github.com/benc-uk/workflow-dispatch/issues/106)) ##### Notes - No breaking changes. - The floating `v1` and `v1.3` tags have been moved to point at `v1.3.3`. **Full changelog**: <https://github.com/benc-uk/workflow-dispatch/compare/v1.3.2...v1.3.3> </details> <details> <summary>mlugg/setup-zig (mlugg/setup-zig)</summary> ### [`v2.2.1`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.2.1) [Compare Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.2.0...v2.2.1) - Print which version of Zig was installed - Add a little more log output (helps debug cache issues) > \[!NOTE] > The setup-zig project is now hosted on [Codeberg](https://codeberg.org/mlugg/setup-zig), and this GitHub repository exists as a mirror solely to work around the vendor lock-in mechanisms employed by GitHub Actions. While there are **no plans** to discontinue GitHub Actions support, I would nonetheless encourage users to consider upgrading to Forgejo Actions on a non-profit forge like Codeberg to avoid being affected by GitHub's profit-driven behavior (such as attempting to [charge users by the minute for using their own hardware](https://resources.github.com/actions/2026-pricing-changes-for-github-actions/)). ### [`v2.2.0`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.2.0) [Compare Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.1.0...v2.2.0) - Update dependencies - Replace libsodium dependency with node:crypto, improving target support - Use hardcoded mirror list when ziglang.org is inaccessible - Fix incorrect tarball names when fetching certain versions > \[!NOTE] > The setup-zig project is now hosted on [Codeberg](https://codeberg.org/mlugg/setup-zig), and this GitHub repository exists as a mirror solely to work around the vendor lock-in mechanisms employed by GitHub Actions. While there are **no plans** to discontinue GitHub Actions support, I would nonetheless encourage users to consider upgrading to Forgejo Actions on a non-profit forge like Codeberg to avoid being affected by GitHub's profit-driven behavior (such as attempting to [charge users by the minute for using their own hardware](https://resources.github.com/actions/2026-pricing-changes-for-github-actions/)). ### [`v2.1.0`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.1.0) [Compare Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.0.5...v2.1.0) - Support Forgejo Actions - Support recent Zig versions on ARM - Progress towards better OS support - Redirect Zig caches to working directory to avoid sharing the cache on self-hosted runners ### [`v2.0.5`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.0.5) [Compare Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.0.4...v2.0.5) - Fix exception identifying Zig cache directory on recent Zig builds ([#​49](https://redirect.github.com/mlugg/setup-zig/issues/49)) ### [`v2.0.4`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.0.4) [Compare Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.0.3...v2.0.4) - Fix canonical `ziglang.org` download URL - Use more descriptive `?source` query parameter value ### [`v2.0.3`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.0.3) [Compare Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.0.2...v2.0.3) This release switches from a hardcoded `mirrors.json` list, to fetching the list of mirrors [now available](https://ziglang.org/download/community-mirrors/) from the Zig website. There are no user-facing changes. ### [`v2.0.2`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.0.2) [Compare Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.0.1...v2.0.2) - Update dependencies - Remove some mirrors experiencing issues - Don't use tool cache on GitHub-hosted runners by default ([#​34](https://redirect.github.com/mlugg/setup-zig/issues/34)) - Improve logging, in particular to help debug potential issues ### [`v2.0.1`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.0.1) [Compare Source](https://redirect.github.com/mlugg/setup-zig/compare/v2...v2.0.1) The recent Zig 0.14.1 release flipped the "arch" and "OS" fields in the tarball name; for instance, `zig-x86_64-linux-0.14.1.tar.xz` instead of `zig-linux-x86_64-0.14.1.tar.xz`. This brings the tarball names in line with target triple syntax. The change does *not* retroactively apply to old Zig tarballs. So, this patch has only one fix: - Add support for new Zig tarball name format as of Zig 0.14.1 / 0.15.0-dev.631+9a3540d61 > \[!NOTE] > > **I do not intend to update v1 to support the new tarball name format.** > `setup-zig` version 1 is considered deprecated. Please upgrade to version 2. </details> <details> <summary>taiki-e/install-action (taiki-e/install-action)</summary> ### [`v2.87.4`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.87.4): 2.87.4 [Compare Source](https://redirect.github.com/taiki-e/install-action/compare/v2.87.3...v2.87.4) - Update `uv@latest` to 0.12.8. - Update `protoc@latest` to 3.36.1. - Update `coreutils@latest` to 0.11.0. ### [`v2.87.3`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.87.3): 2.87.3 [Compare Source](https://redirect.github.com/taiki-e/install-action/compare/v2.87.2...v2.87.3) - Update `zizmor@latest` to 1.30.0. - Update `ubi@latest` to 0.12.0. - Update `protoc-gen-connect-openapi@latest` to 0.25.8. - Update `mise@latest` to 2026.8.16. - Update `kingfisher@latest` to 2.1.0. - Update `dprint@latest` to 0.57.0. ### [`v2.87.2`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.87.2): 2.87.2 [Compare Source](https://redirect.github.com/taiki-e/install-action/compare/v2.87.1...v2.87.2) - Update `typos@latest` to 1.50.0. - Update `tombi@latest` to 1.5.0. - Update `shfmt@latest` to 3.14.0. ### [`v2.87.1`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.87.1): 2.87.1 [Compare Source](https://redirect.github.com/taiki-e/install-action/compare/v2.87.0...v2.87.1) - Update `uv@latest` to 0.12.7. - Update `typos@latest` to 1.49.1. - Update `syft@latest` to 1.51.1. - Update `prek@latest` to 0.5.0. - Update `d2@latest` to 0.8.2. - Update `cargo-zigbuild@latest` to 0.23.3. - Update `cargo-rdme@latest` to 2.2.2. - Update `biome@latest` to 2.5.11. </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:eyJjcmVhdGVkSW5WZXIiOiI0NC42MS4zIiwidXBkYXRlZEluVmVyIjoiNDQuNjEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
247 lines
8.6 KiB
YAML
247 lines
8.6 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@f46a72f95efdc55273fcd042d61c84e723b2892c # v1.4.1
|
|
|
|
- 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
|
|
|
|
- uses: oxc-project/setup-node@f46a72f95efdc55273fcd042d61c84e723b2892c # v1.4.1
|
|
|
|
- run: rustup target add x86_64-unknown-freebsd
|
|
|
|
- name: Install Zig
|
|
uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2.2.1
|
|
with:
|
|
version: "0.15.2"
|
|
|
|
- name: Install cargo-zigbuild
|
|
uses: jaxxstorm/action-install-gh-release@25e24d2d23ae098373794ef1d6faecb48ee52da8 # v3.0.0
|
|
with:
|
|
repo: rust-cross/cargo-zigbuild
|
|
|
|
- name: Build
|
|
working-directory: napi/${{ inputs.name }}
|
|
run: pnpm build --target x86_64-unknown-freebsd -x
|
|
|
|
- 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@f46a72f95efdc55273fcd042d61c84e723b2892c # v1.4.1
|
|
|
|
- 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}
|