mirror of
https://github.com/obi1kenobi/cargo-semver-checks-action.git
synced 2024-11-26 09:59:33 +01:00
461983b3bb
* Cache test * Baseline caching - initial work * Add comment explaining the change of CARGO_TARGET_DIR. * Update README.md Co-authored-by: Predrag Gruevski <2348618+obi1kenobi@users.noreply.github.com> * Refactor getRustcVersion and getCargoSemverChecksVersion * Move helper functions outside RustdocCache class. * cachePath passed in constructor * workspaceRoot as constructor argument * Inline getManifestDir * Change target to semver-checks/target * Fix missing hash-files * Add workflow testing caching * New line * Add checking the updated cache * Missing semicolon * Bad job name in cache key * Upload cache if its hash changes * Test options cache-key and prefix-key * Need to use restore-keys * Is path a problem? * Absolute path * Move * Fix restore inputs * Verify * Revert debug * Rustc and semver-checks versions should not be fixed! * debug test * key not being a prefix * Missing outputs * Revert letter change in hash * Update CI README * TODO comments, shorter names * Better names * check the key * Missing ' * Remove space * Missing outputs * Remove hash check --------- Co-authored-by: Predrag Gruevski <2348618+obi1kenobi@users.noreply.github.com> * Remove inconsistent newlines from workflows README --------- Co-authored-by: Predrag Gruevski <2348618+obi1kenobi@users.noreply.github.com>
62 lines
2.4 KiB
YAML
62 lines
2.4 KiB
YAML
name: Test rustdoc caching
|
|
|
|
# Assumes that the latest published normal version of `ref_slice` smaller
|
|
# than 1.2.2 is 1.2.1.
|
|
# TODO: Change the crate version in the corresponding branches `patch_change`
|
|
# and `major_change` to 1.2.1 once new logic of choosing baseline is adapted.
|
|
# Otherwise if new version 1.2.2 of `ref_slice` is released, the tests might
|
|
# stop working correctly.
|
|
|
|
on:
|
|
workflow_call:
|
|
|
|
jobs:
|
|
test-cache-exists:
|
|
name: Check if the cache exists after running the action
|
|
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:
|
|
manifest-path: 'ref_slice/Cargo.toml'
|
|
cache-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
|