Skip to content

Commit 387ae4f

Browse files
authored
Merge pull request #1578 from jtgeibel/clear-cache-on-ci-when-rustc-version-changes
Run `cargo clean` on CI when the version of rustc changes
2 parents 614b33c + 216f726 commit 387ae4f

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

.travis.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ cache:
1111
cargo: true
1212
directories:
1313
- $HOME/.npm
14-
timeout: 600
14+
# Set timeout to 6 minutes (double the default of 3 minutes)
15+
timeout: 360
1516

1617
env:
1718
global:
@@ -26,6 +27,7 @@ env:
2627
- PERCY_PROJECT=crates-io/crates.io
2728

2829
install:
30+
- script/cargo-clean-on-new-rustc-version.sh
2931
- cargo install --force diesel_cli --vers `cat .diesel_version` --no-default-features --features postgres && export PATH=$HOME/.cargo/bin:$PATH
3032

3133
before_script:
@@ -68,9 +70,6 @@ matrix:
6870
script:
6971
- cargo build
7072
- cargo test
71-
# This portion of the cache is quickly invalidated anyway
72-
before_cache:
73-
- cargo clean
7473

7574
notifications:
7675
email:
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/sh
2+
3+
set -e
4+
5+
stamp_file=target/rustc_version_stamp
6+
current_version=$(rustc --version)
7+
8+
if [ -f $stamp_file ]; then
9+
# Compare the current version against the previous version
10+
if echo "$current_version" | cmp -s $stamp_file -; then
11+
echo "Version of rustc hasn't changed, keeping the cache intact"
12+
else
13+
echo "The version of rustc has changed, running cargo clean"
14+
cargo clean
15+
fi
16+
else
17+
echo "There is no existing version stamp, keeping the cache intact"
18+
fi
19+
20+
# Save the version stamp for next time
21+
mkdir -p target/
22+
echo $current_version > $stamp_file

0 commit comments

Comments
 (0)