Skip to content
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

Support for trybuild and similar macro testing tools #168

Merged
merged 3 commits into from
Sep 12, 2023

Conversation

neysofu
Copy link
Contributor

@neysofu neysofu commented Aug 26, 2023

https://github.com/dtolnay/trybuild is a Rust testing utility that invokes rustc on user-provided source files and tests whether they run successfully or fail to compile. Given how popular it is in the ecosystem, and how easy it would be to support it, I think it makes sense to introduce some logic to handle this correctly. This PR adds support for trybuild and a few other crates in the category:

  • target/tests/target for kaos and macrotest;
  • target/tests/trybuild for trybuild.

As far as I know tests is not used by any other popular crates, so there should be no conflicts. These are quite ordinary nested target directories and the code changes are trivial. I might need some help with the testing, though – not sure how the current setup works. I'm allowing edits by maintainers so you can push directly to this branch, if you so prefer, I don't mind.

Relevant issues in other repositories:

Thank you so much for the action, by the way! I use it a bunch 😄

@neysofu
Copy link
Contributor Author

neysofu commented Sep 12, 2023

Hi @Swatinem, let me know if I can assist with the review in any way! 😄

Copy link
Owner

@Swatinem Swatinem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe that should do the trick.
There isn’t really a lot of testing going on with rust-cache except running various cargo test variants to see if things are properly cached or not.

Signed-off-by: Filippo Costa <filippo@neysofu.me>
@neysofu
Copy link
Contributor Author

neysofu commented Sep 12, 2023

Thanks for the review! I had to fix CI (forgot to run npm run prepare), should pass now.

@Swatinem
Copy link
Owner

However the caching does not fully work I believe:
https://github.com/Swatinem/rust-cache/actions/runs/6162180271/job/16723178553?pr=168
This is still compiling the world as part of the trybuild test.

@neysofu
Copy link
Contributor Author

neysofu commented Sep 12, 2023

I suspect it's because the first run didn't include the changes to dist/, so it deleted tests/trybuild resulting in a rebuild.

Can we try deleting the cache and doing 2 runs of simple.yml (one uncached and the other hopefully cached)? If we still see a re-build then yeah, we have a problem.

@Swatinem
Copy link
Owner

Oh yeah indeed, that would explain it.

Let me delete the cache and rerun this as you suggested.

@Swatinem Swatinem merged commit 67c46e7 into Swatinem:master Sep 12, 2023
22 checks passed
@Swatinem
Copy link
Owner

Works like a charm, thanks!

@neysofu neysofu deleted the filippo/trybuild branch September 12, 2023 18:52
renovate bot referenced this pull request in 4m-mazi/gh-test Sep 17, 2023
[![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.6.2` -> `v2.7.0` |

---

### Release Notes

<details>
<summary>Swatinem/rust-cache (Swatinem/rust-cache)</summary>

###
[`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
[@&#8203;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
[@&#8203;neysofu](https://github.com/neysofu) in
[https://github.com/Swatinem/rust-cache/pull/168](https://github.com/Swatinem/rust-cache/pull/168)

#### New Contributors

- [@&#8203;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)
- [@&#8203;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

</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:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
github-merge-queue bot referenced this pull request in knope-dev/knope Jan 12, 2024
[![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
[@&#8203;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 [@&#8203;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

- [@&#8203;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)
- [@&#8203;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
[@&#8203;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
[@&#8203;neysofu](https://github.com/neysofu) in
[https://github.com/Swatinem/rust-cache/pull/168](https://github.com/Swatinem/rust-cache/pull/168)

##### New Contributors

- [@&#8203;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)
- [@&#8203;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
[@&#8203;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
[@&#8203;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

- [@&#8203;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
[@&#8203;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
[@&#8203;NobodyXu](https://github.com/NobodyXu) in
[https://github.com/Swatinem/rust-cache/pull/149](https://github.com/Swatinem/rust-cache/pull/149)

##### New Contributors

- [@&#8203;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>
zharinov referenced this pull request in zharinov/verver Feb 28, 2024
[![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
[@&#8203;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 [@&#8203;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

- [@&#8203;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)
- [@&#8203;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
[@&#8203;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
[@&#8203;neysofu](https://github.com/neysofu) in
[https://github.com/Swatinem/rust-cache/pull/168](https://github.com/Swatinem/rust-cache/pull/168)

##### New Contributors

- [@&#8203;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)
- [@&#8203;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
[@&#8203;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
[@&#8203;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

- [@&#8203;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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants