Compare commits

..

2 Commits

Author SHA1 Message Date
Michael Vorburger
b6e51d5dfe Merge 028d01341f into 668228422a 2026-03-18 23:26:52 +00:00
Michael Vorburger
028d01341f Add ASDF example 2024-02-17 00:40:37 +01:00
13 changed files with 14638 additions and 17372 deletions

View File

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

View File

@@ -1,6 +1,6 @@
--- ---
name: "@typespec/ts-http-runtime" name: "@typespec/ts-http-runtime"
version: 0.3.5 version: 0.3.2
type: npm type: npm
summary: Isomorphic client library for making HTTP requests in node.js and browser. summary: Isomorphic client library for making HTTP requests in node.js and browser.
homepage: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/ts-http-runtime/ homepage: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/ts-http-runtime/

View File

@@ -109,14 +109,6 @@ The cache is scoped to the key, [version](#cache-version), and branch. The defau
See [Matching a cache key](https://help.github.com/en/actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows#matching-a-cache-key) for more info. See [Matching a cache key](https://help.github.com/en/actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows#matching-a-cache-key) for more info.
### Read-only access
Some workflow runs only have read-only access to the cache. A common case is a workflow triggered by a pull request from a fork: such runs can **restore** existing caches but may not be permitted to **save** new ones.
When the cache token is read-only, the save step does not fail the job. Instead, `@actions/cache` reports the denial once as a warning (for example, `Failed to save: ... cache write denied: ...`) and the step completes successfully without writing a cache entry. Restores in the same run continue to work as usual.
> **Note** This applies to the action's normal save path as well as the standalone [Save action](./save/README.md). If you intentionally want a restore-only setup, see [Make cache read only / Reuse cache from centralized job](./caching-strategies.md#make-cache-read-only--reuse-cache-from-centralized-job).
### Example cache workflow ### Example cache workflow
#### Restoring and saving cache using a single action #### Restoring and saving cache using a single action

View File

@@ -25,11 +25,6 @@
## Changelog ## Changelog
### 5.1.0
- Bump `@actions/cache` to v5.1.0 to pick up [actions/toolkit#2435 Handle cache write error due to read-only token](https://github.com/actions/toolkit/pull/2435)
- Switch redundant "Cache save failed" warning to debug log in save-only
### 5.0.4 ### 5.0.4
- Bump `minimatch` to v3.1.5 (fixes ReDoS via globstar patterns) - Bump `minimatch` to v3.1.5 (fixes ReDoS via globstar patterns)

View File

@@ -105,10 +105,8 @@ test("save with valid inputs uploads a cache", async () => {
expect(failedMock).toHaveBeenCalledTimes(0); expect(failedMock).toHaveBeenCalledTimes(0);
}); });
test("save failing logs the debug message", async () => { test("save failing logs the warning message", async () => {
const debugMock = jest.spyOn(core, "debug");
const warningMock = jest.spyOn(core, "warning"); const warningMock = jest.spyOn(core, "warning");
const failedMock = jest.spyOn(core, "setFailed");
const primaryKey = "Linux-node-bb828da54c148048dd17899ba9fda624811cfb43"; const primaryKey = "Linux-node-bb828da54c148048dd17899ba9fda624811cfb43";
@@ -117,9 +115,6 @@ test("save failing logs the debug message", async () => {
testUtils.setInput(Inputs.Path, inputPath); testUtils.setInput(Inputs.Path, inputPath);
testUtils.setInput(Inputs.UploadChunkSize, "4000000"); testUtils.setInput(Inputs.UploadChunkSize, "4000000");
// A read-only / write-denied save surfaces to the action as saveCache resolving
// to -1; the toolkit has already logged the underlying reason. The action
// must not fail the job or emit its own warning.
const cacheId = -1; const cacheId = -1;
const saveCacheMock = jest const saveCacheMock = jest
.spyOn(cache, "saveCache") .spyOn(cache, "saveCache")
@@ -139,7 +134,6 @@ test("save failing logs the debug message", async () => {
false false
); );
expect(debugMock).toHaveBeenCalledWith("Cache was not saved."); expect(warningMock).toHaveBeenCalledTimes(1);
expect(warningMock).not.toHaveBeenCalled(); expect(warningMock).toHaveBeenCalledWith("Cache save failed.");
expect(failedMock).not.toHaveBeenCalled();
}); });

File diff suppressed because it is too large Load Diff

7974
dist/restore/index.js vendored

File diff suppressed because it is too large Load Diff

7980
dist/save-only/index.js vendored

File diff suppressed because it is too large Load Diff

7980
dist/save/index.js vendored

File diff suppressed because it is too large Load Diff

View File

@@ -40,6 +40,7 @@
- [Swift, Objective-C - CocoaPods](#swift-objective-c---cocoapods) - [Swift, Objective-C - CocoaPods](#swift-objective-c---cocoapods)
- [Swift - Swift Package Manager](#swift---swift-package-manager) - [Swift - Swift Package Manager](#swift---swift-package-manager)
- [Swift - Mint](#swift---mint) - [Swift - Mint](#swift---mint)
- [* - ASDF](#---asdf)
- [* - Bazel](#---bazel) - [* - Bazel](#---bazel)
## Bun ## Bun
@@ -681,6 +682,38 @@ steps:
${{ runner.os }}-mint- ${{ runner.os }}-mint-
``` ```
## * - ASDF
[ASDF](https://asdf-vm.com), see [#235](https://github.com/asdf-vm/actions/issues/235):
```yaml
- name: Setup ASDF itself
uses: asdf-vm/actions/setup@v3
- name: Cache ASDF
uses: actions/cache@v4
id: asdf-cache
with:
# https://github.com/asdf-vm/asdf/blob/master/.gitignore
path: |
~/.asdf/installs
~/.asdf/plugins
~/.asdf/shims
key: ${{ runner.os }}-asdf-tools-${{ hashFiles('.tool-versions') }}
restore-keys: ${{ runner.os }}-asdf-tools-
- name: Install ASDF plugins
uses: asdf-vm/actions/install@v3
# See https://github.com/asdf-vm/actions/issues/445
if: ${{ steps.asdf-cache.outputs.cache-hit != 'true' }}
with:
asdf_branch: v0.14.0
- name: Reshim installed ASDF tools
shell: bash
run: asdf reshim
```
## * - Bazel ## * - Bazel
[`bazelisk`](https://github.com/bazelbuild/bazelisk) does not have be to separately downloaded and installed because it's already included in GitHub's `ubuntu-latest` and `macos-latest` base images. [`bazelisk`](https://github.com/bazelbuild/bazelisk) does not have be to separately downloaded and installed because it's already included in GitHub's `ubuntu-latest` and `macos-latest` base images.

18
package-lock.json generated
View File

@@ -1,15 +1,15 @@
{ {
"name": "cache", "name": "cache",
"version": "5.1.0", "version": "5.0.4",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "cache", "name": "cache",
"version": "5.1.0", "version": "5.0.4",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@actions/cache": "^5.1.0", "@actions/cache": "^5.0.5",
"@actions/core": "^2.0.3", "@actions/core": "^2.0.3",
"@actions/exec": "^2.0.0", "@actions/exec": "^2.0.0",
"@actions/io": "^2.0.0" "@actions/io": "^2.0.0"
@@ -39,9 +39,9 @@
} }
}, },
"node_modules/@actions/cache": { "node_modules/@actions/cache": {
"version": "5.1.0", "version": "5.0.5",
"resolved": "https://registry.npmjs.org/@actions/cache/-/cache-5.1.0.tgz", "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-5.0.5.tgz",
"integrity": "sha512-kTIj4YPrjjRPKSGlj7f8eq+Pijoy/SKBEbJcAwNsQTFGEF29NGqj1mqD02/PmhV6r4bRAixycexAWpmUJ2aCwg==", "integrity": "sha512-jiQSg0gfd+C2KPgcmdCOq7dCuCIQQWQ4b1YfGIRaaA9w7PJbRwTOcCz4LiFEUnqZGf0ha/8OKL3BeNwetHzYsQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@actions/core": "^2.0.0", "@actions/core": "^2.0.0",
@@ -1945,9 +1945,9 @@
} }
}, },
"node_modules/@typespec/ts-http-runtime": { "node_modules/@typespec/ts-http-runtime": {
"version": "0.3.5", "version": "0.3.2",
"resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.5.tgz", "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.2.tgz",
"integrity": "sha512-yURCknZhvywvQItHMMmFSo+fq5arCUIyz/CVk7jD89MSai7dkaX8ufjCWp3NttLojoTVbcE72ri+be/TnEbMHw==", "integrity": "sha512-IlqQ/Gv22xUC1r/WQm4StLkYQmaaTsXAhUVsNE0+xiyf0yRFiH5++q78U3bw6bLKDCTmh0uqKB9eG9+Bt75Dkg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"http-proxy-agent": "^7.0.0", "http-proxy-agent": "^7.0.0",

View File

@@ -1,6 +1,6 @@
{ {
"name": "cache", "name": "cache",
"version": "5.1.0", "version": "5.0.4",
"private": true, "private": true,
"description": "Cache dependencies and build outputs", "description": "Cache dependencies and build outputs",
"main": "dist/restore/index.js", "main": "dist/restore/index.js",
@@ -23,7 +23,7 @@
"author": "GitHub", "author": "GitHub",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@actions/cache": "^5.1.0", "@actions/cache": "^5.0.5",
"@actions/core": "^2.0.3", "@actions/core": "^2.0.3",
"@actions/exec": "^2.0.0", "@actions/exec": "^2.0.0",
"@actions/io": "^2.0.0" "@actions/io": "^2.0.0"

View File

@@ -84,11 +84,7 @@ export async function saveOnlyRun(
try { try {
const cacheId = await saveImpl(new NullStateProvider()); const cacheId = await saveImpl(new NullStateProvider());
if (cacheId === -1) { if (cacheId === -1) {
// The toolkit's saveCache already logs the underlying reason at core.warning(`Cache save failed.`);
// the appropriate severity (warning for most failures, info for
// benign concurrency races, error for 5xx). Avoid emitting a
// generic warning here that would duplicate or mask that signal.
core.debug(`Cache was not saved.`);
} }
} catch (err) { } catch (err) {
console.error(err); console.error(err);