diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index c394023..c97fe95 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -51,23 +51,30 @@ jobs: strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] + fail-fast: false runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v2 - - name: Generate files + - name: Generate files in working directory 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 uses: ./ with: key: test-${{ runner.os }}-${{ github.run_id }} - path: test-cache + path: | + test-cache + ~/test-cache test-restore: needs: test-save strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] + fail-fast: false runs-on: ${{ matrix.os }} steps: - name: Checkout @@ -76,10 +83,15 @@ jobs: uses: ./ with: key: test-${{ runner.os }}-${{ github.run_id }} - path: test-cache - - name: Verify cache + path: | + test-cache + ~/test-cache + - name: Verify cache files in working directory 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 test-proxy-save: @@ -98,7 +110,7 @@ jobs: - name: Checkout uses: actions/checkout@v2 - name: Generate files - run: __tests__/create-cache-files.sh proxy + run: __tests__/create-cache-files.sh proxy test-cache - name: Save cache uses: ./ with: @@ -126,4 +138,4 @@ jobs: key: test-proxy-${{ github.run_id }} path: test-cache - name: Verify cache - run: __tests__/verify-cache-files.sh proxy + run: __tests__/verify-cache-files.sh proxy test-cache diff --git a/__tests__/create-cache-files.sh b/__tests__/create-cache-files.sh index 885a5f2..0ce4140 100755 --- a/__tests__/create-cache-files.sh +++ b/__tests__/create-cache-files.sh @@ -7,5 +7,11 @@ if [ -z "$prefix" ]; then exit 1 fi -mkdir test-cache -echo "$prefix $GITHUB_RUN_ID" > test-cache/test-file.txt \ No newline at end of file +path="$2" +if [ -z "$path" ]; then + echo "Must supply path argument" + exit 1 +fi + +mkdir -p $path +echo "$prefix $GITHUB_RUN_ID" > $path/test-file.txt diff --git a/__tests__/tar.test.ts b/__tests__/tar.test.ts index fdf637a..ca10f34 100644 --- a/__tests__/tar.test.ts +++ b/__tests__/tar.test.ts @@ -73,6 +73,7 @@ test("create tar", async () => { "-cz", "-f", CacheFilename, + "-P", "-C", workspace, "--files-from", diff --git a/__tests__/verify-cache-files.sh b/__tests__/verify-cache-files.sh index c7b75ae..3ee8a84 100755 --- a/__tests__/verify-cache-files.sh +++ b/__tests__/verify-cache-files.sh @@ -7,6 +7,12 @@ if [ -z "$prefix" ]; then exit 1 fi +path="$2" +if [ -z "$path" ]; then + echo "Must specify path argument" + exit 1 +fi + # Sanity check GITHUB_RUN_ID defined if [ -z "$GITHUB_RUN_ID" ]; then echo "GITHUB_RUN_ID not defined" @@ -14,7 +20,7 @@ if [ -z "$GITHUB_RUN_ID" ]; then fi # Verify file exists -file="test-cache/test-file.txt" +file="$path/test-file.txt" echo "Checking for $file" if [ ! -e $file ]; then 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 echo "Unexpected file content" exit 1 -fi \ No newline at end of file +fi diff --git a/dist/restore/index.js b/dist/restore/index.js index ac49982..2e71724 100644 --- a/dist/restore/index.js +++ b/dist/restore/index.js @@ -2182,12 +2182,12 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); 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 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 utils = __importStar(__webpack_require__(443)); const versionSalt = "1.0"; function isSuccessStatusCode(statusCode) { if (!statusCode) { @@ -3185,8 +3185,8 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const core = __importStar(__webpack_require__(470)); -const io = __importStar(__webpack_require__(1)); const glob = __importStar(__webpack_require__(281)); +const io = __importStar(__webpack_require__(1)); const fs = __importStar(__webpack_require__(747)); const path = __importStar(__webpack_require__(622)); const util = __importStar(__webpack_require__(669)); @@ -5016,6 +5016,7 @@ function createTar(archiveFolder, sourceDirectories) { "-cz", "-f", constants_1.CacheFilename, + "-P", "-C", workingDirectory, "--files-from", diff --git a/dist/save/index.js b/dist/save/index.js index ca454ed..f807389 100644 --- a/dist/save/index.js +++ b/dist/save/index.js @@ -2182,12 +2182,12 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); 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 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 utils = __importStar(__webpack_require__(443)); const versionSalt = "1.0"; function isSuccessStatusCode(statusCode) { if (!statusCode) { @@ -3185,8 +3185,8 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const core = __importStar(__webpack_require__(470)); -const io = __importStar(__webpack_require__(1)); const glob = __importStar(__webpack_require__(281)); +const io = __importStar(__webpack_require__(1)); const fs = __importStar(__webpack_require__(747)); const path = __importStar(__webpack_require__(622)); const util = __importStar(__webpack_require__(669)); @@ -4993,6 +4993,7 @@ function createTar(archiveFolder, sourceDirectories) { "-cz", "-f", constants_1.CacheFilename, + "-P", "-C", workingDirectory, "--files-from", diff --git a/src/tar.ts b/src/tar.ts index 3ca3019..9a1f446 100644 --- a/src/tar.ts +++ b/src/tar.ts @@ -59,6 +59,7 @@ export async function createTar( "-cz", "-f", CacheFilename, + "-P", "-C", workingDirectory, "--files-from",