diff --git a/.github/actions/just-setup/action.yml b/.github/actions/just-setup/action.yml index 3cecba1e..2d169960 100644 --- a/.github/actions/just-setup/action.yml +++ b/.github/actions/just-setup/action.yml @@ -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 }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3de12b55..e28d9767 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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 diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index f81c2c78..e05f04f1 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -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: diff --git a/justfile b/justfile index 34ffa2d7..30e25fde 100644 --- a/justfile +++ b/justfile @@ -151,7 +151,7 @@ ci-apt-deps := if target == "x86_64-unknown-linux-gnu" { "liblzma-dev libzip-dev [linux] ci-install-deps: if [ -n "{{ci-apt-deps}}" ]; then sudo apt update && sudo apt install -y --no-install-recommends {{ci-apt-deps}}; fi - pip3 install cargo-zigbuild + if [ -n "{{use-cargo-zigbuild}}" ]; then pip3 install cargo-zigbuild; fi [macos] [windows]