Speedup CI (#842)

- Remove `tools: cross` input to `actions/just-setup`
    since we use `cargo-zigbuild` for cross compiling instead of `cross-rs`
    now.
 - Only install `cargo-zigbuild` in `just ci-install-deps` if `JUST_USE_CARGO_ZIGBUILD` is enabled
 - Include hash of `rustc -vV` in `build-cache`
    Switching between different versions of `rustc` will cause all crates to be
    rebuilt using new `rustc`.
 - Replace input `cache` with `index-cache` and `build-cache` in `actions/just-setup`
    for better control of caching behavior
 -  Reuse workflow `test`'s `build-cache` in workflow `lint`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2023-03-02 13:09:25 +11:00 committed by GitHub
parent 599bcaf333
commit c8b92b1985
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 13 deletions

View file

@ -4,8 +4,13 @@ inputs:
description: Extra tools
required: false
default: ""
cache:
description: Enable caches
index-cache:
description: Enable index cache
required: true
default: true
type: boolean
build-cache:
description: Enable build cache
required: true
default: true
type: boolean
@ -27,7 +32,7 @@ runs:
with:
tool: just,${{ inputs.tools }}
- if: inputs.cache
- if: inputs.index-cache
name: Configure index cache
uses: actions/cache@v3
with:
@ -40,10 +45,18 @@ runs:
${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}-
${{ runner.os }}-cargo-index-
- if: inputs.cache
- name: Install rust toolchains
run: just toolchain
shell: bash
- name: rustc version
run: rustc -vV | tee /tmp/rustc-version
shell: bash
- if: inputs.build-cache
name: Configure build cache
uses: actions/cache@v3
with:
path: |
target/
key: ${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ inputs.cache-suffix }}
key: ${{ runner.os }}-cargo-build-${{ hashFiles('/tmp/rustc-version') }}-${{ hashFiles('**/Cargo.lock') }}-${{ inputs.cache-suffix }}

View file

@ -53,7 +53,6 @@ jobs:
with:
cache-suffix: ${{ env.CARGO_BUILD_TARGET }}
- run: just toolchain
- run: just ci-install-deps
- run: just test
env:
@ -78,10 +77,8 @@ jobs:
- uses: actions/checkout@v3
- uses: ./.github/actions/just-setup
with:
tools: cross
cache-suffix: ${{ env.CARGO_BUILD_TARGET }}
- run: just toolchain
- run: just ci-install-deps
- run: just check
@ -96,19 +93,26 @@ jobs:
with:
cache-suffix: ${{ env.CARGO_BUILD_TARGET }}
- run: just toolchain
- run: just check
lint:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
include:
- target: x86_64-apple-darwin
os: macos-latest
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
- target: x86_64-pc-windows-msvc
os: windows-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/just-setup
with:
cache-suffix: ${{ matrix.target }}
- run: just toolchain rustfmt,clippy
- run: just ci-install-deps

View file

@ -42,7 +42,6 @@ jobs:
- uses: actions/checkout@v3
- uses: ./.github/actions/just-setup
with:
tools: cross
cache-suffix: release-${{ matrix.t }}
- run: just toolchain rust-src
@ -87,7 +86,8 @@ jobs:
- uses: actions/checkout@v3
- uses: ./.github/actions/just-setup
with:
cache: false
index-cache: false
build-cache: false
- uses: actions/download-artifact@v3
with: