mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-24 02:31:13 +08:00
53 lines
1.9 KiB
YAML
53 lines
1.9 KiB
YAML
name: Setup tools (sccache / nextest)
|
||
|
||
# 工具缓存:nextest 缓存到用户可写的 ~/oxide-tools-cache,恢复后 cp 到 ~/.cargo/bin。
|
||
# sccache 改用官方 sccache-action 安装,它带 GitHub Actions 缓存后端;apt 版 sccache
|
||
# 无该后端,本地磁盘缓存每个 job 用完即弃、跨 run 零命中,等于只付包装开销。
|
||
# mold 目前在 CI 统一禁用(见下方配置步骤),故不安装。
|
||
description: 恢复 nextest 工具缓存;安装 nextest 与 sccache(GHA 缓存后端)
|
||
|
||
runs:
|
||
using: composite
|
||
steps:
|
||
- name: Restore tool cache
|
||
id: tool-cache
|
||
uses: actions/cache/restore@v6
|
||
with:
|
||
path: ~/oxide-tools-cache
|
||
key: oxide-tools-ubuntu-v2
|
||
|
||
- name: Install nextest (cache miss)
|
||
if: steps.tool-cache.outputs.cache-hit != 'true'
|
||
shell: bash
|
||
run: |
|
||
mkdir -p "$HOME/oxide-tools-cache"
|
||
curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C "$HOME/oxide-tools-cache"
|
||
|
||
- name: Install nextest to cargo bin
|
||
shell: bash
|
||
run: cp "$HOME/oxide-tools-cache/cargo-nextest" "$HOME/.cargo/bin/"
|
||
|
||
- name: Setup sccache
|
||
uses: mozilla-actions/sccache-action@v0.0.11
|
||
|
||
- name: Configure build cache
|
||
shell: bash
|
||
run: |
|
||
# CI 链接器统一走默认 lld:sccache 包装 rustc 时,链接子进程定位不到 mold、
|
||
# 回退默认 ld 报 cannot find ld。只删工作副本的 mold 行,本地提交的 config
|
||
# 保留 mold 提速。
|
||
sed -i '/link-arg=-fuse-ld=mold/d' .cargo/config.toml
|
||
|
||
- name: Verify tools in PATH
|
||
shell: bash
|
||
run: |
|
||
which cargo-nextest sccache
|
||
sccache --version
|
||
|
||
- name: Save tool cache
|
||
if: steps.tool-cache.outputs.cache-hit != 'true'
|
||
uses: actions/cache/save@v6
|
||
with:
|
||
path: ~/oxide-tools-cache
|
||
key: oxide-tools-ubuntu-v2
|