Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
f9dcea6
Migrate workflows to Blacksmith
blacksmith-sh[bot] Dec 18, 2025
758773a
Merge remote-tracking branch 'origin/main' into blacksmith-migration-…
stormslowly Jan 4, 2026
6e20d7d
refactor: try some limited workflows
stormslowly Jan 4, 2026
d22a547
refactor: use in CI
stormslowly Jan 4, 2026
7ff5f6c
fix: artifact and cache decision by runner name
stormslowly Jan 4, 2026
989c390
fix: artifact download and rust cache
stormslowly Jan 4, 2026
bacd1e5
Merge branch 'main' into blacksmith-migration-06f6b34
stormslowly Jan 4, 2026
9123aca
refactor: canary use black smith
stormslowly Jan 4, 2026
3d8b911
Merge branch 'blacksmith-migration-06f6b34' of github.com:web-infra-d…
stormslowly Jan 4, 2026
b5882e7
refactor: 8core for release build
stormslowly Jan 5, 2026
15ebd9a
fix: use cache in blacksmith cargo cache
stormslowly Jan 5, 2026
8e057d8
Merge branch 'main' into blacksmith-migration-06f6b34
stormslowly Jan 6, 2026
cd9432b
refactor: test build with 4vcpu
stormslowly Jan 6, 2026
d2418eb
fix: blacksmith windows arch build failed
stormslowly Jan 6, 2026
8561787
feat: introduce CI_XXX_BUILD_RUNNER and CI_XXX_TEST_RUNNER for runne…
stormslowly Jan 6, 2026
fa8801f
fix: publish in github hosted
stormslowly Jan 6, 2026
87f1338
refactor: orgnize runner
stormslowly Jan 6, 2026
bf6427d
Merge branch 'main' into blacksmith-migration-06f6b34
stormslowly Jan 6, 2026
aa18a19
chore(deps): update patch npm dependencies (#12647)
renovate[bot] Jan 7, 2026
ece0fee
chore(deps): update patch crates (#12646)
renovate[bot] Jan 7, 2026
edce5bd
chore: run ci/eco-ci/eco-benchmark on v2 branch (#12650)
LingyuCoder Jan 7, 2026
44a7564
fix: report error when access module_graph in loader (#12639)
hardfist Jan 7, 2026
25a4021
feat(rstest): add preserveNewUrl option to keep new URL untouched (#1…
fi3ework Jan 7, 2026
d424733
fix(lint): enable @typescript-eslint/await-thenable rule (#12644)
tt-a1i Jan 7, 2026
86634a0
refactor: afterCodeGeneration hook use read only compilation ref (#12…
stormslowly Jan 7, 2026
f4c7791
fix(lint): enable @typescript-eslint/require-await rule (#12664)
tt-a1i Jan 7, 2026
9400b65
chore(deps): update github-actions (#12645)
renovate[bot] Jan 8, 2026
4ecc5cb
fix(lint): enable @typescript-eslint/return-await rule (#12665)
tt-a1i Jan 8, 2026
ed4b6ed
refactor: make compilation readonly for runtimeModule hook (#12670)
hardfist Jan 8, 2026
3b1926f
feat: add constructor name for JS runtime modules (#12673)
LingyuCoder Jan 8, 2026
2feb455
fix: incremental rebuild no code generation entry panic (#12643)
jerrykingxyz Jan 8, 2026
70ffab9
refactor: unify artifact clear logic (#12677)
hardfist Jan 8, 2026
29642b2
refactor: use DerfOpt's take/replace assist artifact mutation (#12659)
stormslowly Jan 8, 2026
219a773
feat: rspack_cacheable context expose project root (#12685)
jerrykingxyz Jan 9, 2026
0d1d58f
feat: rspack_cacheable add portable path & portable string (#12688)
jerrykingxyz Jan 9, 2026
b81dfa2
fix: inlined export invalid syntax comment (#12681)
ahabhgk Jan 9, 2026
6ee0d4b
feat: add `requireAlias` option to control require variable renaming …
LingyuCoder Jan 9, 2026
a4152c5
fix(test): flaky test due to calling toJSON while hot updating (#12694)
stormslowly Jan 12, 2026
df72860
feat: impl `sync_trace` for `logger` tracing layer (#12687)
CPunisher Jan 12, 2026
eb5635c
feat: add warning when requireAlias is disabled (#12700)
LingyuCoder Jan 12, 2026
b21d2ec
revert: "feat: add warning when requireAlias is disabled" (#12702)
LingyuCoder Jan 12, 2026
ec24006
feat: use rspack-vue-loader to support Vue hot update (#12698)
9aoy Jan 12, 2026
d02192f
fix: `environments.importMetaDirnameAndFilename` not work (#12708)
chenjiahan Jan 13, 2026
6256796
fix: dynamic entry panic when disable build cache (#12696)
SyMind Jan 13, 2026
a6892fe
fix(context-replacement): only apply changes when regex matches (#12657)
agneym Jan 13, 2026
a47337b
fix(mf): handle missing chunk gracefully and improve expose chunk nam…
2heal1 Jan 13, 2026
368f367
fix(type): runtimeModule.source (#12713)
9aoy Jan 13, 2026
26c87d7
chore: release 1.7.2 (#12710)
JSerFeng Jan 13, 2026
0f1b1e4
chore(deps): update dependency @rspack/plugin-react-refresh to ^1.6.0…
renovate[bot] Jan 14, 2026
a10781f
chore(deps): update dependency @shikijs/transformers to ^3.21.0 (#12719)
renovate[bot] Jan 14, 2026
0ddce9d
chore(deps): update patch crates (#12716)
renovate[bot] Jan 14, 2026
36866ea
test: skip recover-from-error/delete-file in watchCases (#12726)
jerrykingxyz Jan 14, 2026
25020fd
feat: support portable cache and disable by default (#12680)
jerrykingxyz Jan 14, 2026
63a410a
test: use Rstest projects to define tests (#12729)
9aoy Jan 14, 2026
785c0f6
chore(deps): update patch npm dependencies (#12717)
renovate[bot] Jan 14, 2026
d9915de
refactor: move pass into separate folder and driven by run_passes (#1…
hardfist Jan 15, 2026
52a9e73
Merge branch 'main' into blacksmith-migration-06f6b34
stormslowly Jan 15, 2026
4d63da7
Merge branch 'blacksmith-migration-06f6b34' of github.com:web-infra-d…
stormslowly Jan 15, 2026
0e0bf9d
refactor: try cache check on ubuntu
stormslowly Jan 15, 2026
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
4 changes: 2 additions & 2 deletions .github/actions/artifact/download/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ runs:
steps:
- name: Download artifact from github
uses: actions/download-artifact@v4.1.7
if: ${{ runner.environment == 'github-hosted' || inputs.force-use-github == 'true' }}
if: ${{ runner.environment == 'github-hosted' || startsWith(runner.name, 'blacksmith-') || inputs.force-use-github == 'true' }}
with:
name: ${{ inputs.name }}
path: ${{ inputs.path }}
- name: Download artifact from local
if: ${{ runner.environment == 'self-hosted' && inputs.force-use-github != 'true' }}
if: ${{ runner.environment == 'self-hosted' && startsWith(runner.name, 'rspack') && inputs.force-use-github != 'true' }}
uses: lynx-infra/download-artifact@79d9914484f933089c2840552cf439bac85debad # https://github.com/lynx-infra/download-artifact/tree/dev
with:
name: ${{ inputs.name }}
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/artifact/upload/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ runs:
steps:
- name: Upload artifact to local
uses: lynx-infra/upload-artifact@332ec52e99f7cbf1fbbdc9bcc09280d49147d092 # https://github.com/lynx-infra/upload-artifact/tree/dev
if: ${{ runner.environment == 'self-hosted' }}
if: ${{ runner.environment == 'self-hosted' && startsWith(runner.name, 'rspack') }}
with:
name: ${{ inputs.name }}
path: ${{ inputs.path }}
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/binary-limit/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ runs:

steps:
- name: GitHub Script
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd
uses: actions/github-script@450193c5abd4cdb17ba9f3ffcfe8f635c4bb6c2a
with:
script: |
const limit = parseInt("${{ inputs.size-threshold }}") || 51200;
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/cache/restore/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@ runs:
steps:
- name: Restore cache to github
id: github-cache
if: ${{ runner.environment == 'github-hosted' }}
if: ${{ runner.environment == 'github-hosted' || startsWith(runner.name, 'blacksmith-') }}
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
key: ${{ inputs.key }}
path: ${{ inputs.path }}
restore-keys: ${{ inputs.restore-keys }}
- name: Restore cache to local
id: local-cache
if: ${{ runner.environment == 'self-hosted' }}
if: ${{ runner.environment == 'self-hosted' && startsWith(runner.name, 'rspack') }}
uses: lynx-infra/cache/restore@5c6160a6a4c7fca80a2f3057bb9dfc9513fcb732 # main
with:
key: ${{ inputs.key }}
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/cache/save/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ runs:
using: composite
steps:
- name: Save cache to github
if: ${{ runner.environment == 'github-hosted' }}
if: ${{ runner.environment == 'github-hosted' || startsWith(runner.name, 'blacksmith-') }}
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
key: ${{ inputs.key }}
path: ${{ inputs.path }}
- name: Save cache to local
if: ${{ runner.environment == 'self-hosted' }}
if: ${{ runner.environment == 'self-hosted' && startsWith(runner.name, 'rspack') }}
uses: lynx-infra/cache/save@5c6160a6a4c7fca80a2f3057bb9dfc9513fcb732 # main
with:
key: ${{ inputs.key }}
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/rustup/cargo/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ runs:
using: composite
steps:
- name: Cache to github
if: ${{ runner.environment == 'github-hosted' }}
if: ${{ runner.environment == 'github-hosted' || startsWith(runner.name, 'blacksmith-' ) }}
uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
with:
prefix-key: 'RCache-G-2'
Expand All @@ -23,7 +23,7 @@ runs:

- name: Cache to local
uses: rstackjs/rust-cache@8269079380bc35105b3ed8b0f1f7c9557c6dec93 # v2.7.8
if: ${{ runner.environment == 'self-hosted' }}
if: ${{ runner.environment == 'self-hosted' && startsWith(runner.name, 'rspack') }}
with:
prefix-key: 'RCache-L-5'
shared-key: ${{ inputs.key }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ci-diff.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
push:
branches:
- main
- v2
# Ignore md files in push to skip workflow when only documentation changes
paths-ignore:
- '**/*.md'
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/ci-lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
push:
branches:
- main
- v2
paths-ignore:
- '**/*.md'
- 'website/**'
Expand Down Expand Up @@ -108,7 +109,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- uses: crate-ci/typos@5c19779cb52ea50e151f5a10333ccd269227b5ae # v1.41.0
- uses: crate-ci/typos@bb4666ad77b539a6b4ce4eda7ebb6de553704021 # v1.42.0
with:
files: .

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ci-rust.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
push:
branches:
- main
- v2
paths:
- '.github/workflows/**'
- 'crates/**'
Expand Down
17 changes: 10 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ on:
push:
branches:
- main
- v2
paths-ignore:
- '**/*.md'
- 'website/**'
Expand All @@ -23,7 +24,7 @@ on:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: ${{ github.ref_name != 'main' }}
cancel-in-progress: ${{ github.ref_name != 'main' && github.ref_name != 'v2' }}

permissions:
# Allow commenting on issues for `reusable-build.yml`
Expand Down Expand Up @@ -59,7 +60,8 @@ jobs:
uses: ./.github/workflows/reusable-build.yml
with:
target: x86_64-unknown-linux-gnu
runner: ${{ vars.LINUX_SELF_HOSTED_RUNNER_LABELS || '"ubuntu-22.04"' }}
runner: ${{ vars.CI_LINUX_BUILD_RUNNER || '"ubuntu-22.04"' }}
test-runner: ${{ vars.CI_LINUX_TEST_RUNNER || '"ubuntu-22.04"' }}
test: true
bench: true
prefer_docker: false
Expand All @@ -72,8 +74,8 @@ jobs:
with:
target: x86_64-pc-windows-msvc
profile: 'dev'
runner: ${{ vars.WINDOWS_SELF_HOSTED_RUNNER_LABELS || '"windows-latest"' }}
test-runner: '"windows-latest"'
runner: ${{ vars.CI_WINDOWS_BUILD_RUNNER || '"windows-latest"' }}
test-runner: ${{ vars.CI_WINDOWS_TEST_RUNNER || '"windows-latest"' }}
test: true

test-mac:
Expand All @@ -84,7 +86,7 @@ jobs:
with:
target: aarch64-apple-darwin
profile: 'ci'
runner: ${{ vars.MAC_SELF_HOSTED_RUNNER_LABELS || '"macos-latest"' }}
runner: ${{ vars.CI_MACOS_BUILD_RUNNER || '"macos-latest"' }}
test-runner: ${{ '"macos-latest"' }}
test: true

Expand All @@ -96,7 +98,8 @@ jobs:
with:
target: wasm32-wasip1-threads
profile: 'ci'
runner: ${{ vars.LINUX_SELF_HOSTED_RUNNER_LABELS || '"ubuntu-22.04"' }}
runner: ${{ vars.CI_LINUX_BUILD_RUNNER || '"ubuntu-22.04"' }}
test-runner: ${{ vars.CI_LINUX_TEST_RUNNER || '"ubuntu-22.04"' }}
test: true

check-codspeed:
Expand All @@ -119,7 +122,7 @@ jobs:
check-cache:
name: Check Cache Portable
needs: [test-linux, test-windows]
runs-on: ${{ fromJSON(vars.LINUX_SELF_HOSTED_RUNNER_LABELS || '"ubuntu-22.04"') }}
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ecosystem-benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ on:
push:
branches:
- main
- v2
paths-ignore:
- '**/*.md'
- 'website/**'
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ecosystem-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ on:
push:
branches:
- main
- v2
paths-ignore:
- '**/*.md'
- 'website/**'
Expand Down
23 changes: 13 additions & 10 deletions .github/workflows/release-canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,25 +47,28 @@ jobs:
matrix:
array:
- target: x86_64-unknown-linux-gnu
runner: ${{ vars.LINUX_SELF_HOSTED_RUNNER_LABELS || '"ubuntu-22.04"' }}
runner: ${{ vars.CI_LINUX_BUILD_RUNNER || '"ubuntu-22.04"' }}
- target: aarch64-unknown-linux-gnu
runner: ${{ vars.LINUX_SELF_HOSTED_RUNNER_LABELS || '"ubuntu-22.04"' }}
runner: ${{ vars.CI_LINUX_BUILD_RUNNER || '"ubuntu-22.04"' }}
- target: x86_64-unknown-linux-musl
runner: ${{ vars.LINUX_SELF_HOSTED_RUNNER_LABELS || '"ubuntu-22.04"' }}
runner: ${{ vars.CI_LINUX_BUILD_RUNNER || '"ubuntu-22.04"' }}
- target: aarch64-unknown-linux-musl
runner: ${{ vars.LINUX_SELF_HOSTED_RUNNER_LABELS || '"ubuntu-22.04"' }}
runner: ${{ vars.CI_LINUX_BUILD_RUNNER || '"ubuntu-22.04"' }}

- target: i686-pc-windows-msvc
runner: ${{ needs.get-runner-labels.outputs.WINDOWS_RUNNER_LABELS }}
runner: ${{ vars.CI_WINDOWS_BUILD_RUNNER || '"windows-latest"' }}
- target: x86_64-pc-windows-msvc
runner: ${{ needs.get-runner-labels.outputs.WINDOWS_RUNNER_LABELS }}
runner: ${{ vars.CI_WINDOWS_BUILD_RUNNER || '"windows-latest"' }}
- target: aarch64-pc-windows-msvc
runner: ${{ needs.get-runner-labels.outputs.WINDOWS_RUNNER_LABELS }}
runner: ${{ vars.CI_WINDOWS_BUILD_RUNNER || '"windows-latest"' }}

- target: x86_64-apple-darwin
runner: ${{ needs.get-runner-labels.outputs.MACOS_RUNNER_LABELS }}
runner: ${{ vars.CI_MACOS_BUILD_RUNNER || '"macos-latest"' }}
- target: aarch64-apple-darwin
runner: ${{ needs.get-runner-labels.outputs.MACOS_RUNNER_LABELS }}
runner: ${{ vars.CI_MACOS_BUILD_RUNNER || '"macos-latest"' }}

- target: wasm32-wasip1-threads
runner: ${{ vars.LINUX_SELF_HOSTED_RUNNER_LABELS || '"ubuntu-22.04"' }}
runner: ${{ vars.CI_LINUX_BUILD_RUNNER || '"ubuntu-22.04"' }}
uses: ./.github/workflows/reusable-build.yml
with:
ref: ${{inputs.commit || github.sha}}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reusable-build-bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
key: build-bench-${{ inputs.target }}

- name: Install cargo-codspeed binary
uses: taiki-e/install-action@0e76c5c569f13f7eb21e8e5b26fe710062b57b62 # v2
uses: taiki-e/install-action@dfcb1ee29051d97c8d0f2d437199570008fd5612 # v2
with:
tool: cargo-codspeed@2.10.1

Expand Down
13 changes: 13 additions & 0 deletions .github/workflows/reusable-build-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,19 @@ jobs:
if: ${{ inputs.target == 'x86_64-pc-windows-msvc' }}
run: RUST_TARGET=${{ inputs.target }} pnpm build:binding:${{ inputs.profile }}

- name: Install arm64 build tools
# temp workaround in blacksmith runners
if: ${{ inputs.target == 'aarch64-pc-windows-msvc' && startsWith(runner.name, 'blacksmith-') }}
shell: pwsh
run: |
$vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
$installPath = & $vswhere -products * -latest -property installationPath
$setupExe = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\setup.exe"

Start-Process -FilePath $setupExe `
-ArgumentList "modify", "--installPath", "`"$installPath`"", "--add", "Microsoft.VisualStudio.Component.VC.Tools.ARM64", "--quiet", "--norestart" `
-Wait -PassThru -NoNewWindow

- name: Build aarch64-pc-windows-msvc
if: ${{ inputs.target == 'aarch64-pc-windows-msvc' }}
run: RUST_TARGET=${{ inputs.target }} DISABLE_PLUGIN=1 pnpm build:binding:${{ inputs.profile }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/reusable-build-codspeed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ on:
jobs:
codspeed:
name: Codspeed-build
runs-on: ${{ fromJSON(vars.LINUX_SELF_HOSTED_RUNNER_LABELS || '"ubuntu-22.04"' ) }}
runs-on: ${{ fromJSON(inputs.runner) }}
steps:
- name: Checkout
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
Expand All @@ -30,7 +30,7 @@ jobs:
key: build-bench-${{ inputs.target }}

- name: Install cargo-codspeed binary
uses: taiki-e/install-action@0e76c5c569f13f7eb21e8e5b26fe710062b57b62 # v2
uses: taiki-e/install-action@dfcb1ee29051d97c8d0f2d437199570008fd5612 # v2
with:
tool: cargo-codspeed@2.10.1

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reusable-rust-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ jobs:
run: cargo codegen

- name: Install cargo-deny
uses: taiki-e/install-action@0e76c5c569f13f7eb21e8e5b26fe710062b57b62 # v2
uses: taiki-e/install-action@dfcb1ee29051d97c8d0f2d437199570008fd5612 # v2
with:
tool: cargo-deny@0.18.3
- name: Check licenses
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/size-limit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ permissions:
jobs:
size-limit:
name: Binding Size Limit
runs-on: ${{ fromJSON(vars.LINUX_SELF_HOSTED_RUNNER_LABELS || '"ubuntu-22.04"') }}
runs-on: ${{ fromJSON(vars.CI_LINUX_BUILD_RUNNER || '"ubuntu-22.04"') }}
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5

Expand Down
Loading
Loading