Add ability to cache only latest N versions and cache github/gh-aw-actions (#136)
* add ability to cache only latest N versions * fix test
This commit is contained in:
@@ -23,8 +23,10 @@ async function main() {
|
||||
const patterns = config.patterns
|
||||
const defaultBranch = config.defaultBranch
|
||||
const ignoreTags = config.ignoreTags
|
||||
const latestMajorVersions = args.latestMajorVersions || config.latestMajorVersions
|
||||
const latestVersionsPerMajor = args.latestVersionsPerMajor || config.latestVersionsPerMajor
|
||||
assert.ok(patterns && patterns.length, 'Existing patterns must not be empty')
|
||||
await actionConfig.add(owner, repo, patterns, defaultBranch, ignoreTags)
|
||||
await actionConfig.add(owner, repo, patterns, defaultBranch, ignoreTags, latestMajorVersions, latestVersionsPerMajor)
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
@@ -51,6 +53,8 @@ class Args {
|
||||
all = false
|
||||
owner = ''
|
||||
repo = ''
|
||||
latestMajorVersions = 0
|
||||
latestVersionsPerMajor = 0
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -58,9 +62,11 @@ class Args {
|
||||
* @returns {Args}
|
||||
*/
|
||||
function getArgs() {
|
||||
const parsedArgs = argHelper.parse(['all'])
|
||||
const parsedArgs = argHelper.parse(['all'], ['latest-major-versions', 'latest-versions-per-major'])
|
||||
const result = new Args()
|
||||
result.all = !!parsedArgs.flags['all']
|
||||
result.latestMajorVersions = parseNonNegativeInt(parsedArgs.options['latest-major-versions'], 'latest-major-versions')
|
||||
result.latestVersionsPerMajor = parseNonNegativeInt(parsedArgs.options['latest-versions-per-major'], 'latest-versions-per-major')
|
||||
|
||||
// All
|
||||
if (result.all) {
|
||||
@@ -88,9 +94,21 @@ function getArgs() {
|
||||
return result
|
||||
}
|
||||
|
||||
function parseNonNegativeInt(value, name) {
|
||||
if (!value) return 0
|
||||
const n = Number(value)
|
||||
if (!Number.isInteger(n) || n < 0) {
|
||||
argHelper.throwError(`--${name} must be a non-negative integer, got '${value}'`)
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
function printUsage() {
|
||||
console.error('USAGE: update-action.sh nwo')
|
||||
console.error(` nwo Name with owner. For example: actions/checkout`)
|
||||
console.error('USAGE: update-action.sh [--all] [--latest-major-versions N] [--latest-versions-per-major N] [nwo]')
|
||||
console.error(` --all Update all configured actions`)
|
||||
console.error(` --latest-major-versions Update to only keep the latest N major versions`)
|
||||
console.error(` --latest-versions-per-major Update to only keep the latest N version tags per major`)
|
||||
console.error(` nwo Name with owner. For example: actions/checkout`)
|
||||
}
|
||||
|
||||
main()
|
||||
Reference in New Issue
Block a user