From ea9314e242a421f890f1c42368097806dd91c2ea Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 30 Aug 2023 10:53:20 +0300 Subject: Speedup CI (#1852) --- .github/workflows/cd.yml | 13 +++++--- .github/workflows/ci.yml | 85 ++++++++++++++++++++++++++++++------------------ 2 files changed, 62 insertions(+), 36 deletions(-) (limited to '.github') diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index b94d859d..f760c1fa 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -14,18 +14,23 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Get version id: get_version run: echo ::set-output name=version::${GITHUB_REF/refs\/tags\//} + - name: Restore cargo cache + uses: Swatinem/rust-cache@v2 + env: + cache-name: ci + with: + shared-key: ${{ matrix.os }}-${{ env.cache-name }}-stable + - name: Install Rust - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@stable with: toolchain: stable - profile: minimal - override: true components: clippy - name: Build diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cabdfe32..bdb0f5c2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,31 +22,23 @@ jobs: continue-on-error: ${{ matrix.rust == 'nightly' }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Restore cargo cache - uses: actions/cache@v2 + uses: Swatinem/rust-cache@v2 env: cache-name: ci with: - path: | - ~/.cargo/registry - ~/.cargo/git - ~/.cargo/bin - target - key: ${{ matrix.os }}-${{ env.cache-name }}-${{ matrix.rust }}-${{ hashFiles('Cargo.lock') }} + shared-key: ${{ matrix.os }}-${{ env.cache-name }}-${{ matrix.rust }} - name: MacOS Workaround if: matrix.os == 'macos-latest' run: cargo clean -p serde_derive -p thiserror - name: Install Rust - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@stable with: toolchain: ${{ matrix.rust }} - default: true - override: true - profile: minimal components: clippy - name: Build Debug @@ -97,15 +89,25 @@ jobs: rust: [nightly, stable, '1.65'] continue-on-error: ${{ matrix.rust == 'nightly' }} steps: - - uses: actions/checkout@master + - uses: actions/checkout@v3 + + - name: Restore cargo cache + uses: Swatinem/rust-cache@v2 + env: + cache-name: ci + with: + key: ubuntu-latest-${{ env.cache-name }}-${{ matrix.rust }} + - name: Install Rust - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@stable with: toolchain: ${{ matrix.rust }} - profile: minimal - default: true - override: true - target: x86_64-unknown-linux-musl + targets: x86_64-unknown-linux-musl + + # The build would fail without manually installing the target. + # https://github.com/dtolnay/rust-toolchain/issues/83 + - name: Manually install target + run: rustup target add x86_64-unknown-linux-musl - name: Setup MUSL run: | @@ -133,14 +135,19 @@ jobs: rust: [nightly, stable, '1.65'] continue-on-error: ${{ matrix.rust == 'nightly' }} steps: - - uses: actions/checkout@master + - uses: actions/checkout@v3 + + - name: Restore cargo cache + uses: Swatinem/rust-cache@v2 + env: + cache-name: ci + with: + key: ubuntu-latest-${{ env.cache-name }}-${{ matrix.rust }} + - name: Install Rust - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@stable with: toolchain: ${{ matrix.rust }} - profile: minimal - default: true - override: true - name: Setup ARM toolchain run: | rustup target add aarch64-unknown-linux-gnu @@ -168,12 +175,19 @@ jobs: name: Lints runs-on: ubuntu-latest steps: - - uses: actions/checkout@master + - uses: actions/checkout@v3 + + - name: Restore cargo cache + uses: Swatinem/rust-cache@v2 + env: + cache-name: ci + with: + key: ubuntu-latest-${{ env.cache-name }}-stable + - name: Install Rust - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@stable with: toolchain: stable - override: true components: rustfmt - run: cargo fmt -- --check @@ -199,12 +213,19 @@ jobs: name: udeps runs-on: ubuntu-latest steps: - - uses: actions/checkout@master + - uses: actions/checkout@v3 + + - name: Restore cargo cache + uses: Swatinem/rust-cache@v2 + env: + cache-name: ci + with: + key: ubuntu-latest-${{ env.cache-name }}-nightly + - name: Install Rust - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@stable with: toolchain: nightly - override: true - name: cargo-udeps run: | @@ -217,8 +238,8 @@ jobs: name: Security audit runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions-rs/audit-check@v1 + - uses: actions/checkout@v3 + - uses: rustsec/audit-check@v1.4.1 with: token: ${{ secrets.GITHUB_TOKEN }} @@ -226,7 +247,7 @@ jobs: name: Changelog Test runs-on: ubuntu-latest steps: - - uses: actions/checkout@master + - uses: actions/checkout@v3 - name: Extract release notes id: extract_release_notes uses: ffurrer2/extract-release-notes@v1 -- cgit v1.2.3