mirror of
https://github.com/actions/cache.git
synced 2024-12-27 09:45:24 +01:00
Merge pull request #250 from actions/test-relative-path
Fix caching directories outside of the working directory (relative paths)
This commit is contained in:
commit
78809b91d7
7 changed files with 48 additions and 20 deletions
28
.github/workflows/workflow.yml
vendored
28
.github/workflows/workflow.yml
vendored
|
@ -51,23 +51,30 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, windows-latest, macOS-latest]
|
os: [ubuntu-latest, windows-latest, macOS-latest]
|
||||||
|
fail-fast: false
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: Generate files
|
- name: Generate files in working directory
|
||||||
shell: bash
|
shell: bash
|
||||||
run: __tests__/create-cache-files.sh ${{ runner.os }}
|
run: __tests__/create-cache-files.sh ${{ runner.os }} test-cache
|
||||||
|
- name: Generate files outside working directory
|
||||||
|
shell: bash
|
||||||
|
run: __tests__/create-cache-files.sh ${{ runner.os }} ~/test-cache
|
||||||
- name: Save cache
|
- name: Save cache
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
key: test-${{ runner.os }}-${{ github.run_id }}
|
key: test-${{ runner.os }}-${{ github.run_id }}
|
||||||
path: test-cache
|
path: |
|
||||||
|
test-cache
|
||||||
|
~/test-cache
|
||||||
test-restore:
|
test-restore:
|
||||||
needs: test-save
|
needs: test-save
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, windows-latest, macOS-latest]
|
os: [ubuntu-latest, windows-latest, macOS-latest]
|
||||||
|
fail-fast: false
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
|
@ -76,10 +83,15 @@ jobs:
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
key: test-${{ runner.os }}-${{ github.run_id }}
|
key: test-${{ runner.os }}-${{ github.run_id }}
|
||||||
path: test-cache
|
path: |
|
||||||
- name: Verify cache
|
test-cache
|
||||||
|
~/test-cache
|
||||||
|
- name: Verify cache files in working directory
|
||||||
shell: bash
|
shell: bash
|
||||||
run: __tests__/verify-cache-files.sh ${{ runner.os }}
|
run: __tests__/verify-cache-files.sh ${{ runner.os }} test-cache
|
||||||
|
- name: Verify cache files outside working directory
|
||||||
|
shell: bash
|
||||||
|
run: __tests__/verify-cache-files.sh ${{ runner.os }} ~/test-cache
|
||||||
|
|
||||||
# End to end with proxy
|
# End to end with proxy
|
||||||
test-proxy-save:
|
test-proxy-save:
|
||||||
|
@ -98,7 +110,7 @@ jobs:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: Generate files
|
- name: Generate files
|
||||||
run: __tests__/create-cache-files.sh proxy
|
run: __tests__/create-cache-files.sh proxy test-cache
|
||||||
- name: Save cache
|
- name: Save cache
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
|
@ -126,4 +138,4 @@ jobs:
|
||||||
key: test-proxy-${{ github.run_id }}
|
key: test-proxy-${{ github.run_id }}
|
||||||
path: test-cache
|
path: test-cache
|
||||||
- name: Verify cache
|
- name: Verify cache
|
||||||
run: __tests__/verify-cache-files.sh proxy
|
run: __tests__/verify-cache-files.sh proxy test-cache
|
||||||
|
|
|
@ -7,5 +7,11 @@ if [ -z "$prefix" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir test-cache
|
path="$2"
|
||||||
echo "$prefix $GITHUB_RUN_ID" > test-cache/test-file.txt
|
if [ -z "$path" ]; then
|
||||||
|
echo "Must supply path argument"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p $path
|
||||||
|
echo "$prefix $GITHUB_RUN_ID" > $path/test-file.txt
|
||||||
|
|
|
@ -73,6 +73,7 @@ test("create tar", async () => {
|
||||||
"-cz",
|
"-cz",
|
||||||
"-f",
|
"-f",
|
||||||
CacheFilename,
|
CacheFilename,
|
||||||
|
"-P",
|
||||||
"-C",
|
"-C",
|
||||||
workspace,
|
workspace,
|
||||||
"--files-from",
|
"--files-from",
|
||||||
|
|
|
@ -7,6 +7,12 @@ if [ -z "$prefix" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
path="$2"
|
||||||
|
if [ -z "$path" ]; then
|
||||||
|
echo "Must specify path argument"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Sanity check GITHUB_RUN_ID defined
|
# Sanity check GITHUB_RUN_ID defined
|
||||||
if [ -z "$GITHUB_RUN_ID" ]; then
|
if [ -z "$GITHUB_RUN_ID" ]; then
|
||||||
echo "GITHUB_RUN_ID not defined"
|
echo "GITHUB_RUN_ID not defined"
|
||||||
|
@ -14,7 +20,7 @@ if [ -z "$GITHUB_RUN_ID" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Verify file exists
|
# Verify file exists
|
||||||
file="test-cache/test-file.txt"
|
file="$path/test-file.txt"
|
||||||
echo "Checking for $file"
|
echo "Checking for $file"
|
||||||
if [ ! -e $file ]; then
|
if [ ! -e $file ]; then
|
||||||
echo "File does not exist"
|
echo "File does not exist"
|
||||||
|
@ -27,4 +33,4 @@ echo "File content:\n$content"
|
||||||
if [ -z "$(echo $content | grep --fixed-strings "$prefix $GITHUB_RUN_ID")" ]; then
|
if [ -z "$(echo $content | grep --fixed-strings "$prefix $GITHUB_RUN_ID")" ]; then
|
||||||
echo "Unexpected file content"
|
echo "Unexpected file content"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
9
dist/restore/index.js
vendored
9
dist/restore/index.js
vendored
|
@ -2182,12 +2182,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const core = __importStar(__webpack_require__(470));
|
const core = __importStar(__webpack_require__(470));
|
||||||
const fs = __importStar(__webpack_require__(747));
|
|
||||||
const crypto = __importStar(__webpack_require__(417));
|
|
||||||
const http_client_1 = __webpack_require__(539);
|
const http_client_1 = __webpack_require__(539);
|
||||||
const auth_1 = __webpack_require__(226);
|
const auth_1 = __webpack_require__(226);
|
||||||
const utils = __importStar(__webpack_require__(443));
|
const crypto = __importStar(__webpack_require__(417));
|
||||||
|
const fs = __importStar(__webpack_require__(747));
|
||||||
const constants_1 = __webpack_require__(694);
|
const constants_1 = __webpack_require__(694);
|
||||||
|
const utils = __importStar(__webpack_require__(443));
|
||||||
const versionSalt = "1.0";
|
const versionSalt = "1.0";
|
||||||
function isSuccessStatusCode(statusCode) {
|
function isSuccessStatusCode(statusCode) {
|
||||||
if (!statusCode) {
|
if (!statusCode) {
|
||||||
|
@ -3185,8 +3185,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const core = __importStar(__webpack_require__(470));
|
const core = __importStar(__webpack_require__(470));
|
||||||
const io = __importStar(__webpack_require__(1));
|
|
||||||
const glob = __importStar(__webpack_require__(281));
|
const glob = __importStar(__webpack_require__(281));
|
||||||
|
const io = __importStar(__webpack_require__(1));
|
||||||
const fs = __importStar(__webpack_require__(747));
|
const fs = __importStar(__webpack_require__(747));
|
||||||
const path = __importStar(__webpack_require__(622));
|
const path = __importStar(__webpack_require__(622));
|
||||||
const util = __importStar(__webpack_require__(669));
|
const util = __importStar(__webpack_require__(669));
|
||||||
|
@ -5016,6 +5016,7 @@ function createTar(archiveFolder, sourceDirectories) {
|
||||||
"-cz",
|
"-cz",
|
||||||
"-f",
|
"-f",
|
||||||
constants_1.CacheFilename,
|
constants_1.CacheFilename,
|
||||||
|
"-P",
|
||||||
"-C",
|
"-C",
|
||||||
workingDirectory,
|
workingDirectory,
|
||||||
"--files-from",
|
"--files-from",
|
||||||
|
|
9
dist/save/index.js
vendored
9
dist/save/index.js
vendored
|
@ -2182,12 +2182,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const core = __importStar(__webpack_require__(470));
|
const core = __importStar(__webpack_require__(470));
|
||||||
const fs = __importStar(__webpack_require__(747));
|
|
||||||
const crypto = __importStar(__webpack_require__(417));
|
|
||||||
const http_client_1 = __webpack_require__(539);
|
const http_client_1 = __webpack_require__(539);
|
||||||
const auth_1 = __webpack_require__(226);
|
const auth_1 = __webpack_require__(226);
|
||||||
const utils = __importStar(__webpack_require__(443));
|
const crypto = __importStar(__webpack_require__(417));
|
||||||
|
const fs = __importStar(__webpack_require__(747));
|
||||||
const constants_1 = __webpack_require__(694);
|
const constants_1 = __webpack_require__(694);
|
||||||
|
const utils = __importStar(__webpack_require__(443));
|
||||||
const versionSalt = "1.0";
|
const versionSalt = "1.0";
|
||||||
function isSuccessStatusCode(statusCode) {
|
function isSuccessStatusCode(statusCode) {
|
||||||
if (!statusCode) {
|
if (!statusCode) {
|
||||||
|
@ -3185,8 +3185,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const core = __importStar(__webpack_require__(470));
|
const core = __importStar(__webpack_require__(470));
|
||||||
const io = __importStar(__webpack_require__(1));
|
|
||||||
const glob = __importStar(__webpack_require__(281));
|
const glob = __importStar(__webpack_require__(281));
|
||||||
|
const io = __importStar(__webpack_require__(1));
|
||||||
const fs = __importStar(__webpack_require__(747));
|
const fs = __importStar(__webpack_require__(747));
|
||||||
const path = __importStar(__webpack_require__(622));
|
const path = __importStar(__webpack_require__(622));
|
||||||
const util = __importStar(__webpack_require__(669));
|
const util = __importStar(__webpack_require__(669));
|
||||||
|
@ -4993,6 +4993,7 @@ function createTar(archiveFolder, sourceDirectories) {
|
||||||
"-cz",
|
"-cz",
|
||||||
"-f",
|
"-f",
|
||||||
constants_1.CacheFilename,
|
constants_1.CacheFilename,
|
||||||
|
"-P",
|
||||||
"-C",
|
"-C",
|
||||||
workingDirectory,
|
workingDirectory,
|
||||||
"--files-from",
|
"--files-from",
|
||||||
|
|
|
@ -59,6 +59,7 @@ export async function createTar(
|
||||||
"-cz",
|
"-cz",
|
||||||
"-f",
|
"-f",
|
||||||
CacheFilename,
|
CacheFilename,
|
||||||
|
"-P",
|
||||||
"-C",
|
"-C",
|
||||||
workingDirectory,
|
workingDirectory,
|
||||||
"--files-from",
|
"--files-from",
|
||||||
|
|
Loading…
Reference in a new issue