Skip to content

Commit 7a53f0f

Browse files
authored
Merge pull request #1537 from rust-lang/senekor/snapshot-tests-in-ci
Add snapshot tests in CI
2 parents 0805190 + 32d6ed8 commit 7a53f0f

File tree

3 files changed

+27
-3
lines changed

3 files changed

+27
-3
lines changed

Diff for: .github/workflows/snapshot_tests.yml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Snapshot tests
2+
on:
3+
pull_request
4+
5+
env:
6+
# renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust
7+
RUST_VERSION: 1.85.1
8+
9+
jobs:
10+
snapshot-tests:
11+
runs-on: ubuntu-latest
12+
if: contains(github.event.pull_request.body, 'RUN_SNAPSHOT_TESTS')
13+
steps:
14+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
15+
- run: rustup override set ${{ env.RUST_VERSION }}
16+
- uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8
17+
18+
- run: git fetch --depth 2
19+
- run: git checkout origin/master
20+
- name: Generate good snapshots
21+
run: INSTA_OUTPUT=none INSTA_UPDATE=always cargo test -- --include-ignored
22+
- run: git checkout $GITHUB_SHA # merge of master+branch
23+
- run: cargo test -- --include-ignored

Diff for: README.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,9 @@ release = true # (to be only used for official posts about Rust releases announc
6060

6161
If you're making changes to how the site is generated, you may want to check the impact your changes have on the output.
6262
For this purpose, there is a setup to do snapshot testing over the entire output directory.
63-
It's not run in CI, because the number of snapshots is too large.
64-
But you can run these tests locally as needed.
63+
64+
To run these tests in CI, add the string `RUN_SNAPSHOT_TESTS` to the PR description.
65+
You can also run these tests locally for a faster feedback cycle:
6566

6667
- Make sure you have [cargo-insta](https://insta.rs/docs/quickstart/) installed.
6768

Diff for: src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ pub fn main() -> eyre::Result<()> {
305305

306306
#[test]
307307
fn snapshot() {
308-
std::fs::remove_dir_all(concat!(env!("CARGO_MANIFEST_DIR"), "/site")).unwrap();
308+
let _ = std::fs::remove_dir_all(concat!(env!("CARGO_MANIFEST_DIR"), "/site"));
309309
main().unwrap();
310310
let timestamped_files = ["releases.json", "feed.xml"];
311311
let inexplicably_non_deterministic_files = ["images/2023-08-rust-survey-2022/experiences.png"];

0 commit comments

Comments
 (0)