Compare commits

...

52 Commits

Author SHA1 Message Date
c3f1317a9e Merge pull request #813 from actions/users/kotewar/upgrading-cache-to-v2.0.6
Updated README file with release info
2022-06-07 13:07:13 +05:30
d0a54b996c Fixed typo 2022-06-07 07:14:00 +00:00
8c5bd0c82d Updated README file with release info 2022-06-07 07:11:42 +00:00
c9c0f73558 Merge pull request #812 from actions/users/kotewar/upgrading-cache-to-v2.0.6
Updated @actions/cache to v2.0.6
2022-06-07 12:27:10 +05:30
2b6caae3c9 Merge pull request #495 from ostera/patch-1
Add sample cache for Erlang with Rebar3
2022-06-06 18:39:03 +05:30
dd58d1315f Added release info and upgraded version 2022-06-06 12:31:18 +00:00
acace7fa1b Merge branch 'main' into patch-1 2022-06-06 14:26:51 +02:00
438628ac22 Merge pull request #554 from albertstill/improve-restore-key-docs
Improve restore-key documentation
2022-06-06 17:29:02 +05:30
c296e6a08c Updated @actions/cache version in license file 2022-06-06 09:55:39 +00:00
7ed7f22ed8 Updated actions/cache to v2.0.6 2022-06-06 09:40:27 +00:00
30f413bfed Merge pull request #808 from actions/users/kotewar/update-actions-cache-version
Upgraded @actions/cache to 2.0.5
2022-05-31 12:33:10 +05:30
f2ea0f25f2 Updated Readme with what's new and removed v2 info 2022-05-31 03:33:14 +00:00
d5956bbc3c Updated release and package versions 2022-05-30 12:01:54 +00:00
a686c72e4a Revert "Updated package version to 3.0.3 and dependencies"
This reverts commit 4ce1a96732.
2022-05-30 11:54:57 +00:00
8e680ea440 Revert "Added release information for 3.0.2 in RELEASES.md"
This reverts commit c376fc84c9.
2022-05-30 11:54:45 +00:00
c376fc84c9 Added release information for 3.0.2 in RELEASES.md 2022-05-30 09:03:33 +00:00
4ce1a96732 Updated package version to 3.0.3 and dependencies 2022-05-30 08:03:00 +00:00
a2bd439f8e Updated license version and dist 2022-05-30 06:36:08 +00:00
35ef551d1f Upgraded @actions/cache to 2.0.5 2022-05-30 05:59:51 +00:00
14c4fd4871 Merge pull request #690 from pimterry/patch-1
Simplify the Node.js NPM caching example
2022-05-26 11:18:34 +05:30
455d267066 Merge pull request #804 from actions/Phantsure-patch-1
Update README to call out for version of cache
2022-05-26 09:26:58 +05:30
ccaf2d8fb1 Tweak npm example description for cleaner links 2022-05-25 12:00:49 +02:00
34f9efca11 Simplify the Node.js NPM caching example 2022-05-25 11:58:58 +02:00
11dd8059a1 Addressing comments 2022-05-24 06:31:12 +00:00
e19e89eb2a Update to call out for version of cache 2022-05-20 14:38:22 +05:30
95f200e41c Merge pull request #762 from magnetikonline/remove-win-load-app-data
Remove final incorrect instances of `%AppData%` / `%LocalAppData%` from Windows cache examples
2022-05-11 16:14:36 +05:30
9c784e290b Merge pull request #738 from kubo39/fix-dub
[D] Fix: should use dub.selections.json for cache
2022-05-11 16:13:29 +05:30
a34051afb0 Merge pull request #802 from actions/vsvipul/alert-fix
Update ts-jest version and package-lock.json
2022-05-09 11:14:12 +05:30
bdb21a7177 Update ts-jest version and package-lock.json 2022-05-09 00:04:20 +05:30
d55d005ab0 Merge pull request #801 from actions/vsvipul/fix-dep
Update dependencies to suppress dependabot alerts related to minimist version <"1.2.6"
2022-05-07 22:58:45 +05:30
b44d6c5cbf Update inactive issue message. 2022-05-05 11:58:06 +05:30
60742c2acf lint 2022-05-04 13:46:41 +00:00
12086c7bbf new build 2022-05-04 13:43:52 +00:00
626c44ce85 Update restore.ts 2022-05-04 21:26:37 +08:00
f2d5621efc Turning error from any to unknown 2022-05-04 12:32:55 +00:00
cab6d27614 Update licenses 2022-05-04 16:58:48 +05:30
69811fd677 Update other outdated red dependencies 2022-05-04 16:51:09 +05:30
887b9060fe Update dependencies with older minimist version 2022-05-04 16:47:33 +05:30
c6762fdd6a Set days before issue stale to 200 2022-05-04 14:54:27 +05:30
95c3ae75f4 Add Bishal to auto assign issues list. 2022-05-04 14:41:53 +05:30
797382fe42 Add Bishal to auto assign PRs list 2022-05-04 14:41:16 +05:30
36dbd93a7c Create auto-assign-issues.yml 2022-05-02 13:15:05 +05:30
45f362d0ca Create auto_assign.yml 2022-05-02 13:03:27 +05:30
ca0688b4ab Rename auto-assign.yaml to auto-assign.yml 2022-05-02 13:02:07 +05:30
ef8498dcba Create auto-assign.yaml 2022-05-02 13:01:55 +05:30
8f1e2e0286 Bump GitHub actions actions/checkout and actions/setup-node (#763)
* Bump GitHub actions

* Bump Node.js version used to `16.x` in workflows

* Bump `actions/upload-artifact@v3`
2022-04-12 00:06:07 +05:30
48af2dc4a9 Update actions/cache version (#786)
* Updang actions/cache version

* New build

* Update licenses

Co-authored-by: vsvipul <vsvipul@github.com>
2022-04-11 11:56:23 +05:30
f63a711791 Merge pull request #781 from actions/t-dedah/cacheSize
Updated @actions/cache to 2.0.1
2022-04-05 15:48:50 +05:30
3722efebf1 Remove final incorrect instances of %AppData% / %LocalAppData% for Windows cache examples 2022-03-10 10:44:10 +11:00
5074380beb [D] Fix: should use dub.selections.json for cache 2022-02-12 03:17:32 +09:00
3767bf0386 Improve restore-key documentation 2021-03-26 10:36:55 +11:00
009fe4e01c Add sample cache for Erlang with Rebar3 2020-12-29 13:33:30 +01:00
21 changed files with 14725 additions and 1200 deletions

17
.github/auto_assign.yml vendored Normal file
View File

@ -0,0 +1,17 @@
# Set to true to add reviewers to pull requests
addReviewers: true
# Set to true to add assignees to pull requests
addAssignees: false
# A list of reviewers to be added to pull requests (GitHub user name)
reviewers:
- phantsure
- aparna-ravindra
- tiwarishub
- vsvipul
- bishal-pdmsft
# A number of reviewers added to the pull request
# Set 0 to add all the reviewers (default: 0)
numberOfReviewers: 1

View File

@ -0,0 +1,15 @@
name: Issue assignment
on:
issues:
types: [opened]
jobs:
auto-assign:
runs-on: ubuntu-latest
steps:
- name: 'Auto-assign issue'
uses: pozil/auto-assign-issue@v1.4.0
with:
assignees: phantsure,tiwarishub,aparna-ravindra,vsvipul,bishal-pdmsft
numOfAssignee: 1

10
.github/workflows/auto-assign.yml vendored Normal file
View File

@ -0,0 +1,10 @@
name: 'Auto Assign'
on:
pull_request:
types: [opened, ready_for_review]
jobs:
add-reviews:
runs-on: ubuntu-latest
steps:
- uses: kentaro-m/auto-assign-action@v1.2.1

View File

@ -22,16 +22,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set Node.js 12.x
uses: actions/setup-node@v1
- uses: actions/checkout@v3
- name: Setup Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 12.x
node-version: 16.x
- name: Install dependencies
run: npm ci
- name: Rebuild the dist/ directory
run: npm run build
@ -45,7 +42,7 @@ jobs:
id: diff
# If index.js was different than expected, upload the expected version as an artifact
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
with:
name: dist

View File

@ -12,10 +12,10 @@ jobs:
steps:
- uses: actions/stale@v3
with:
days-before-issue-stale: 365
days-before-issue-stale: 200
days-before-issue-close: 5
stale-issue-label: "stale"
stale-issue-message: "This issue is stale because it has been open for 365 days with no activity. Leave a comment to avoid closing this issue in 5 days."
stale-issue-message: "This issue is stale because it has been open for 200 days with no activity. Leave a comment to avoid closing this issue in 5 days."
close-issue-message: "This issue was closed because it has been inactive for 5 days since being marked as stale."
days-before-pr-stale: -1
days-before-pr-close: -1

View File

@ -14,7 +14,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
@ -24,7 +24,7 @@ jobs:
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1

View File

@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
name: Check licenses
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- run: npm ci
- name: Install licensed
run: |

View File

@ -24,11 +24,11 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v1
uses: actions/checkout@v3
- name: Setup Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: '12.x'
node-version: 16.x
- name: Determine npm cache directory
id: npm-cache
run: |
@ -57,7 +57,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Generate files in working directory
shell: bash
run: __tests__/create-cache-files.sh ${{ runner.os }} test-cache
@ -80,7 +80,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Restore cache
uses: ./
with:
@ -110,7 +110,7 @@ jobs:
https_proxy: http://squid-proxy:3128
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Generate files
run: __tests__/create-cache-files.sh proxy test-cache
- name: Save cache
@ -133,7 +133,7 @@ jobs:
https_proxy: http://squid-proxy:3128
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Restore cache
uses: ./
with:

View File

@ -1,6 +1,6 @@
---
name: "@actions/cache"
version: 2.0.1
version: 2.0.6
type: npm
summary:
homepage:

View File

@ -1,6 +1,6 @@
---
name: "@actions/core"
version: 1.6.0
version: 1.7.0
type: npm
summary: Actions core lib
homepage: https://github.com/actions/toolkit/tree/main/packages/core

View File

@ -1,9 +1,9 @@
---
name: "@types/node"
version: 16.11.26
version: 16.11.33
type: npm
summary:
homepage:
summary: TypeScript definitions for Node.js
homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node
license: mit
licenses:
- sources: LICENSE

View File

@ -13,27 +13,10 @@ See ["Caching dependencies to speed up workflows"](https://help.github.com/githu
* Added support for caching from GHES 3.5.
* Fixed download issue for files > 2GB during restore.
* Updated the minimum runner version support from node 12 -> node 16.
* Fixed avoiding empty cache save when no files are available for caching.
* Fixed tar creation error while trying to create tar with path as `~/` home folder on `ubuntu-latest`.
### v2
* Increased the cache size limit to 10 GB.
* Added support for multiple paths, [glob patterns](https://github.com/actions/toolkit/tree/main/packages/glob), and single file caches.
```yaml
- name: Cache multiple paths
uses: actions/cache@v3
with:
path: |
~/cache
!~/cache/exclude
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
```
* Increased performance and improved cache sizes using `zstd` compression for Linux and macOS runners
* Allowed caching for all events with a ref. See [events that trigger workflow](https://help.github.com/en/actions/reference/events-that-trigger-workflows) for info on which events do not have a `GITHUB_REF`
* Released the [`@actions/cache`](https://github.com/actions/toolkit/tree/main/packages/cache) npm package to allow other actions to utilize caching
* Added a best-effort cleanup step to delete the archive after extraction to reduce storage space
Refer [here](https://github.com/actions/cache/blob/v1/README.md) for previous versions
Refer [here](https://github.com/actions/cache/blob/v2/README.md) for previous versions
## Usage
@ -46,7 +29,8 @@ If you are using this inside a container, a POSIX-compliant `tar` needs to be in
* `path` - A list of files, directories, and wildcard patterns to cache and restore. See [`@actions/glob`](https://github.com/actions/toolkit/tree/main/packages/glob) for supported patterns.
* `key` - An explicit key for restoring and saving the cache
* `restore-keys` - An ordered list of keys to use for restoring the cache if no cache hit occurred for key
* `restore-keys` - An ordered list of keys to use for restoring stale cache if no cache hit occurred for key. Note
`cache-hit` returns false in this case.
### Outputs
@ -71,7 +55,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Cache Primes
id: cache-primes
@ -162,7 +146,7 @@ Using the `cache-hit` output, subsequent steps (such as install or build) can be
Example:
```yaml
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
@ -177,6 +161,58 @@ steps:
> Note: The `id` defined in `actions/cache` must match the `id` in the `if` statement (i.e. `steps.[ID].outputs.cache-hit`)
## Cache Version
Cache version is unique for a combination of compression tool used for compression of cache (Gzip, Zstd, etc based on runner OS) and the path of directories being cached. If two caches have different versions, they are identified as unique cache entries. This also means that a cache created on `windows-latest` runner can't be restored on `ubuntu-latest` as cache `Version`s are different.
Example: Below example will create 3 unique caches with same keys. Ubuntu and windows runners will use different compression technique and hence create two different caches. And `build-linux` will create two different caches as the `paths` are different.
```yaml
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Cache Primes
id: cache-primes
uses: actions/cache@v3
with:
path: prime-numbers
key: primes
- name: Generate Prime Numbers
if: steps.cache-primes.outputs.cache-hit != 'true'
run: ./generate-primes.sh -d prime-numbers
- name: Cache Numbers
id: cache-numbers
uses: actions/cache@v3
with:
path: numbers
key: primes
- name: Generate Numbers
if: steps.cache-numbers.outputs.cache-hit != 'true'
run: ./generate-primes.sh -d numbers
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Cache Primes
id: cache-primes
uses: actions/cache@v3
with:
path: prime-numbers
key: primes
- name: Generate Prime Numbers
if: steps.cache-primes.outputs.cache-hit != 'true'
run: ./generate-primes -d prime-numbers
```
## Contributing
We would love for you to contribute to `actions/cache`, pull requests are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) for more information.

View File

@ -6,3 +6,12 @@
### 3.0.1
- Added support for caching from GHES 3.5.
- Fixed download issue for files > 2GB during restore.
### 3.0.2
- Added support for dynamic cache size cap on GHES.
### 3.0.3
- Fixed avoiding empty cache save when no files are available for caching. ([issue](https://github.com/actions/cache/issues/624))
### 3.0.4
- Fixed tar creation error while trying to create tar with path as `~/` home folder on `ubuntu-latest`. ([issue](https://github.com/actions/cache/issues/689))

View File

@ -9,7 +9,7 @@ inputs:
description: 'An explicit key for restoring and saving the cache'
required: true
restore-keys:
description: 'An ordered list of keys to use for restoring the cache if no cache hit occurred for key'
description: 'An ordered list of keys to use for restoring stale cache if no cache hit occurred for key. Note `cache-hit` returns false in this case.'
required: false
upload-chunk-size:
description: 'The chunk size used to split up large files during upload, in bytes'

1097
dist/restore/index.js vendored

File diff suppressed because it is too large Load Diff

1101
dist/save/index.js vendored

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,7 @@
- [macOS](#macos)
- [Windows](#windows-1)
- [Elixir - Mix](#elixir---mix)
- [Erlang - Rebar3](#erlang--rebar3)
- [Go - Modules](#go---modules)
- [Linux](#linux-1)
- [macOS](#macos-1)
@ -18,9 +19,6 @@
- [Java - Gradle](#java---gradle)
- [Java - Maven](#java---maven)
- [Node - npm](#node---npm)
- [macOS and Ubuntu](#macos-and-ubuntu)
- [Windows](#windows-3)
- [Using multiple systems and `npm config`](#using-multiple-systems-and-npm-config)
- [Node - Lerna](#node---lerna)
- [Node - Yarn](#node---yarn)
- [Node - Yarn 2](#node---yarn-2)
@ -90,7 +88,7 @@ steps:
- uses: actions/cache@v3
with:
path: ~/.dub
key: ${{ runner.os }}-dub-${{ hashFiles('**/dub.json') }}
key: ${{ runner.os }}-dub-${{ hashFiles('**/dub.selections.json') }}
restore-keys: |
${{ runner.os }}-dub-
```
@ -101,7 +99,7 @@ steps:
- uses: actions/cache@v3
with:
path: ~\AppData\Local\dub
key: ${{ runner.os }}-dub-${{ hashFiles('**/dub.json') }}
key: ${{ runner.os }}-dub-${{ hashFiles('**/dub.selections.json') }}
restore-keys: |
${{ runner.os }}-dub-
```
@ -137,11 +135,10 @@ steps:
with:
path: |
~\.deno
%LocalAppData%\deno
~\AppData\Local\deno
key: ${{ runner.os }}-deno-${{ hashFiles('**/deps.ts') }}
```
## Elixir - Mix
```yaml
@ -155,6 +152,18 @@ steps:
${{ runner.os }}-mix-
```
## Erlang - Rebar3
```yaml
- uses: actions/cache@v2
with:
path: |
~/.cache/rebar3
_build
key: ${{ runner.os }}-erlang-${{ env.OTP_VERSION }}-${{ hashFiles('**/*rebar.lock') }}
restore-keys: |
${{ runner.os }}-erlang-${{ env.OTP_VERSION }}-
```
## Go - Modules
### Linux
@ -260,40 +269,12 @@ We cache the elements of the Cabal store separately, as the entirety of `~/.caba
## Node - npm
For npm, cache files are stored in `~/.npm` on Posix, or `%AppData%/npm-cache` on Windows. See https://docs.npmjs.com/cli/cache#cache
For npm, cache files are stored in `~/.npm` on Posix, or `~\AppData\npm-cache` on Windows, but it's possible to use `npm config get cache` to find the path on any platform. See [the npm docs](https://docs.npmjs.com/cli/cache#cache) for more details.
If using `npm config` to retrieve the cache directory, ensure you run [actions/setup-node](https://github.com/actions/setup-node) first to ensure your `npm` version is correct.
>Note: It is not recommended to cache `node_modules`, as it can break across Node versions and won't work with `npm ci`
### macOS and Ubuntu
```yaml
- uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
```
### Windows
```yaml
- name: Get npm cache directory
id: npm-cache
run: |
echo "::set-output name=dir::$(npm config get cache)"
- uses: actions/cache@v3
with:
path: ${{ steps.npm-cache.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
```
### Using multiple systems and `npm config`
```yaml
- name: Get npm cache directory
id: npm-cache-dir

13434
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "cache",
"version": "3.0.2",
"version": "3.0.4",
"private": true,
"description": "Cache dependencies and build outputs",
"main": "dist/restore/index.js",
@ -23,29 +23,29 @@
"author": "GitHub",
"license": "MIT",
"dependencies": {
"@actions/cache": "^2.0.1",
"@actions/core": "^1.2.6",
"@actions/cache": "^2.0.6",
"@actions/core": "^1.7.0",
"@actions/exec": "^1.1.1",
"@actions/io": "^1.1.2"
},
"devDependencies": {
"@types/jest": "^27.4.1",
"@types/jest": "^27.5.0",
"@types/nock": "^11.1.0",
"@types/node": "^16.11.26",
"@typescript-eslint/eslint-plugin": "^5.16.0",
"@typescript-eslint/parser": "^5.16.0",
"@types/node": "^16.11.33",
"@typescript-eslint/eslint-plugin": "^5.22.0",
"@typescript-eslint/parser": "^5.22.0",
"@zeit/ncc": "^0.20.5",
"eslint": "^8.11.0",
"eslint": "^8.14.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.25.4",
"eslint-plugin-jest": "^26.1.3",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jest": "^26.1.5",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-simple-import-sort": "^7.0.0",
"jest": "^27.5.1",
"jest": "^28.0.3",
"jest-circus": "^27.5.1",
"nock": "^11.7.0",
"prettier": "^2.6.1",
"ts-jest": "^27.1.4",
"typescript": "^3.9.9"
"nock": "^13.2.4",
"prettier": "^2.6.2",
"ts-jest": "^28.0.2",
"typescript": "^4.6.4"
}
}

View File

@ -52,16 +52,17 @@ async function run(): Promise<void> {
utils.setCacheHitOutput(isExactKeyMatch);
core.info(`Cache restored from key: ${cacheKey}`);
} catch (error) {
if (error.name === cache.ValidationError.name) {
} catch (error: unknown) {
const typedError = error as Error;
if (typedError.name === cache.ValidationError.name) {
throw error;
} else {
utils.logWarning(error.message);
utils.logWarning(typedError.message);
utils.setCacheHitOutput(false);
}
}
} catch (error) {
core.setFailed(error.message);
} catch (error: unknown) {
core.setFailed((error as Error).message);
}
}

View File

@ -49,17 +49,18 @@ async function run(): Promise<void> {
uploadChunkSize: utils.getInputAsInt(Inputs.UploadChunkSize)
});
core.info(`Cache saved with key: ${primaryKey}`);
} catch (error) {
if (error.name === cache.ValidationError.name) {
} catch (error: unknown) {
const typedError = error as Error;
if (typedError.name === cache.ValidationError.name) {
throw error;
} else if (error.name === cache.ReserveCacheError.name) {
core.info(error.message);
} else if (typedError.name === cache.ReserveCacheError.name) {
core.info(typedError.message);
} else {
utils.logWarning(error.message);
utils.logWarning(typedError.message);
}
}
} catch (error) {
utils.logWarning(error.message);
} catch (error: unknown) {
utils.logWarning((error as Error).message);
}
}