ci: 优化 Cargo 构建缓存

- 共享 deb 与 Docker 的 Linux cross 编译缓存
- 为 Windows MSVC 构建添加独立缓存
- 固定 cross 版本以保证缓存一致性
This commit is contained in:
mofeng-git
2026-07-31 09:55:14 +08:00
parent 6bbe137f09
commit 814f23a27c
2 changed files with 24 additions and 2 deletions

View File

@@ -66,8 +66,16 @@ jobs:
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@stable
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
# The Docker workflow builds the same targets with the same Cross images.
shared-key: linux-cross-release
key: ${{ hashFiles('Cross.toml', 'build/cross/Dockerfile.*') }}
cache-all-crates: true
- name: Install cross - name: Install cross
run: cargo install cross --locked run: cargo install cross --version 0.2.5 --locked
- name: Build linux binary - name: Build linux binary
run: bash build/build-images.sh run: bash build/build-images.sh
@@ -127,6 +135,12 @@ jobs:
"TURBOJPEG_LIB_DIR=$env:TURBOJPEG_LIB_DIR" | Out-File -FilePath $env:GITHUB_ENV -Append "TURBOJPEG_LIB_DIR=$env:TURBOJPEG_LIB_DIR" | Out-File -FilePath $env:GITHUB_ENV -Append
"TURBOJPEG_INCLUDE_DIR=$env:TURBOJPEG_INCLUDE_DIR" | Out-File -FilePath $env:GITHUB_ENV -Append "TURBOJPEG_INCLUDE_DIR=$env:TURBOJPEG_INCLUDE_DIR" | Out-File -FilePath $env:GITHUB_ENV -Append
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: windows-msvc-release
key: ${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json') }}
- name: Build Windows exe - name: Build Windows exe
shell: pwsh shell: pwsh
run: .\build\windows\build.ps1 -Configuration release -Package run: .\build\windows\build.ps1 -Configuration release -Package

View File

@@ -42,11 +42,19 @@ jobs:
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@stable
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
# Reuse dependency artifacts produced by the deb job and vice versa.
shared-key: linux-cross-release
key: ${{ hashFiles('Cross.toml', 'build/cross/Dockerfile.*') }}
cache-all-crates: true
- name: Install build dependencies - name: Install build dependencies
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y unzip xz-utils sudo apt-get install -y unzip xz-utils
cargo install cross --locked cargo install cross --version 0.2.5 --locked
- name: Build frontend - name: Build frontend
working-directory: web working-directory: web