-
-
Notifications
You must be signed in to change notification settings - Fork 112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add BuildJet Option #154
Add BuildJet Option #154
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is surprisingly straight forward, thanks for the work!
Just some minor nits, otherwise this is good to go.
Another question is about testing: Is buildjet available transparently for open source and github-hosted runners? (aka this repo) |
Wow, this is cool! I think S3 cache can be added in a similar manner: there is a number of forks of the |
Updated to allow for more extensibility, added a test. |
4183cd5
to
1591ab5
Compare
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [Swatinem/rust-cache](https://github.com/Swatinem/rust-cache) | action | minor | `v2.5.1` -> `v2.6.0` | --- ### Release Notes <details> <summary>Swatinem/rust-cache (Swatinem/rust-cache)</summary> ### [`v2.6.0`](https://github.com/Swatinem/rust-cache/releases/tag/v2.6.0) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.5.1...v2.6.0) ##### What's Changed - Add "buildjet" as a second `cache-provider` backend [@​joroshiba](https://github.com/joroshiba) in [https://github.com/Swatinem/rust-cache/pull/154](https://github.com/Swatinem/rust-cache/pull/154) - Clean up sparse registry index. - Do not clean up src of `-sys` crates. - Remove `.cargo/credentials.toml` before saving. ##### New Contributors - [@​joroshiba](https://github.com/joroshiba) made their first contribution in [https://github.com/Swatinem/rust-cache/pull/154](https://github.com/Swatinem/rust-cache/pull/154) **Full Changelog**: Swatinem/rust-cache@v2.5.1...v2.6.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/Mogyuchi/gh-test). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40MC4zIiwidXBkYXRlZEluVmVyIjoiMzYuNDAuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [Swatinem/rust-cache](https://github.com/Swatinem/rust-cache) | minor | `v2` -> `v2.7.2` | --- ### Release Notes <details> <summary>Swatinem/rust-cache (Swatinem/rust-cache)</summary> ### [`v2.7.2`](https://github.com/Swatinem/rust-cache/releases/tag/v2.7.2) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.7.0...v2.7.2) #### What's Changed - Update action runtime to `node20` by [@​rhysd](https://github.com/rhysd) in [https://github.com/Swatinem/rust-cache/pull/175](https://github.com/Swatinem/rust-cache/pull/175) - Only key by `Cargo.toml` and `Cargo.lock` files of workspace members by [@​max-heller](https://github.com/max-heller) in [https://github.com/Swatinem/rust-cache/pull/180](https://github.com/Swatinem/rust-cache/pull/180) #### New Contributors - [@​rhysd](https://github.com/rhysd) made their first contribution in [https://github.com/Swatinem/rust-cache/pull/175](https://github.com/Swatinem/rust-cache/pull/175) - [@​max-heller](https://github.com/max-heller) made their first contribution in [https://github.com/Swatinem/rust-cache/pull/180](https://github.com/Swatinem/rust-cache/pull/180) **Full Changelog**: Swatinem/rust-cache@v2.7.1...v2.7.2 ### [`v2.7.0`](https://github.com/Swatinem/rust-cache/releases/tag/v2.7.0) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.6.2...v2.7.0) ##### What's Changed - Fix save-if documentation in readme by [@​rukai](https://github.com/rukai) in [https://github.com/Swatinem/rust-cache/pull/166](https://github.com/Swatinem/rust-cache/pull/166) - Support for `trybuild` and similar macro testing tools by [@​neysofu](https://github.com/neysofu) in [https://github.com/Swatinem/rust-cache/pull/168](https://github.com/Swatinem/rust-cache/pull/168) ##### New Contributors - [@​rukai](https://github.com/rukai) made their first contribution in [https://github.com/Swatinem/rust-cache/pull/166](https://github.com/Swatinem/rust-cache/pull/166) - [@​neysofu](https://github.com/neysofu) made their first contribution in [https://github.com/Swatinem/rust-cache/pull/168](https://github.com/Swatinem/rust-cache/pull/168) **Full Changelog**: Swatinem/rust-cache@v2.6.2...v2.7.0 ### [`v2.6.2`](https://github.com/Swatinem/rust-cache/releases/tag/v2.6.2) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.6.1...v2.6.2) ##### What's Changed - dep: Use `smol-toml` instead of `toml` by [@​NobodyXu](https://github.com/NobodyXu) in [https://github.com/Swatinem/rust-cache/pull/164](https://github.com/Swatinem/rust-cache/pull/164) **Full Changelog**: Swatinem/rust-cache@v2...v2.6.2 ### [`v2.6.1`](https://github.com/Swatinem/rust-cache/releases/tag/v2.6.1) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.6.0...v2.6.1) - Fix hash contributions of `Cargo.lock`/`Cargo.toml` files. ### [`v2.6.0`](https://github.com/Swatinem/rust-cache/releases/tag/v2.6.0) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.5.1...v2.6.0) ##### What's Changed - Add "buildjet" as a second `cache-provider` backend [@​joroshiba](https://github.com/joroshiba) in [https://github.com/Swatinem/rust-cache/pull/154](https://github.com/Swatinem/rust-cache/pull/154) - Clean up sparse registry index. - Do not clean up src of `-sys` crates. - Remove `.cargo/credentials.toml` before saving. ##### New Contributors - [@​joroshiba](https://github.com/joroshiba) made their first contribution in [https://github.com/Swatinem/rust-cache/pull/154](https://github.com/Swatinem/rust-cache/pull/154) **Full Changelog**: Swatinem/rust-cache@v2.5.1...v2.6.0 ### [`v2.5.1`](https://github.com/Swatinem/rust-cache/releases/tag/v2.5.1) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.5.0...v2.5.1) - Fix hash contribution of `Cargo.lock`. ### [`v2.5.0`](https://github.com/Swatinem/rust-cache/releases/tag/v2.5.0) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.4.0...v2.5.0) ##### What's Changed - feat: Rm workspace crates version before caching by [@​NobodyXu](https://github.com/NobodyXu) in [https://github.com/Swatinem/rust-cache/pull/147](https://github.com/Swatinem/rust-cache/pull/147) - feat: Add hash of `.cargo/config.toml` to key by [@​NobodyXu](https://github.com/NobodyXu) in [https://github.com/Swatinem/rust-cache/pull/149](https://github.com/Swatinem/rust-cache/pull/149) ##### New Contributors - [@​NobodyXu](https://github.com/NobodyXu) made their first contribution in [https://github.com/Swatinem/rust-cache/pull/147](https://github.com/Swatinem/rust-cache/pull/147) **Full Changelog**: Swatinem/rust-cache@v2.4.0...v2.5.0 ### [`v2.4.0`](https://github.com/Swatinem/rust-cache/releases/tag/v2.4.0) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.3.0...v2.4.0) - Fix cache key stability. - Use 8 character hash components to reduce the key length, making it more readable. ### [`v2.3.0`](https://github.com/Swatinem/rust-cache/releases/tag/v2.3.0) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.2.1...v2.3.0) - Add `cache-all-crates` option, which enables caching of crates installed by workflows. - Add installed packages to cache key, so changes to workflows that install rust tools are detected and cached properly. - Fix cache restore failures due to upstream bug. - Fix `EISDIR` error due to globed directories. - Update runtime `@actions/cache`, `@actions/io` and dev `typescript` dependencies. - Update `npm run prepare` so it creates distribution files with the right line endings. ### [`v2.2.1`](https://github.com/Swatinem/rust-cache/releases/tag/v2.2.1) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.2.0...v2.2.1) - Update `@actions/cache` dependency to fix usage of `zstd` compression. ### [`v2.2.0`](https://github.com/Swatinem/rust-cache/releases/tag/v2.2.0) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.1.0...v2.2.0) - Add new `save-if` option to always restore, but only conditionally save the cache. ### [`v2.1.0`](https://github.com/Swatinem/rust-cache/releases/tag/v2.1.0) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.0.2...v2.1.0) - Only hash `Cargo.{lock,toml}` files in the configured workspace directories. ### [`v2.0.2`](https://github.com/Swatinem/rust-cache/releases/tag/v2.0.2) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.0.1...v2.0.2) - Avoid calling cargo metadata on pre-cleanup. - Added `prefix-key`, `cache-directories` and `cache-targets` options. ### [`v2.0.1`](https://github.com/Swatinem/rust-cache/releases/tag/v2.0.1) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2...v2.0.1) - Primarily just updating dependencies to fix GitHub deprecation notices. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/knope-dev/knope). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [Swatinem/rust-cache](https://github.com/Swatinem/rust-cache) | action | minor | `v2.5.1` -> `v2.7.3` | --- ### Release Notes <details> <summary>Swatinem/rust-cache (Swatinem/rust-cache)</summary> ### [`v2.7.3`](https://github.com/Swatinem/rust-cache/releases/tag/v2.7.3) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.7.2...v2.7.3) - Work around upstream problem that causes cache saving to hang for minutes. **Full Changelog**: Swatinem/rust-cache@v2.7.2...v2.7.3 ### [`v2.7.2`](https://github.com/Swatinem/rust-cache/releases/tag/v2.7.2) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.7.1...v2.7.2) ##### What's Changed - Update action runtime to `node20` by [@​rhysd](https://github.com/rhysd) in [https://github.com/Swatinem/rust-cache/pull/175](https://github.com/Swatinem/rust-cache/pull/175) - Only key by `Cargo.toml` and `Cargo.lock` files of workspace members by [@​max-heller](https://github.com/max-heller) in [https://github.com/Swatinem/rust-cache/pull/180](https://github.com/Swatinem/rust-cache/pull/180) ##### New Contributors - [@​rhysd](https://github.com/rhysd) made their first contribution in [https://github.com/Swatinem/rust-cache/pull/175](https://github.com/Swatinem/rust-cache/pull/175) - [@​max-heller](https://github.com/max-heller) made their first contribution in [https://github.com/Swatinem/rust-cache/pull/180](https://github.com/Swatinem/rust-cache/pull/180) **Full Changelog**: Swatinem/rust-cache@v2.7.1...v2.7.2 ### [`v2.7.1`](https://github.com/Swatinem/rust-cache/compare/v2.7.0...v2.7.1) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.7.0...v2.7.1) ### [`v2.7.0`](https://github.com/Swatinem/rust-cache/releases/tag/v2.7.0) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.6.2...v2.7.0) ##### What's Changed - Fix save-if documentation in readme by [@​rukai](https://github.com/rukai) in [https://github.com/Swatinem/rust-cache/pull/166](https://github.com/Swatinem/rust-cache/pull/166) - Support for `trybuild` and similar macro testing tools by [@​neysofu](https://github.com/neysofu) in [https://github.com/Swatinem/rust-cache/pull/168](https://github.com/Swatinem/rust-cache/pull/168) ##### New Contributors - [@​rukai](https://github.com/rukai) made their first contribution in [https://github.com/Swatinem/rust-cache/pull/166](https://github.com/Swatinem/rust-cache/pull/166) - [@​neysofu](https://github.com/neysofu) made their first contribution in [https://github.com/Swatinem/rust-cache/pull/168](https://github.com/Swatinem/rust-cache/pull/168) **Full Changelog**: Swatinem/rust-cache@v2.6.2...v2.7.0 ### [`v2.6.2`](https://github.com/Swatinem/rust-cache/releases/tag/v2.6.2) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.6.1...v2.6.2) ##### What's Changed - dep: Use `smol-toml` instead of `toml` by [@​NobodyXu](https://github.com/NobodyXu) in [https://github.com/Swatinem/rust-cache/pull/164](https://github.com/Swatinem/rust-cache/pull/164) **Full Changelog**: Swatinem/rust-cache@v2...v2.6.2 ### [`v2.6.1`](https://github.com/Swatinem/rust-cache/releases/tag/v2.6.1) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.6.0...v2.6.1) - Fix hash contributions of `Cargo.lock`/`Cargo.toml` files. ### [`v2.6.0`](https://github.com/Swatinem/rust-cache/releases/tag/v2.6.0) [Compare Source](https://github.com/Swatinem/rust-cache/compare/v2.5.1...v2.6.0) ##### What's Changed - Add "buildjet" as a second `cache-provider` backend [@​joroshiba](https://github.com/joroshiba) in [https://github.com/Swatinem/rust-cache/pull/154](https://github.com/Swatinem/rust-cache/pull/154) - Clean up sparse registry index. - Do not clean up src of `-sys` crates. - Remove `.cargo/credentials.toml` before saving. ##### New Contributors - [@​joroshiba](https://github.com/joroshiba) made their first contribution in [https://github.com/Swatinem/rust-cache/pull/154](https://github.com/Swatinem/rust-cache/pull/154) **Full Changelog**: Swatinem/rust-cache@v2.5.1...v2.6.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/zharinov/verver). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzcuMTI3LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
When using self hosted runners, or BuildJet, using the default GH cache can be slow (I've seen as slow as 5mb/s). Using BuildJet cache has been reliably faster for me in these scenarios (consistently 100mb/s). This PR adds an option which allow users to switch back and forth.
The changes for the drop in are based in part on BuildJet's own action