Compare commits

..

13 Commits

Author SHA1 Message Date
Salman Muin Kayser Chishti 4690728788 docs(cache): update README for v5.0.0 and Node.js 24 support 2025-12-11 18:11:25 +00:00
Salman Muin Kayser Chishti cc6abe3c3a chore(releases): update release notes for v5.0.0 to remove punycode deprecation warning 2025-12-11 14:43:23 +00:00
Salman Muin Kayser Chishti c6502bc679 PR number update in releases 2025-12-11 14:33:30 +00:00
Salman Muin Kayser Chishti bdd6eb4293 update releases 2025-12-11 14:32:58 +00:00
Salman Muin Kayser Chishti 6785788751 Merge remote-tracking branch 'origin/main' into prepare-cache-release-v5.0.0 2025-12-11 14:27:41 +00:00
Salman Chishti ddf2d52556 Merge pull request #2198 from actions/cache-bump-deps
chore(cache): bump @actions/* dependencies to v2/v3
2025-12-11 14:25:35 +00:00
Salman Muin Kayser Chishti 7c1b12a15e chore(cache): update @actions/core to 2.0.1 2025-12-11 13:57:58 +00:00
Salman Muin Kayser Chishti fdbf9e3ec2 Merge remote-tracking branch 'origin/main' into cache-bump-deps 2025-12-11 13:54:20 +00:00
Salman Muin Kayser Chishti 369aa55cdc update to core 2.0.1 which has exec 2.0.0 2025-12-11 13:54:17 +00:00
Salman Muin Kayser Chishti e48877e66c chore(cache): bump @actions/* dependencies to v2/v3
- @actions/core: ^1.11.1 → ^2.0.0
- @actions/exec: ^1.0.1 → ^2.0.0
- @actions/glob: ^0.1.0 → ^0.5.0
- @actions/http-client: ^2.1.1 → ^3.0.0
- @actions/io: ^1.0.1 → ^2.0.0
2025-12-10 11:38:25 +00:00
Salman Muin Kayser Chishti eb7ff8401e chore(cache): regenerate package-lock.json with Node 24 2025-12-10 11:09:56 +00:00
Salman Muin Kayser Chishti 45ec4a2087 chore: update dependencies and remove deprecated package
- Removed `@azure/ms-rest-js` dependency to fix Node.js 24+ punycode deprecation warning.
  - The `TransferProgressEvent` type is now imported from `@azure/core-rest-pipeline`.
- Updated `package.json` to reflect the new dependency.
- Updated tests to import `TransferProgressEvent` from the new package.
- Updated `package-lock.json` to remove `@azure/ms-rest-js` and include `@azure/core-rest-pipeline`.
- Bumped versions of several dependencies including `@azure/storage-blob` and `@azure/storage-common`.
2025-12-10 11:04:34 +00:00
Salman Muin Kayser Chishti b0464628c0 Prepare cache v5 release 2025-12-09 16:11:32 +00:00
7 changed files with 80 additions and 135 deletions
-1
View File
@@ -5,4 +5,3 @@ packages/*/__tests__/_temp/
.DS_Store
*.xar
packages/*/audit.json
.nx/
+9 -7
View File
@@ -8,17 +8,19 @@ Note that GitHub will remove any cache entries that have not been accessed in ov
## ⚠️ Important changes
### Node.js 24 Support
Version `5.0.0` adds support for Node.js 24 and updates all `@actions/*` dependencies to their latest major versions.
### Cache Service v2
The cache backend service has been rewritten from the ground up for improved performance and reliability. The [@actions/cache](https://github.com/actions/toolkit/tree/main/packages/cache) package now integrates with the new cache service (v2) APIs.
The new service will gradually roll out as of **February 1st, 2025**. The legacy service will also be sunset on the same date. Changes in this release are **fully backward compatible**.
The new service rolled out as of **February 1st, 2025**. The legacy service was also sunset on the same date. Changes in version `4.0.0` are **fully backward compatible**.
**All previous versions of this package will be deprecated**. We recommend upgrading to version `4.0.0` as soon as possible before **February 1st, 2025.**
**All versions prior to 4.0.0 are deprecated**. We recommend upgrading to version `5.0.0` for the latest features and Node.js 24 support.
If you do not upgrade, all workflow runs using any of the deprecated [@actions/cache](https://github.com/actions/toolkit/tree/main/packages/cache) packages will fail.
Upgrading to the recommended version should not break or require any changes to your workflows beyond updating your `package.json` to version `4.0.0`.
Read more about the change & access the migration guide: [reference to the announcement](https://github.com/actions/toolkit/discussions/1890).
Read more about the cache service v2 change & access the migration guide: [reference to the announcement](https://github.com/actions/toolkit/discussions/1890).
## Usage
+12
View File
@@ -1,5 +1,17 @@
# @actions/cache Releases
### 5.0.0
- Remove `@azure/ms-rest-js` dependency [#2197](https://github.com/actions/toolkit/pull/2197)
- The `TransferProgressEvent` type is now imported from `@azure/core-rest-pipeline` instead of `@azure/ms-rest-js`
- Bump `@actions/core` from `^1.11.1` to `^2.0.0` [#2198](https://github.com/actions/toolkit/pull/2198)
- Bump `@actions/exec` from `^1.0.1` to `^2.0.0` [#2198](https://github.com/actions/toolkit/pull/2198)
- Bump `@actions/glob` from `^0.1.0` to `^0.5.0` [#2198](https://github.com/actions/toolkit/pull/2198)
- Bump `@actions/http-client` from `^2.1.1` to `^3.0.0` [#2198](https://github.com/actions/toolkit/pull/2198)
- Bump `@actions/io` from `^1.0.1` to `^2.0.0` [#2198](https://github.com/actions/toolkit/pull/2198)
- Add support for Node.js 24 [#2110](https://github.com/actions/toolkit/pull/2110)
- Add `node-fetch` override to resolve audit vulnerabilities [#2110](https://github.com/actions/toolkit/pull/2110)
### 4.1.0
- Remove client side 10GiB cache size limit check & update twirp client [#2118](https://github.com/actions/toolkit/pull/2118)
+53 -19
View File
@@ -9,11 +9,11 @@
"version": "5.0.0",
"license": "MIT",
"dependencies": {
"@actions/core": "^1.11.1",
"@actions/exec": "^1.0.1",
"@actions/glob": "^0.1.0",
"@actions/http-client": "^2.1.1",
"@actions/io": "^1.0.1",
"@actions/core": "^2.0.0",
"@actions/exec": "^2.0.0",
"@actions/glob": "^0.5.0",
"@actions/http-client": "^3.0.0",
"@actions/io": "^2.0.0",
"@azure/abort-controller": "^1.1.0",
"@azure/core-rest-pipeline": "^1.22.0",
"@azure/storage-blob": "^12.13.0",
@@ -28,6 +28,35 @@
}
},
"node_modules/@actions/core": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-2.0.1.tgz",
"integrity": "sha512-oBfqT3GwkvLlo1fjvhQLQxuwZCGTarTE5OuZ2Wg10hvhBj7LRIlF611WT4aZS6fDhO5ZKlY7lCAZTlpmyaHaeg==",
"license": "MIT",
"dependencies": {
"@actions/exec": "^2.0.0",
"@actions/http-client": "^3.0.0"
}
},
"node_modules/@actions/exec": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@actions/exec/-/exec-2.0.0.tgz",
"integrity": "sha512-k8ngrX2voJ/RIN6r9xB82NVqKpnMRtxDoiO+g3olkIUpQNqjArXrCQceduQZCQj3P3xm32pChRLqRrtXTlqhIw==",
"license": "MIT",
"dependencies": {
"@actions/io": "^2.0.0"
}
},
"node_modules/@actions/glob": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.5.0.tgz",
"integrity": "sha512-tST2rjPvJLRZLuT9NMUtyBjvj9Yo0MiJS3ow004slMvm8GFM+Zv9HvMJ7HWzfUyJnGrJvDsYkWBaaG3YKXRtCw==",
"license": "MIT",
"dependencies": {
"@actions/core": "^1.9.1",
"minimatch": "^3.0.4"
}
},
"node_modules/@actions/glob/node_modules/@actions/core": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz",
"integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==",
@@ -37,7 +66,7 @@
"@actions/http-client": "^2.0.1"
}
},
"node_modules/@actions/exec": {
"node_modules/@actions/glob/node_modules/@actions/exec": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz",
"integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==",
@@ -46,17 +75,7 @@
"@actions/io": "^1.0.1"
}
},
"node_modules/@actions/glob": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.1.2.tgz",
"integrity": "sha512-SclLR7Ia5sEqjkJTPs7Sd86maMDw43p769YxBOxvPvEWuPEhpAnBsQfENOpXjFYMmhCqd127bmf+YdvJqVqR4A==",
"license": "MIT",
"dependencies": {
"@actions/core": "^1.2.6",
"minimatch": "^3.0.4"
}
},
"node_modules/@actions/http-client": {
"node_modules/@actions/glob/node_modules/@actions/http-client": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz",
"integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==",
@@ -66,12 +85,28 @@
"undici": "^5.25.4"
}
},
"node_modules/@actions/io": {
"node_modules/@actions/glob/node_modules/@actions/io": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz",
"integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==",
"license": "MIT"
},
"node_modules/@actions/http-client": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-3.0.0.tgz",
"integrity": "sha512-1s3tXAfVMSz9a4ZEBkXXRQD4QhY3+GAsWSbaYpeknPOKEeyRiU3lH+bHiLMZdo2x/fIeQ/hscL1wCkDLVM2DZQ==",
"license": "MIT",
"dependencies": {
"tunnel": "^0.0.6",
"undici": "^5.28.5"
}
},
"node_modules/@actions/io": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@actions/io/-/io-2.0.0.tgz",
"integrity": "sha512-Jv33IN09XLO+0HS79aaODsvIRyduiF7NY/F6LYeK5oeUmrsz7aFdRphQjFoESF4jS7lMauDOttKALcpapVDIAg==",
"license": "MIT"
},
"node_modules/@azure/abort-controller": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz",
@@ -673,7 +708,6 @@
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
"license": "Apache-2.0",
"peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
+5 -5
View File
@@ -37,12 +37,12 @@
"url": "https://github.com/actions/toolkit/issues"
},
"dependencies": {
"@actions/core": "^1.11.1",
"@actions/exec": "^1.0.1",
"@actions/glob": "^0.1.0",
"@actions/core": "^2.0.0",
"@actions/exec": "^2.0.0",
"@actions/glob": "^0.5.0",
"@protobuf-ts/runtime-rpc": "^2.11.1",
"@actions/http-client": "^2.1.1",
"@actions/io": "^1.0.1",
"@actions/http-client": "^3.0.0",
"@actions/io": "^2.0.0",
"@azure/abort-controller": "^1.1.0",
"@azure/core-rest-pipeline": "^1.22.0",
"@azure/storage-blob": "^12.13.0",
@@ -1,83 +0,0 @@
/**
* Test to validate that glob works correctly on Windows with backslash paths
* This test validates the fix for glob not working on GitHub's Windows runners
*/
import {MatchKind} from '../src/internal-match-kind'
import {Pattern} from '../src/internal-pattern'
const IS_WINDOWS = process.platform === 'win32'
describe('Windows path matching', () => {
it('matches paths with backslashes on Windows', () => {
if (!IS_WINDOWS) {
// This test is only relevant on Windows
return
}
// Test basic pattern matching with Windows paths
const pattern = new Pattern('C:\\Users\\test\\*')
// The itemPath would come from fs.readdir with backslashes on Windows
const itemPath = 'C:\\Users\\test\\file.txt'
// This should match because the pattern and path both refer to the same file
expect(pattern.match(itemPath)).toBe(MatchKind.All)
})
it('partial matches work with backslashes on Windows', () => {
if (!IS_WINDOWS) {
return
}
// Test partial matching with Windows paths
const pattern = new Pattern('C:\\Users\\test\\**')
// Should partially match parent directory
expect(pattern.partialMatch('C:\\Users')).toBe(true)
expect(pattern.partialMatch('C:\\Users\\test')).toBe(true)
})
it('matches globstar patterns with backslashes on Windows', () => {
if (!IS_WINDOWS) {
return
}
const pattern = new Pattern('C:\\foo\\**')
// Should match the directory itself and descendants
expect(pattern.match('C:\\foo')).toBe(MatchKind.All)
expect(pattern.match('C:\\foo\\bar')).toBe(MatchKind.All)
expect(pattern.match('C:\\foo\\bar\\baz.txt')).toBe(MatchKind.All)
})
it('matches wildcard patterns with mixed separators on Windows', () => {
if (!IS_WINDOWS) {
return
}
// Pattern might be specified with forward slashes by user
const pattern = new Pattern('C:/Users/*/file.txt')
// But the actual path from filesystem will have backslashes
expect(pattern.match('C:\\Users\\test\\file.txt')).toBe(MatchKind.All)
})
it('handles complex patterns with backslashes on Windows', () => {
if (!IS_WINDOWS) {
return
}
const currentDrive = process.cwd().substring(0, 2)
const pattern = new Pattern(`${currentDrive}\\**\\*.txt`)
// Should match .txt files at any depth
expect(pattern.match(`${currentDrive}\\file.txt`)).toBe(MatchKind.All)
expect(pattern.match(`${currentDrive}\\foo\\bar\\test.txt`)).toBe(
MatchKind.All
)
expect(pattern.match(`${currentDrive}\\foo\\bar\\test.js`)).toBe(
MatchKind.None
)
})
})
+1 -20
View File
@@ -156,10 +156,6 @@ export class Pattern {
itemPath = pathHelper.safeTrimTrailingSeparator(itemPath)
}
// Convert to forward slashes on Windows before matching with minimatch
// since the pattern was converted to forward slashes in the constructor
itemPath = Pattern.convertToMinimatchPath(itemPath)
// Match
if (this.minimatch.match(itemPath)) {
return this.trailingSeparator ? MatchKind.Directory : MatchKind.All
@@ -180,11 +176,8 @@ export class Pattern {
return this.rootRegExp.test(itemPath)
}
// Convert to forward slashes on Windows to match the pattern format used by minimatch
itemPath = Pattern.convertToMinimatchPath(itemPath)
return this.minimatch.matchOne(
itemPath.split(/\/+/),
itemPath.split(IS_WINDOWS ? /\\+/ : /\/+/),
this.minimatch.set[0],
true
)
@@ -200,18 +193,6 @@ export class Pattern {
.replace(/\*/g, '[*]') // escape '*'
}
/**
* Converts path to forward slashes on Windows for compatibility with minimatch.
* On Windows, minimatch patterns use forward slashes, so paths must be converted
* to match the same format.
*/
private static convertToMinimatchPath(itemPath: string): string {
if (IS_WINDOWS) {
return itemPath.replace(/\\/g, '/')
}
return itemPath
}
/**
* Normalizes slashes and ensures absolute root
*/