cargo-semver-checks/.github/workflows/test-cache.yml
Mieszko Grodzicki 8b981cde1a
Add input exclude, allow list in package (#40)
* Add exclude, allow lists in package

* Add test for input exclude

* Second dummy crate in test workspace

* New tests

* Fix cache key

* Forgot about flat()

* Reflect changes in docs

* New key in cache test

* Shorter job name

* Allowed to fail -> expected to fail

* Update README.md

Co-authored-by: Predrag Gruevski <2348618+obi1kenobi@users.noreply.github.com>

* Hash inputs in cache key

* Update cache test

* Update README

---------

Co-authored-by: Predrag Gruevski <2348618+obi1kenobi@users.noreply.github.com>
2023-04-23 14:24:06 -04:00

112 lines
4.2 KiB
YAML

name: Test rustdoc caching
# Assumes that the latest published normal version of `ref_slice` not greater
# than 1.2.1 is 1.2.1 itself.
on:
workflow_call:
env:
RUST_BACKTRACE: 1
jobs:
test-cache-exists-shared:
name: Check if the cache exists after running the action with shared-key
runs-on: ubuntu-latest
steps:
- name: Checkout the test repository and test with patch change and patch version bump
uses: actions/checkout@v3
with:
path: 'ref_slice'
repository: mgr0dzicki/cargo-semver-action-ref-slice
ref: patch_change
- name: Checkout the action
uses: actions/checkout@v3
with:
path: action
- name: Run the action
uses: ./action/
with:
package: ref_slice
manifest-path: 'ref_slice/Cargo.toml'
shared-key: testkey
prefix-key: testprefix
- name: Check if the cache directory exists
run: |
if ! grep -q "ref_slice-1.2.1/src/lib.rs" "semver-checks/target/semver-checks/cache/registry-ref_slice-1_2_1.json"; then
echo "Non-existent or invalid cache file!"
exit 1
fi
- name: Move the cache created by the action
run: |
mv semver-checks/target/semver-checks/cache action-cache
- name: Generate primary cache key
id: generate_key
run: |
RUSTC=$(rustc --version | sed -e 's/\s\+/-/g')
SEMVER_CHECKS=$(cargo semver-checks --version | sed -e 's/\s\+/-/g')
echo "KEY=testprefix-testkey-linux-$RUSTC-$SEMVER_CHECKS-da39a3ee5e6b4b0d3255bfef95601890afd80709-semver-checks-rustdoc" >> $GITHUB_OUTPUT
- name: Download saved cache
uses: actions/cache/restore@v3
with:
path: ${{ github.workspace }}/semver-checks/target/semver-checks/cache
fail-on-cache-miss: true
key: not_a_prefix
restore-keys: |
${{ steps.generate_key.outputs.KEY }}
- name: Compare local and downloaded cache files
run: |
if ! diff -r "semver-checks/target/semver-checks/cache" "action-cache"; then
echo "Downloaded cache does not match the local version!"
exit 1
fi
test-cache-exists-default:
name: Check if the cache exists after running the action without shared-key
runs-on: ubuntu-latest
steps:
- name: Checkout the test repository and test with patch change and patch version bump
uses: actions/checkout@v3
with:
path: 'ref_slice'
repository: mgr0dzicki/cargo-semver-action-ref-slice
ref: patch_change
- name: Checkout the action
uses: actions/checkout@v3
with:
path: action
- name: Run the action
uses: ./action/
with:
package: ref_slice
manifest-path: 'ref_slice/Cargo.toml'
prefix-key: testprefix
- name: Check if the cache directory exists
run: |
if ! grep -q "ref_slice-1.2.1/src/lib.rs" "semver-checks/target/semver-checks/cache/registry-ref_slice-1_2_1.json"; then
echo "Non-existent or invalid cache file!"
exit 1
fi
- name: Move the cache created by the action
run: |
mv semver-checks/target/semver-checks/cache action-cache
- name: Generate primary cache key
id: generate_key
run: |
RUSTC=$(rustc --version | sed -e 's/\s\+/-/g')
SEMVER_CHECKS=$(cargo semver-checks --version | sed -e 's/\s\+/-/g')
echo "KEY=testprefix-test-cache-exists-default-d45618ed191f0a73-linux-$RUSTC-$SEMVER_CHECKS-da39a3ee5e6b4b0d3255bfef95601890afd80709-semver-checks-rustdoc" >> $GITHUB_OUTPUT
- name: Download saved cache
uses: actions/cache/restore@v3
with:
path: ${{ github.workspace }}/semver-checks/target/semver-checks/cache
fail-on-cache-miss: true
key: not_a_prefix
restore-keys: |
${{ steps.generate_key.outputs.KEY }}
- name: Compare local and downloaded cache files
run: |
if ! diff -r "semver-checks/target/semver-checks/cache" "action-cache"; then
echo "Downloaded cache does not match the local version!"
exit 1
fi