diff --git a/.github/workflows/rust-cache.yml b/.github/workflows/rust-cache.yml new file mode 100644 index 0000000..1e41a94 --- /dev/null +++ b/.github/workflows/rust-cache.yml @@ -0,0 +1,32 @@ +name: rust-cache +on: + workflow_call: + inputs: + runner: + required: true + type: string + key: + required: true + type: string + restore-keys: + required: false + type: string + +jobs: + cache: + runs-on: ${{ inputs.runner }} + steps: + - uses: actions/checkout@v4 + - name: "Cache cargo" + id: cache-cargo + uses: "actions/cache@v4" + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + lib/target/ + key: ${{ inputs.key }} + restore-keys: ${{ inputs.restore-keys }} + diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7858035..b235c20 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,57 +11,45 @@ env: jobs: test-linux: runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - run: rustup toolchain install stable --profile minimal + uses: - name: "Cache cargo" id: cache-cargo - uses: "actions/cache@v4" + uses: "./.github/workflows/rust-cache.yml" with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - lib/target/ + runner: ubuntu-latest key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} restore-keys: ${{ runner.os }}-cargo- + steps: + - uses: actions/checkout@v4 + - run: rustup toolchain install stable --profile minimal - uses: extractions/setup-just@v2 - run: just test test-macos: runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - - run: rustup toolchain install stable --profile minimal + uses: - name: "Cache cargo" id: cache-cargo - uses: "actions/cache@v4" + uses: "./.github/workflows/rust-cache.yml" with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - lib/target/ + runner: macos-latest key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} restore-keys: ${{ runner.os }}-cargo- + steps: + - uses: actions/checkout@v4 + - run: rustup toolchain install stable --profile minimal - uses: extractions/setup-just@v2 - run: just test test-windows: runs-on: windows-latest - steps: - - uses: actions/checkout@v4 + uses: - name: "Cache cargo" id: cache-cargo - uses: "actions/cache@v4" + uses: "./.github/workflows/rust-cache.yml" with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - lib/target/ + runner: windows-latest key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} restore-keys: ${{ runner.os }}-cargo- + steps: + - uses: actions/checkout@v4 - uses: extractions/setup-just@v2 - run: just test