Skip to content

Comments

chore(ci): make native rolldown build reusable#7557

Merged
hyf0 merged 1 commit intomainfrom
12-18-chore_ci_make_native_rolldown_build_reusable
Dec 18, 2025
Merged

chore(ci): make native rolldown build reusable#7557
hyf0 merged 1 commit intomainfrom
12-18-chore_ci_make_native_rolldown_build_reusable

Conversation

@hyf0
Copy link
Member

@hyf0 hyf0 commented Dec 18, 2025

I wanna split the normal test and hmr tests.

Hmr tests are flaky and sometimes we need to rerun them. By making the build step reusable and separated from normal tests, we could reduce its rerun time a lot.

Copy link
Member Author

hyf0 commented Dec 18, 2025


How to use the Graphite Merge Queue

Add the label graphite: merge to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@netlify
Copy link

netlify bot commented Dec 18, 2025

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit 976dd63
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/6943c3c6adc4e6000857184e

@hyf0 hyf0 marked this pull request as ready for review December 18, 2025 05:07
Copilot AI review requested due to automatic review settings December 18, 2025 05:07
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the CI workflow to make native Rolldown builds reusable by extracting the build steps into a separate reusable workflow. This reduces code duplication and makes the workflow structure more maintainable.

Key Changes:

  • Created a new reusable-native-build.yml workflow that builds Rolldown natively on different operating systems and uploads the artifacts
  • Modified reusable-node-test.yml to download pre-built artifacts instead of building Rolldown during test execution
  • Split the node-test job in ci.yml into three separate platform-specific jobs (node-test-windows, node-test-macos, node-test-ubuntu) that depend on corresponding build jobs

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
.github/workflows/reusable-native-build.yml New reusable workflow that builds Rolldown natively and uploads artifacts for a specified OS
.github/workflows/reusable-node-test.yml Modified to download native build artifacts instead of building locally, removing Rust build steps
.github/workflows/ci.yml Refactored to use separate build and test jobs per platform, allowing build artifact reuse across workflows

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@hyf0 hyf0 force-pushed the 12-18-chore_ci_make_native_rolldown_build_reusable branch from ea96e6a to 04839f8 Compare December 18, 2025 05:11
Copilot AI review requested due to automatic review settings December 18, 2025 05:14
@hyf0 hyf0 force-pushed the 12-18-chore_ci_make_native_rolldown_build_reusable branch from 04839f8 to ba871d6 Compare December 18, 2025 05:14
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@hyf0 hyf0 force-pushed the 12-18-chore_ci_make_native_rolldown_build_reusable branch from ba871d6 to d7092cc Compare December 18, 2025 05:21
Copilot AI review requested due to automatic review settings December 18, 2025 05:54
@hyf0 hyf0 force-pushed the 12-18-chore_ci_make_native_rolldown_build_reusable branch from d7092cc to 7a1e351 Compare December 18, 2025 05:54
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@graphite-app
Copy link
Contributor

graphite-app bot commented Dec 18, 2025

Merge activity

@hyf0 hyf0 force-pushed the 12-18-chore_ci_make_native_rolldown_build_reusable branch from 7a1e351 to a5b622e Compare December 18, 2025 09:05
I wanna split the normal test and hmr tests.

Hmr tests are flaky and sometimes we need to rerun them. By making the build step reusable and separated from normal tests, we could reduce its rerun time a lot.
@graphite-app graphite-app bot force-pushed the 12-18-chore_ci_make_native_rolldown_build_reusable branch from a5b622e to 976dd63 Compare December 18, 2025 09:05
@hyf0 hyf0 merged commit 37a87c1 into main Dec 18, 2025
2 checks passed
@hyf0 hyf0 deleted the 12-18-chore_ci_make_native_rolldown_build_reusable branch December 18, 2025 09:05
hyf0 added a commit that referenced this pull request Dec 18, 2025
> By making the build step reusable and separated from normal tests, we
could reduce its rerun time a lot.
#7557

<img width="1452" height="1192" alt="image"
src="https://github.com/user-attachments/assets/96b799f1-6dd0-40e2-b061-6a0aca80eeb2"
/>
shulaoda added a commit that referenced this pull request Dec 22, 2025
## [1.0.0-beta.56] - 2025-12-22

### 💥 BREAKING CHANGES

- rename `MIXED_EXPORT` error to `MIXED_EXPORTS` (#7565) by @sapphi-red

### 🚀 Features

- rename `id` property to `exporter` in CIRCULAR_REEXPORT error (#7592) by @sapphi-red
- add `ids` property to `CIRCULAR_DEPENDENCY` error (#7591) by @sapphi-red
- node/dev: expose `devMode.lazy` (#7549) by @hyf0
- set log and pos properties for `parseAst` function errors (#7568) by @sapphi-red
- set log and pos properties for logs (#7567) by @sapphi-red
- test-dev-sever: support to manually configure port, run tests in concurrent (#7576) by @hyf0
- add `exporter` property to `MISSING_EXPORT` error (#7564) by @sapphi-red
- add `id` property to `PARSE_ERROR` error (#7563) by @sapphi-red
- support ImporterId hook filter (#7540) by @IWANABETHATGUY

### 🐛 Bug Fixes

- types: better "go to definition" experience for interface `OutputPlugin` (#7610) by @KazariEX
- `postBanner` content should be placed after shebang (#7583) by @btea
- use sanitized filename for preserve modules chunk name (#7603) by @IWANABETHATGUY
- correct filter out unused cjs namespace  (#7602) by @IWANABETHATGUY
- watch: property respect `notify.pollInternal` and `notify.compareContents` (#7595) by @sapphi-red
- make `cleanDir` work with default output directory (#7579) by @shulaoda
- merge `MISSING_NAME_OPTION_FOR_UMD_EXPORT` error to `MISSING_NAME_OPTION_FOR_IIFE_EXPORT` error (#7566) by @sapphi-red
- dev/hmr: ensure cjs modules with no exports reference correct `module` identifier (#7544) by @leegeunhyeok

### 🚜 Refactor

- remove `stable_id` field from `PARSE_ERROR` error (#7593) by @sapphi-red
- make include_runtime_symbol reuseable after linking stage (#7580) by @IWANABETHATGUY
- rust/dev: construct the bundler within itself (#7553) by @hyf0
- rust/watcher: polish API of `Watcher` struct (#7551) by @hyf0
- use `LinkingMetadata::stmt_info_included` to check if a stmt_info is included (#7572) by @IWANABETHATGUY
- use `LinkingMetadata::is_included` to check if a module is included (#7571) by @IWANABETHATGUY
- store module and stmt_info is included info to module meta (#7570) by @IWANABETHATGUY
- make include_* method reunsable after linking stage (#7552) by @IWANABETHATGUY
- rust/watcher: construct the bundler within watcher itself (#7550) by @hyf0
- extract make include_runtime_symbol reusable (#7546) by @IWANABETHATGUY

### ⚙️ Miscellaneous Tasks

- renovate: add `kill-port` in `ignoreDeps` in renovate.json (#7619) by @sapphi-red
- deps: update rust crates (#7617) by @renovate[bot]
- deps: update npm packages (#7616) by @renovate[bot]
- deps: update github-actions (#7615) by @renovate[bot]
- ci: skip benchmark workflows on draft PRs (#7611) by @Copilot
- deps: update dependency rolldown-plugin-dts to ^0.19.0 (#7607) by @renovate[bot]
- deps: update dependency oxlint-tsgolint to v0.10.0 (#7601) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to v0.18.4 (#7599) by @renovate[bot]
- deps: update notify (#7594) by @sapphi-red
- test-dev-server: add retry mechanism to hmr-full-bundle-mode tests (#7588) by @Copilot
- deps: update napi to v3.7.1 (#7590) by @renovate[bot]
- add JSDoc documentation for memfs type (#7587) by @Copilot
- deps: update dependency oxlint to v1.34.0 (#7589) by @renovate[bot]
- move some tests in ignored-by-unsupported-features that are passing (#7569) by @sapphi-red
- deps: update dependency oxlint-tsgolint to v0.9.2 (#7582) by @renovate[bot]
- deps: update oxc resolver to v11.16.0 (#7574) by @renovate[bot]
- test/dev-server: don't run `pnpm install` during tests (#7560) by @hyf0
- test/dev-server: use `kill-port@1` to improve performance (#7575) by @hyf0
- normalize error object to make some Rollup tests pass (#7562) by @sapphi-red
- ci: separate dev-server(hmr) tests and normal tests (#7558) by @hyf0
- ci: make native rolldown build reusable (#7557) by @hyf0
- resolve some TODOs (#7561) by @sapphi-red

### ❤️ New Contributors

* @KazariEX made their first contribution in [#7610](#7610)
* @leegeunhyeok made their first contribution in [#7544](#7544)

Co-authored-by: shulaoda <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants