From e648c0c46fc01f55c28b930b59c74347de9e3320 Mon Sep 17 00:00:00 2001 From: Lee Dong Geon <100822592+ldg030201@users.noreply.github.com> Date: Thu, 5 Nov 2026 10:53:14 +0900 Subject: [PATCH] ci: build with line tables only and move actions to Node 24 (#1194) CI Rust jobs build with line tables only (CARGO_PROFILE_DEV_DEBUG), which cut the Rust jobs from about 12 to 7.7 minutes on Ubuntu and 18 to 12.6 minutes on Windows and shrinks the cache. The workflows move to the actions releases that run on Node 24: checkout, setup-node and pnpm/action-setup v5, upload-artifact v6, github-script v8 (ci, pr-check and release). Co-authored-by: ldg030201 <100822592+ldg030201@users.noreply.github.com> --- .github/workflows/ci.yml | 32 +++++++++++++++++--------------- .github/workflows/pr-check.yml | 2 +- .github/workflows/release.yml | 22 +++++++++++----------- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 180729a4..2a6b1f2a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,6 +15,8 @@ concurrency: env: CARGO_TERM_COLOR: always CARGO_INCREMENTAL: 0 + # Line tables keep test backtraces readable; full debuginfo only adds build time and cache size. + CARGO_PROFILE_DEV_DEBUG: line-tables-only jobs: rust: @@ -25,10 +27,10 @@ jobs: os: [macos-latest, ubuntu-22.04, windows-latest] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 + - uses: actions/checkout@v5 + - uses: pnpm/action-setup@v5 with: { version: 11 } - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v5 with: { node-version: 22, cache: pnpm } - uses: dtolnay/rust-toolchain@stable with: { components: "clippy, rustfmt" } @@ -62,7 +64,7 @@ jobs: name: Remote server (linux musl) runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: dtolnay/rust-toolchain@stable with: { targets: x86_64-unknown-linux-musl } - uses: Swatinem/rust-cache@v2 @@ -79,7 +81,7 @@ jobs: env: CARGO_TARGET_DIR: ${{ github.workspace }}/target-plugins steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: dtolnay/rust-toolchain@stable with: { targets: wasm32-wasip2, components: "clippy, rustfmt" } - uses: Swatinem/rust-cache@v2 @@ -100,9 +102,9 @@ jobs: cargo test --locked --manifest-path "$dir/Cargo.toml" echo "::endgroup::" done - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v5 with: { version: 11 } - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v5 with: { node-version: 22 } # Plugin web pages (`web-src/`, their own pnpm projects): typecheck and test. - name: Web pages typecheck and test @@ -126,7 +128,7 @@ jobs: name: Cargo deny runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: dtolnay/rust-toolchain@stable - uses: taiki-e/install-action@cargo-deny - run: cargo deny check @@ -135,10 +137,10 @@ jobs: name: Frontend runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 + - uses: actions/checkout@v5 + - uses: pnpm/action-setup@v5 with: { version: 11 } - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v5 with: { node-version: 22, cache: pnpm } - run: pnpm install --frozen-lockfile - run: pnpm typecheck @@ -154,16 +156,16 @@ jobs: # Browsers and their system libraries are preinstalled; keep the tag in step with @playwright/test. container: mcr.microsoft.com/playwright:v1.64.1-noble steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 + - uses: actions/checkout@v5 + - uses: pnpm/action-setup@v5 with: { version: 11 } - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v5 with: { node-version: 22, cache: pnpm } - run: pnpm install --frozen-lockfile - run: pnpm e2e env: HOME: /root - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 if: failure() with: name: playwright-report diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 2d3eede8..02949151 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -18,7 +18,7 @@ jobs: if: github.event.pull_request.user.type != 'Bot' && !github.event.pull_request.draft runs-on: ubuntu-latest steps: - - uses: actions/github-script@v7 + - uses: actions/github-script@v8 with: script: | const pr = context.payload.pull_request; diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9a4af689..1758e67a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,7 +28,7 @@ jobs: release_id: ${{ steps.release.outputs.id }} official_plugin_keys: ${{ steps.plugin-keys.outputs.keys }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: { ref: "${{ env.TAG }}" } - name: Tag matches app version run: | @@ -52,7 +52,7 @@ jobs: echo "keys=$key" >> "$GITHUB_OUTPUT" fi - id: release - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | const tag = process.env.TAG; @@ -99,11 +99,11 @@ jobs: target: x86_64-pc-windows-msvc runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: { ref: "${{ env.TAG }}" } - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v5 with: { version: 11 } - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v5 with: { node-version: 22, cache: pnpm } - uses: dtolnay/rust-toolchain@stable with: { targets: "${{ matrix.target }}" } @@ -173,7 +173,7 @@ jobs: - { runner: macos-latest, target: x86_64-apple-darwin, os: macos, arch: x86_64 } runs-on: ${{ matrix.runner }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: { ref: "${{ env.TAG }}" } - uses: dtolnay/rust-toolchain@stable with: { targets: "${{ matrix.target }}" } @@ -220,7 +220,7 @@ jobs: echo "::warning::PLUGIN_SIGNING_KEY is not set: the official plugins are not published" echo "skip=true" >> "$GITHUB_OUTPUT" fi - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 if: steps.key.outputs.skip != 'true' with: { ref: "${{ env.TAG }}" } - uses: dtolnay/rust-toolchain@stable @@ -229,10 +229,10 @@ jobs: - uses: Swatinem/rust-cache@v2 if: steps.key.outputs.skip != 'true' with: { key: release-plugins } - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v5 if: steps.key.outputs.skip != 'true' with: { version: 11 } - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v5 if: steps.key.outputs.skip != 'true' with: { node-version: 22 } # Builds the web pages; fails when a checked-in component isn't built from these sources. @@ -277,7 +277,7 @@ jobs: needs: [create-release, build] runs-on: ubuntu-latest steps: - - uses: actions/github-script@v7 + - uses: actions/github-script@v8 env: RELEASE_ID: ${{ needs.create-release.outputs.release_id }} with: @@ -337,7 +337,7 @@ jobs: needs: [create-release, build, server, plugins, updater-manifest] runs-on: ubuntu-latest steps: - - uses: actions/github-script@v7 + - uses: actions/github-script@v8 env: RELEASE_ID: ${{ needs.create-release.outputs.release_id }} with: