Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(en): merge rollup/master into rollup-docs-cn/master @ f52a2ebf #73

Closed
wants to merge 31 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
4576ef3
[v4.0] Set minimum Node version to 18
lukastaegert Sep 18, 2023
643272e
[v4.0] Switch parser to SWC and introduce native/WASM code (#5073)
lukastaegert Sep 17, 2023
92864d4
[v4.0] Set the default of skipSelf to true (#5142)
TrickyPi Sep 18, 2023
62cbff4
[v4.0] Imporve the performance of generating ast and rollup ast nodes…
TrickyPi Sep 21, 2023
55abe0f
[v4.0] Remove deprecated features (#5143)
lukastaegert Sep 21, 2023
accd66a
[v4.0] feat: Do not watch files anymore if their content is returned …
TrickyPi Sep 24, 2023
7325320
[v4.0] Remove onwarn from normalized input options (#5147)
lukastaegert Sep 24, 2023
fda977b
[v4.0] Add parse option to allow return outside function (#5154)
lukastaegert Sep 26, 2023
0b0eabd
[v4.0] Handle empty exports (#5157)
lukastaegert Sep 26, 2023
fbc25af
[v4.0] feat: implement hashing content in Rust (#5155)
TrickyPi Sep 30, 2023
4e562e5
[v4.0] fix: also strip BOM from code strings in JS (#5164)
TrickyPi Oct 2, 2023
bfbea66
[v4.0] feat: preserve shebang in entry module for CJS and ESM outputs…
TrickyPi Oct 3, 2023
dd709c3
[v4.0] warn for invalid annotations (#5165)
lukastaegert Oct 3, 2023
cade24f
[v4.0] Ensure we support new import attribute "with" syntax (#5168)
lukastaegert Oct 5, 2023
4e8e5b4
[v4.0] Expose parser (#5169)
lukastaegert Oct 5, 2023
2f26135
4.0.0
lukastaegert Oct 5, 2023
95c2da8
Fix REPL artifacts workflow
lukastaegert Oct 6, 2023
7d88ef0
chore(deps): lock file maintenance minor/patch updates (#5172)
renovate[bot] Oct 6, 2023
4611d81
fix: ignores empty statements in class body that is returned by SWC p…
TrickyPi Oct 6, 2023
10eb5e8
Fix linux arm musl build (#5176)
lukastaegert Oct 6, 2023
fcab1f6
4.0.1
lukastaegert Oct 6, 2023
b132bd4
Handle special characters before double underscores (#5178)
lukastaegert Oct 6, 2023
3d9c833
4.0.2
lukastaegert Oct 6, 2023
8b217ce
Update migration guide for Rollup 4 (#5179)
lukastaegert Oct 7, 2023
15d321b
chore: explicitly set rust toolchain channel (#5177)
cijiugechu Oct 7, 2023
2a86412
Fix toolchain for REPL workflow
lukastaegert Oct 9, 2023
e99ff72
Resolve clippy errors (#5180)
cijiugechu Oct 9, 2023
c453664
docs: fix code example for `onLog` (#5184)
tjenkinson Oct 9, 2023
080d224
Add clippy to pipeline and fix remaining issues (#5183)
lukastaegert Oct 9, 2023
f52a2eb
Improve wording for native artifacts in migration guide (#5186)
lukastaegert Oct 10, 2023
d292683
docs(en): merging all conflicts
docschina-bot Oct 10, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 4 additions & 2 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,13 @@ module.exports = {
'coverage',
'_tmp',
'cache',
'wasm',
'native.d.ts',
'/test/*/samples/**/*.*',
'!/test/*/samples/**/_config.js',
'!/test/*/samples/**/rollup.config.js',
'!.vitepress'
'!.vitepress',
'/wasm/',
'/wasm-node/'
],
overrides: [
{
Expand Down
364 changes: 364 additions & 0 deletions .github/workflows/build-and-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,364 @@
name: CI
env:
DEBUG: napi:*
APP_NAME: rollup
MACOSX_DEPLOYMENT_TARGET: '10.13'

on:
push:
branches:
- master
tags:
- 'v*.*.**'
pull_request:
types:
- synchronize
- opened
- reopened
merge_group:

permissions:
contents: read

jobs:
lint:
name: Lint and Audit
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout Commit
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 20
- name: Cache Node Modules
id: cache-node-modules
uses: actions/cache@v3
with:
path: node_modules
key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
- name: Install dependencies
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: npm ci --ignore-scripts
- name: Lint
run: npm run ci:lint
- name: Vulnerabilities
run: npm audit
- name: Optional Dependencies
run: npm run test:package
- name: CLI Docs
run: npm run test:options

build:
strategy:
fail-fast: false
matrix:
settings:
- host: windows-latest
target: x86_64-pc-windows-msvc
name: wasm
is-wasm-build: true
build: >-
set -e &&
rustup target add wasm32-unknown-unknown &&
npm run build:wasm
path: |
wasm/
.empty
- host: windows-latest
target: x86_64-pc-windows-msvc
name: wasm-node
is-wasm-build: true
build: >-
set -e &&
rustup target add wasm32-unknown-unknown &&
npm run build:wasm:node
path: |
wasm-node/
.empty
- host: macos-latest
target: x86_64-apple-darwin
build: >-
set -e &&
npm run build:napi -- --release &&
strip -x *.node
- host: windows-latest
build: npm run build:napi -- --release
target: x86_64-pc-windows-msvc
- host: windows-latest
build: >-
set -e &&
rustup target add i686-pc-windows-msvc &&
npm run build:napi -- --release --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
build: >-
set -e &&
rustup target add x86_64-unknown-linux-gnu &&
npm run build:napi -- --release --target x86_64-unknown-linux-gnu &&
strip *.node
- host: ubuntu-latest
target: x86_64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: >-
set -e &&
npm run build:napi -- --release && strip *.node
- host: macos-latest
target: aarch64-apple-darwin
build: >-
set -e &&
rustup target add aarch64-apple-darwin &&
npm run build:napi -- --release --target aarch64-apple-darwin &&
strip -x *.node
- host: ubuntu-latest
target: aarch64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
build: >-
set -e &&
export JEMALLOC_SYS_WITH_LG_PAGE=16 &&
rustup default nightly-2023-10-05 &&
rustup target add aarch64-unknown-linux-gnu &&
npm run build:napi -- --release --target aarch64-unknown-linux-gnu &&
aarch64-unknown-linux-gnu-strip *.node
- host: ubuntu-latest
target: armv7-unknown-linux-gnueabihf
zig: true
setup: |
sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabihf -y
build: >-
set -e &&
npm run build:napi -- --release --target armv7-unknown-linux-gnueabihf &&
arm-linux-gnueabihf-strip *.node
- host: ubuntu-latest
target: aarch64-linux-android
build: >-
set -e &&
npm run build:napi -- --release --target aarch64-linux-android &&
${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip *.node
- host: ubuntu-latest
target: armv7-linux-androideabi
build: >-
set -e &&
npm run build:napi -- --release --target armv7-linux-androideabi &&
${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip *.node
- host: ubuntu-latest
target: aarch64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: >-
set -e &&
export JEMALLOC_SYS_WITH_LG_PAGE=16 &&
rustup default nightly-2023-10-05 &&
rustup target add aarch64-unknown-linux-musl &&
RUSTFLAGS='-C target-feature=-crt-static -C linker=aarch64-linux-musl-gcc' npm run build:napi -- --release --target aarch64-unknown-linux-musl &&
/aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip *.node
- host: windows-latest
target: aarch64-pc-windows-msvc
build: npm run build:napi -- --release --target aarch64-pc-windows-msvc
name: Build ${{ matrix.settings.name || matrix.settings.target }}
runs-on: ${{ matrix.settings.host }}
timeout-minutes: 30
steps:
- name: Checkout Commit
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v3
if: ${{ !matrix.settings.docker }}
with:
node-version: 20
- name: Install Toolchain
uses: dtolnay/rust-toolchain@stable
if: ${{ !matrix.settings.docker }}
with:
toolchain: nightly-2023-10-05
targets: ${{ matrix.settings.target }}
- name: Cache cargo
uses: actions/cache@v3
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
.cargo-cache
rust/target/
key: ${{ matrix.settings.name || matrix.settings.target }}-cargo-${{ matrix.settings.host }}-${{ hashFiles('rust/Cargo.lock') }}
restore-keys: ${{ matrix.settings.name || matrix.settings.target }}-cargo-${{ matrix.settings.host }}
- uses: goto-bus-stop/setup-zig@v2
if: ${{ matrix.settings.zig }}
with:
version: 0.10.1
- name: Setup toolchain
run: ${{ matrix.settings.setup }}
if: ${{ matrix.settings.setup }}
shell: bash
- name: Cache Node Modules
id: cache-node-modules
uses: actions/cache@v3
with:
path: node_modules
key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
- name: Install dependencies
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: npm ci --ignore-scripts
- 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'
run: ${{ matrix.settings.build }}
- name: Build
run: ${{ matrix.settings.build }}
if: ${{ !matrix.settings.docker }}
shell: bash
- name: Upload wasm artifact
uses: actions/upload-artifact@v3
with:
name: bindings-${{ matrix.settings.name }}
path: ${{ matrix.settings.path }}
if-no-files-found: error
if: ${{ matrix.settings.is-wasm-build }}
- name: Upload napi artifact
uses: actions/upload-artifact@v3
with:
name: bindings-${{ matrix.settings.target }}
path: ${{ env.APP_NAME }}.*.node
if-no-files-found: error
if: ${{ !matrix.settings.is-wasm-build }}

test:
name: Test${{ matrix.additionalName || '' }} Node ${{ matrix.node }} (${{ matrix.settings.target }})
needs:
- build
strategy:
fail-fast: false
matrix:
settings:
- host: ubuntu-latest
target: x86_64-unknown-linux-gnu
- host: windows-latest
target: x86_64-pc-windows-msvc
- host: macos-latest
target: x86_64-apple-darwin
node:
- '18.0.0'
- '20'
include:
- settings:
host: ubuntu-latest
target: x86_64-unknown-linux-gnu
node: '20'
command: 'ci:coverage'
additionalName: ' with Coverage'
coverage: true
- settings:
host: ubuntu-latest
target: x86_64-unknown-linux-gnu
node: '18.0.0'
command: 'ci:test:all'
additionalName: ' with Additional Tests'
runs-on: ${{ matrix.settings.host }}
timeout-minutes: 15
steps:
- name: Checkout Commit
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
check-latest: true
- name: Cache Node Modules
id: cache-node-modules
uses: actions/cache@v3
with:
path: node_modules
key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
- name: Install dependencies
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: npm ci --ignore-scripts
- name: Download napi artifacts
uses: actions/download-artifact@v3
with:
name: bindings-${{ matrix.settings.target }}
path: .
- name: Download wasm artifacts
uses: actions/download-artifact@v3
with:
name: bindings-wasm
- name: Build and test Rollup
run: npm run ${{ matrix.command || 'ci:test:only' }}
env:
CI: true
- name: Upload coverage
uses: codecov/codecov-action@v3
if: matrix.coverage
with:
# It appears adding the token may result in the coverage comment not being added
# token: ${{ secrets.CODECOV_TOKEN }}
commit_parent: ${{ github.event.pull_request.head.sha }}

publish:
permissions:
pull-requests: write # for writing comments
issues: write # for writing comments
contents: write # for creating a release
name: Publish
runs-on: ubuntu-latest
timeout-minutes: 15
needs:
- test
- lint
# This needs to be adapted for Rollup 5
if: startsWith(github.ref_name, 'v4')
steps:
- name: Checkout Commit
uses: actions/checkout@v4
with:
# Necessary to find the commits included in the release
fetch-depth: 0
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
check-latest: true
- name: Cache Node Modules
id: cache-node-modules
uses: actions/cache@v3
with:
path: node_modules
key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
- name: Install dependencies
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: npm ci --ignore-scripts
- name: Download all artifacts
uses: actions/download-artifact@v3
with:
path: artifacts
- name: Copy wasm files
run: cp -R artifacts/bindings-wasm/wasm .
- name: Build JavaScript
run: npm run build:cjs && cp artifacts/*/*.node dist/ && npm run build:bootstrap
- name: Move artifacts
run: npm run ci:artifacts
- name: Publish
run: |
if git --no-pager log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+$";
then
echo "Publishing regular release"
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
npm publish --access public
elif git --no-pager log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+-[0-9]\+$";
then
echo "Publishing beta release"
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
npm publish --tag beta --access public
else
echo "Not a release, skipping publish"
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
ROLLUP_RELEASE: 'releasing'
Loading
Loading