1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-27 19:17:43 +00:00

Merge pull request #4486 from sylvestre/sccache-actions

Use sccache to cache build results
This commit is contained in:
Terts Diepraam 2023-03-12 23:39:46 +01:00 committed by GitHub
commit 758e4b0958
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -37,8 +37,6 @@ jobs:
## ToDO: [2021-11-10; rivy] 'Style/deps' needs more informative output and better integration of results into the GHA dashboard ## ToDO: [2021-11-10; rivy] 'Style/deps' needs more informative output and better integration of results into the GHA dashboard
name: Style/deps name: Style/deps
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
# env:
# STYLE_FAIL_ON_FAULT: false # overrides workflow default
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -73,7 +71,6 @@ jobs:
run: | run: |
rustup toolchain install nightly --no-self-update --profile minimal rustup toolchain install nightly --no-self-update --profile minimal
rustup default nightly rustup default nightly
- uses: Swatinem/rust-cache@v2
- name: Install `cargo-udeps` - name: Install `cargo-udeps`
run: cargo install cargo-udeps run: cargo install cargo-udeps
env: env:
@ -93,8 +90,6 @@ jobs:
style_format: style_format:
name: Style/format name: Style/format
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
# env:
# STYLE_FAIL_ON_FAULT: false # overrides workflow default
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -124,7 +119,6 @@ jobs:
## Install `rust` toolchain ## Install `rust` toolchain
rustup toolchain install stable --no-self-update -c rustfmt --profile minimal rustup toolchain install stable --no-self-update -c rustfmt --profile minimal
rustup default stable rustup default stable
- uses: Swatinem/rust-cache@v2
- name: "`cargo fmt` testing" - name: "`cargo fmt` testing"
shell: bash shell: bash
run: | run: |
@ -184,8 +178,9 @@ jobs:
style_lint: style_lint:
name: Style/lint name: Style/lint
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
# env: env:
# STYLE_FAIL_ON_FAULT: false # overrides workflow default SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -195,6 +190,11 @@ jobs:
- { os: windows-latest , features: feat_os_windows } - { os: windows-latest , features: feat_os_windows }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.2
with:
version: "v0.4.0-pre.9"
- name: Initialize workflow variables - name: Initialize workflow variables
id: vars id: vars
shell: bash shell: bash
@ -229,7 +229,6 @@ jobs:
## Install `rust` toolchain ## Install `rust` toolchain
rustup toolchain install stable --no-self-update -c clippy --profile minimal rustup toolchain install stable --no-self-update -c clippy --profile minimal
rustup default stable rustup default stable
- uses: Swatinem/rust-cache@v2
- name: "`cargo clippy` lint testing" - name: "`cargo clippy` lint testing"
shell: bash shell: bash
run: | run: |
@ -244,15 +243,12 @@ jobs:
style_spellcheck: style_spellcheck:
name: Style/spelling name: Style/spelling
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
# env:
# STYLE_FAIL_ON_FAULT: false # overrides workflow default
strategy: strategy:
matrix: matrix:
job: job:
- { os: ubuntu-latest , features: feat_os_unix } - { os: ubuntu-latest , features: feat_os_unix }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2
- name: Initialize workflow variables - name: Initialize workflow variables
id: vars id: vars
shell: bash shell: bash
@ -292,6 +288,9 @@ jobs:
doc_warnings: doc_warnings:
name: Documentation/warnings name: Documentation/warnings
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -304,6 +303,11 @@ jobs:
# - { os: windows-latest , features: feat_os_windows } # - { os: windows-latest , features: feat_os_windows }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.2
with:
version: "v0.4.0-pre.9"
- name: Initialize workflow variables - name: Initialize workflow variables
id: vars id: vars
shell: bash shell: bash
@ -331,7 +335,6 @@ jobs:
## Install `rust` toolchain ## Install `rust` toolchain
rustup toolchain install stable --no-self-update -c clippy --profile minimal rustup toolchain install stable --no-self-update -c clippy --profile minimal
rustup default stable rustup default stable
- uses: Swatinem/rust-cache@v2
- name: "`cargo doc` with warnings" - name: "`cargo doc` with warnings"
shell: bash shell: bash
run: | run: |
@ -347,12 +350,20 @@ jobs:
min_version: min_version:
name: MinRustV # Minimum supported rust version (aka, MinSRV or MSRV) name: MinRustV # Minimum supported rust version (aka, MinSRV or MSRV)
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
strategy: strategy:
matrix: matrix:
job: job:
- { os: ubuntu-latest , features: feat_os_unix } - { os: ubuntu-latest , features: feat_os_unix }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.2
with:
version: "v0.4.0-pre.9"
- name: Initialize workflow variables - name: Initialize workflow variables
id: vars id: vars
shell: bash shell: bash
@ -369,7 +380,6 @@ jobs:
## Install `rust` toolchain (v${{ env.RUST_MIN_SRV }}) ## Install `rust` toolchain (v${{ env.RUST_MIN_SRV }})
rustup toolchain install --no-self-update ${{ env.RUST_MIN_SRV }} --profile minimal rustup toolchain install --no-self-update ${{ env.RUST_MIN_SRV }} --profile minimal
rustup default ${{ env.RUST_MIN_SRV }} rustup default ${{ env.RUST_MIN_SRV }}
- uses: Swatinem/rust-cache@v2
- name: Confirm MinSRV compatible 'Cargo.lock' - name: Confirm MinSRV compatible 'Cargo.lock'
shell: bash shell: bash
run: | run: |
@ -424,7 +434,6 @@ jobs:
## Install `rust` toolchain ## Install `rust` toolchain
rustup toolchain install stable --no-self-update --profile minimal rustup toolchain install stable --no-self-update --profile minimal
rustup default stable rustup default stable
- uses: Swatinem/rust-cache@v2
- name: "`cargo update` testing" - name: "`cargo update` testing"
shell: bash shell: bash
run: | run: |
@ -436,6 +445,9 @@ jobs:
name: Build/Makefile name: Build/Makefile
needs: [ min_version, deps ] needs: [ min_version, deps ]
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -443,12 +455,16 @@ jobs:
- { os: ubuntu-latest , features: feat_os_unix } - { os: ubuntu-latest , features: feat_os_unix }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.2
with:
version: "v0.4.0-pre.9"
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain ## Install `rust` toolchain
rustup toolchain install stable --no-self-update --profile minimal rustup toolchain install stable --no-self-update --profile minimal
rustup default stable rustup default stable
- uses: Swatinem/rust-cache@v2
- name: "`make build`" - name: "`make build`"
shell: bash shell: bash
run: | run: |
@ -470,12 +486,14 @@ jobs:
env: env:
RUST_BACKTRACE: "1" RUST_BACKTRACE: "1"
build_rust_stable: build_rust_stable:
name: Build/stable name: Build/stable
needs: [ min_version, deps ] needs: [ min_version, deps ]
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
timeout-minutes: 90 timeout-minutes: 90
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -485,12 +503,16 @@ jobs:
- { os: windows-latest , features: feat_os_windows } - { os: windows-latest , features: feat_os_windows }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.2
with:
version: "v0.4.0-pre.9"
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain ## Install `rust` toolchain
rustup toolchain install stable --no-self-update --profile minimal rustup toolchain install stable --no-self-update --profile minimal
rustup default stable rustup default stable
- uses: Swatinem/rust-cache@v2
- name: Test - name: Test
run: cargo test ${{ steps.vars.outputs.CARGO_FEATURES_OPTION }} run: cargo test ${{ steps.vars.outputs.CARGO_FEATURES_OPTION }}
env: env:
@ -501,6 +523,9 @@ jobs:
needs: [ min_version, deps ] needs: [ min_version, deps ]
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
timeout-minutes: 90 timeout-minutes: 90
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -510,12 +535,16 @@ jobs:
- { os: windows-latest , features: feat_os_windows } - { os: windows-latest , features: feat_os_windows }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.2
with:
version: "v0.4.0-pre.9"
- name: Install `rust` toolchain - name: Install `rust` toolchain
run: | run: |
## Install `rust` toolchain ## Install `rust` toolchain
rustup toolchain install nightly --no-self-update --profile minimal rustup toolchain install nightly --no-self-update --profile minimal
rustup default nightly rustup default nightly
- uses: Swatinem/rust-cache@v2
- name: Test - name: Test
run: cargo test ${{ steps.vars.outputs.CARGO_FEATURES_OPTION }} run: cargo test ${{ steps.vars.outputs.CARGO_FEATURES_OPTION }}
env: env:
@ -525,6 +554,9 @@ jobs:
name: Binary sizes name: Binary sizes
needs: [ min_version, deps ] needs: [ min_version, deps ]
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -532,6 +564,11 @@ jobs:
- { os: ubuntu-latest , features: feat_os_unix } - { os: ubuntu-latest , features: feat_os_unix }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.2
with:
version: "v0.4.0-pre.9"
- name: Install dependencies - name: Install dependencies
shell: bash shell: bash
run: | run: |
@ -543,7 +580,6 @@ jobs:
## Install `rust` toolchain ## Install `rust` toolchain
rustup toolchain install stable --no-self-update --profile minimal rustup toolchain install stable --no-self-update --profile minimal
rustup default stable rustup default stable
- uses: Swatinem/rust-cache@v2
- name: "`make install`" - name: "`make install`"
shell: bash shell: bash
run: | run: |
@ -579,6 +615,8 @@ jobs:
timeout-minutes: 90 timeout-minutes: 90
env: env:
DOCKER_OPTS: '--volume /etc/passwd:/etc/passwd --volume /etc/group:/etc/group' DOCKER_OPTS: '--volume /etc/passwd:/etc/passwd --volume /etc/group:/etc/group'
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -605,6 +643,11 @@ jobs:
- { os: windows-latest , target: x86_64-pc-windows-msvc , features: feat_os_windows } - { os: windows-latest , target: x86_64-pc-windows-msvc , features: feat_os_windows }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.2
with:
version: "v0.4.0-pre.9"
- name: Initialize workflow variables - name: Initialize workflow variables
id: vars id: vars
shell: bash shell: bash
@ -732,9 +775,6 @@ jobs:
## rust toolchain ~ install ## rust toolchain ~ install
rustup toolchain install --no-self-update ${{ env.RUST_MIN_SRV }} -t ${{ matrix.job.target }} --profile minimal rustup toolchain install --no-self-update ${{ env.RUST_MIN_SRV }} -t ${{ matrix.job.target }} --profile minimal
rustup default ${{ env.RUST_MIN_SRV }} rustup default ${{ env.RUST_MIN_SRV }}
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.job.os }}-${{ matrix.job.target }}
- name: Initialize toolchain-dependent workflow variables - name: Initialize toolchain-dependent workflow variables
id: dep_vars id: dep_vars
shell: bash shell: bash
@ -844,6 +884,9 @@ jobs:
name: Tests/BusyBox test suite name: Tests/BusyBox test suite
needs: [ min_version, deps ] needs: [ min_version, deps ]
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -858,6 +901,10 @@ jobs:
echo "TEST_SUMMARY_FILE=busybox-result.json" >> $GITHUB_OUTPUT echo "TEST_SUMMARY_FILE=busybox-result.json" >> $GITHUB_OUTPUT
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.2
with:
version: "v0.4.0-pre.9"
- name: Install/setup prerequisites - name: Install/setup prerequisites
shell: bash shell: bash
run: | run: |
@ -917,6 +964,9 @@ jobs:
name: Tests/Toybox test suite name: Tests/Toybox test suite
needs: [ min_version, deps ] needs: [ min_version, deps ]
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -933,6 +983,10 @@ jobs:
outputs TEST_SUMMARY_FILE outputs TEST_SUMMARY_FILE
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.2
with:
version: "v0.4.0-pre.9"
- name: rust toolchain ~ install - name: rust toolchain ~ install
run: | run: |
## rust toolchain ~ install ## rust toolchain ~ install
@ -1010,8 +1064,15 @@ jobs:
arch: [x86] # , arm64-v8a arch: [x86] # , arm64-v8a
env: env:
TERMUX: v0.118.0 TERMUX: v0.118.0
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.2
with:
version: "v0.4.0-pre.9"
- name: AVD cache - name: AVD cache
uses: actions/cache@v3 uses: actions/cache@v3
id: avd-cache id: avd-cache
@ -1065,9 +1126,15 @@ jobs:
- { os: macos-12 , features: unix } ## GHA MacOS-11.0 VM won't have VirtualBox; refs: <https://github.com/actions/virtual-environments/issues/4060> , <https://github.com/actions/virtual-environments/pull/4010> - { os: macos-12 , features: unix } ## GHA MacOS-11.0 VM won't have VirtualBox; refs: <https://github.com/actions/virtual-environments/issues/4060> , <https://github.com/actions/virtual-environments/pull/4010>
env: env:
mem: 4096 mem: 4096
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.2
with:
version: "v0.4.0-pre.9"
- name: Prepare, build and test - name: Prepare, build and test
## spell-checker:ignore (ToDO) sshfs usesh vmactions ## spell-checker:ignore (ToDO) sshfs usesh vmactions
uses: vmactions/freebsd-vm@v0.3.0 uses: vmactions/freebsd-vm@v0.3.0
@ -1132,6 +1199,9 @@ jobs:
name: Code Coverage name: Code Coverage
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
timeout-minutes: 90 timeout-minutes: 90
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -1141,6 +1211,11 @@ jobs:
- { os: windows-latest , features: windows } - { os: windows-latest , features: windows }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.2
with:
version: "v0.4.0-pre.9"
# - name: Reattach HEAD ## may be needed for accurate code coverage info # - name: Reattach HEAD ## may be needed for accurate code coverage info
# run: git checkout ${{ github.head_ref }} # run: git checkout ${{ github.head_ref }}
- name: Initialize workflow variables - name: Initialize workflow variables
@ -1194,7 +1269,6 @@ jobs:
## rust toolchain ~ install ## rust toolchain ~ install
rustup toolchain install ${{ steps.vars.outputs.TOOLCHAIN }} --no-self-update --profile minimal rustup toolchain install ${{ steps.vars.outputs.TOOLCHAIN }} --no-self-update --profile minimal
rustup default ${{ steps.vars.outputs.TOOLCHAIN }} rustup default ${{ steps.vars.outputs.TOOLCHAIN }}
- uses: Swatinem/rust-cache@v2
- name: Initialize toolchain-dependent workflow variables - name: Initialize toolchain-dependent workflow variables
id: dep_vars id: dep_vars
shell: bash shell: bash
@ -1260,3 +1334,4 @@ jobs:
flags: ${{ steps.vars.outputs.CODECOV_FLAGS }} flags: ${{ steps.vars.outputs.CODECOV_FLAGS }}
name: codecov-umbrella name: codecov-umbrella
fail_ci_if_error: false fail_ci_if_error: false