Compare commits

..

11 Commits

Author SHA1 Message Date
Sampark Sharma c23fe4b81f FIx test 2022-12-21 10:30:22 +00:00
Sampark Sharma 034d154f88 Merge branch 'phantsure/version-logging' of https://github.com/actions/toolkit into phantsure/version-logging 2022-12-21 10:27:13 +00:00
Sampark Sharma ccfa36f304 Address review comments 2022-12-21 10:24:52 +00:00
Sampark Sharma e96dc8a69a Update packages/cache/src/internal/cacheHttpClient.ts
Co-authored-by: Bishal Prasad <bishal-pdmsft@github.com>
2022-12-16 18:17:37 +05:30
Sampark Sharma b8c50aa82d Fix response code 2022-12-16 05:55:53 +00:00
Sampark Sharma 24685611e2 Add current scope from github ref 2022-12-16 05:54:48 +00:00
Sampark Sharma e559a15ca6 Fix test 2022-12-13 11:36:10 +00:00
Sampark Sharma 816c1b3760 Fix tests 2022-12-13 11:25:40 +00:00
Sampark Sharma b9d1dd898e Address review comments 2022-11-15 11:04:24 +00:00
Sampark Sharma aaac0e6c98 Address review comments 2022-11-15 10:32:24 +00:00
Sampark Sharma a735d9bcd4 Add logs for cache version on miss 2022-11-14 06:31:26 +00:00
6 changed files with 44 additions and 17 deletions
+1 -1
View File
@@ -221,7 +221,7 @@ console.log(`We can even get context data, like the repo: ${context.repo.repo}`)
## Contributing
We welcome contributions. See [how to contribute](.github/CONTRIBUTING.md).
hi
## Code of Conduct
See [our code of conduct](CODE_OF_CONDUCT.md).
+31 -1
View File
@@ -17,7 +17,8 @@ import {
CommitCacheRequest,
ReserveCacheRequest,
ReserveCacheResponse,
ITypedResponseWithError
ITypedResponseWithError,
ArtifactCacheList
} from './contracts'
import {downloadCacheHttpClient, downloadCacheStorageSDK} from './downloadUtils'
import {
@@ -104,6 +105,10 @@ export async function getCacheEntry(
httpClient.getJson<ArtifactCacheEntry>(getCacheApiUrl(resource))
)
if (response.statusCode === 204) {
// List cache for primary key only if cache miss occurs
if (core.isDebug()) {
await printCachesListForDiagnostics(keys[0], httpClient, version)
}
return null
}
if (!isSuccessStatusCode(response.statusCode)) {
@@ -122,6 +127,31 @@ export async function getCacheEntry(
return cacheResult
}
async function printCachesListForDiagnostics(
key: string,
httpClient: HttpClient,
version: string
): Promise<void> {
const resource = `caches?key=${encodeURIComponent(key)}`
const response = await retryTypedResponse('listCache', async () =>
httpClient.getJson<ArtifactCacheList>(getCacheApiUrl(resource))
)
if (response.statusCode === 200) {
const cacheListResult = response.result
const totalCount = cacheListResult?.totalCount
if (totalCount && totalCount > 0) {
core.debug(
`No matching cache found for cache key '${key}', version '${version} and scope ${process.env['GITHUB_REF']}. There exist one or more cache(s) with similar key but they have different version or scope. See more info on cache matching here: https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#matching-a-cache-key \nOther caches with similar key:`
)
for (const cacheEntry of cacheListResult?.artifactCaches || []) {
core.debug(
`Cache Key: ${cacheEntry?.cacheKey}, Cache Version: ${cacheEntry?.cacheVersion}, Cache Scope: ${cacheEntry?.scope}, Cache Created: ${cacheEntry?.creationTime}`
)
}
}
}
}
export async function downloadCache(
archiveLocation: string,
archivePath: string,
+6
View File
@@ -9,10 +9,16 @@ export interface ITypedResponseWithError<T> extends TypedResponse<T> {
export interface ArtifactCacheEntry {
cacheKey?: string
scope?: string
cacheVersion?: string
creationTime?: string
archiveLocation?: string
}
export interface ArtifactCacheList {
totalCount: number
artifactCaches?: ArtifactCacheEntry[]
}
export interface CommitCacheRequest {
size: number
}
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "@actions/io",
"version": "1.1.3",
"version": "1.1.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@actions/io",
"version": "1.1.3",
"version": "1.1.2",
"license": "MIT"
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@actions/io",
"version": "1.1.3",
"version": "1.1.2",
"description": "Actions io lib",
"keywords": [
"github",
+3 -12
View File
@@ -4,8 +4,7 @@ import * as path from 'path'
import {promisify} from 'util'
import * as ioUtil from './io-util'
// const exec = promisify(childProcess.exec)
// const fork = promisify(childProcess.fork)
const exec = promisify(childProcess.exec)
const execFile = promisify(childProcess.execFile)
/**
@@ -130,20 +129,12 @@ export async function rmRF(inputPath: string): Promise<void> {
try {
const cmdPath = ioUtil.getCmdPath()
if (await ioUtil.isDirectory(inputPath, true)) {
await execFile(`${cmdPath} /s /c "rd /s /q "%inputPath%""`, {
await exec(`${cmdPath} /s /c "rd /s /q "%inputPath%""`, {
env: {inputPath}
}).catch(err => {
// if you try to delete a file that doesn't exist, desired result is achieved
// other errors are valid
if (err.code !== 'ENOENT') throw err
})
} else {
await execFile(`${cmdPath} /s /c "del /f /a "%inputPath%""`, {
await exec(`${cmdPath} /s /c "del /f /a "%inputPath%""`, {
env: {inputPath}
}).catch(err => {
// if you try to delete a file that doesn't exist, desired result is achieved
// other errors are valid
if (err.code !== 'ENOENT') throw err
})
}
} catch (err) {