diff --git a/.github/workflows/release-new-action-version.yml b/.github/workflows/release-new-action-version.yml index 7e5de34..959ef8d 100644 --- a/.github/workflows/release-new-action-version.yml +++ b/.github/workflows/release-new-action-version.yml @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Update the ${{ env.TAG_NAME }} tag - uses: actions/publish-action@v0.3.0 + uses: actions/publish-action@v0.4.0 with: source-tag: ${{ env.TAG_NAME }} slack-webhook: ${{ secrets.SLACK_WEBHOOK }} diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml index 198e82e..ecb4ef4 100644 --- a/.github/workflows/versions.yml +++ b/.github/workflows/versions.yml @@ -158,6 +158,22 @@ jobs: run: __tests__/verify-go.sh 1.23.2 shell: bash + go-version-file-with-go-version: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large] + steps: + - uses: actions/checkout@v5 + - name: Setup Go from .go-version file + uses: ./ + with: + go-version-file: __tests__/data/.go-version + - name: verify go + run: __tests__/verify-go.sh 1.22.4 + shell: bash + setup-versions-from-manifest: runs-on: ${{ matrix.os }} strategy: diff --git a/.licenses/npm/semver-7.7.1.dep.yml b/.licenses/npm/semver-7.7.3.dep.yml similarity index 98% rename from .licenses/npm/semver-7.7.1.dep.yml rename to .licenses/npm/semver-7.7.3.dep.yml index 3194cf4..77ae981 100644 --- a/.licenses/npm/semver-7.7.1.dep.yml +++ b/.licenses/npm/semver-7.7.3.dep.yml @@ -1,6 +1,6 @@ --- name: semver -version: 7.7.1 +version: 7.7.3 type: npm summary: The semantic version parser used by npm. homepage: diff --git a/__tests__/data/.go-version b/__tests__/data/.go-version new file mode 100644 index 0000000..be02b33 --- /dev/null +++ b/__tests__/data/.go-version @@ -0,0 +1 @@ +1.22.4 \ No newline at end of file diff --git a/action.yml b/action.yml index 6a345b3..0fdb998 100644 --- a/action.yml +++ b/action.yml @@ -5,7 +5,7 @@ inputs: go-version: description: 'The Go version to download (if necessary) and use. Supports semver spec and ranges. Be sure to enclose this option in single quotation marks.' go-version-file: - description: 'Path to the go.mod, .tool-versions, or go.work file.' + description: 'Path to the go.mod, go.work, .go-version, or .tool-versions file.' check-latest: description: 'Set this option to true if you want the action to always check for the latest available version that satisfies the version spec' default: false diff --git a/dist/setup/index.js b/dist/setup/index.js index b6244b4..e35f338 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -61424,6 +61424,9 @@ exports.AbortError = AbortError; /***/ 1532: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const ANY = Symbol('SemVer ANY') // hoisted class for cyclic dependency class Comparator { @@ -61572,6 +61575,9 @@ const Range = __nccwpck_require__(9828) /***/ 9828: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const SPACE_CHARACTERS = /\s+/g // hoisted class for cyclic dependency @@ -61827,6 +61833,7 @@ const isSatisfiable = (comparators, options) => { // already replaced the hyphen ranges // turn into a set of JUST comparators. const parseComparator = (comp, options) => { + comp = comp.replace(re[t.BUILD], '') debug('comp', comp, options) comp = replaceCarets(comp, options) debug('caret', comp) @@ -62133,9 +62140,12 @@ const testSet = (set, version, options) => { /***/ 8088: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const debug = __nccwpck_require__(427) const { MAX_LENGTH, MAX_SAFE_INTEGER } = __nccwpck_require__(2293) -const { safeRe: re, safeSrc: src, t } = __nccwpck_require__(9523) +const { safeRe: re, t } = __nccwpck_require__(9523) const parseOptions = __nccwpck_require__(785) const { compareIdentifiers } = __nccwpck_require__(2463) @@ -62244,11 +62254,25 @@ class SemVer { other = new SemVer(other, this.options) } - return ( - compareIdentifiers(this.major, other.major) || - compareIdentifiers(this.minor, other.minor) || - compareIdentifiers(this.patch, other.patch) - ) + if (this.major < other.major) { + return -1 + } + if (this.major > other.major) { + return 1 + } + if (this.minor < other.minor) { + return -1 + } + if (this.minor > other.minor) { + return 1 + } + if (this.patch < other.patch) { + return -1 + } + if (this.patch > other.patch) { + return 1 + } + return 0 } comparePre (other) { @@ -62317,8 +62341,7 @@ class SemVer { } // Avoid an invalid semver results if (identifier) { - const r = new RegExp(`^${this.options.loose ? src[t.PRERELEASELOOSE] : src[t.PRERELEASE]}$`) - const match = `-${identifier}`.match(r) + const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE]) if (!match || match[1] !== identifier) { throw new Error(`invalid identifier: ${identifier}`) } @@ -62458,6 +62481,9 @@ module.exports = SemVer /***/ 8848: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const parse = __nccwpck_require__(5925) const clean = (version, options) => { const s = parse(version.trim().replace(/^[=v]+/, ''), options) @@ -62471,6 +62497,9 @@ module.exports = clean /***/ 5098: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const eq = __nccwpck_require__(1898) const neq = __nccwpck_require__(6017) const gt = __nccwpck_require__(4123) @@ -62530,6 +62559,9 @@ module.exports = cmp /***/ 3466: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const SemVer = __nccwpck_require__(8088) const parse = __nccwpck_require__(5925) const { safeRe: re, t } = __nccwpck_require__(9523) @@ -62597,6 +62629,9 @@ module.exports = coerce /***/ 2156: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const SemVer = __nccwpck_require__(8088) const compareBuild = (a, b, loose) => { const versionA = new SemVer(a, loose) @@ -62611,6 +62646,9 @@ module.exports = compareBuild /***/ 2804: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const compare = __nccwpck_require__(4309) const compareLoose = (a, b) => compare(a, b, true) module.exports = compareLoose @@ -62621,6 +62659,9 @@ module.exports = compareLoose /***/ 4309: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const SemVer = __nccwpck_require__(8088) const compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose)) @@ -62633,6 +62674,9 @@ module.exports = compare /***/ 4297: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const parse = __nccwpck_require__(5925) const diff = (version1, version2) => { @@ -62698,6 +62742,9 @@ module.exports = diff /***/ 1898: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const compare = __nccwpck_require__(4309) const eq = (a, b, loose) => compare(a, b, loose) === 0 module.exports = eq @@ -62708,6 +62755,9 @@ module.exports = eq /***/ 4123: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const compare = __nccwpck_require__(4309) const gt = (a, b, loose) => compare(a, b, loose) > 0 module.exports = gt @@ -62718,6 +62768,9 @@ module.exports = gt /***/ 5522: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const compare = __nccwpck_require__(4309) const gte = (a, b, loose) => compare(a, b, loose) >= 0 module.exports = gte @@ -62728,6 +62781,9 @@ module.exports = gte /***/ 900: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const SemVer = __nccwpck_require__(8088) const inc = (version, release, options, identifier, identifierBase) => { @@ -62754,6 +62810,9 @@ module.exports = inc /***/ 194: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const compare = __nccwpck_require__(4309) const lt = (a, b, loose) => compare(a, b, loose) < 0 module.exports = lt @@ -62764,6 +62823,9 @@ module.exports = lt /***/ 7520: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const compare = __nccwpck_require__(4309) const lte = (a, b, loose) => compare(a, b, loose) <= 0 module.exports = lte @@ -62774,6 +62836,9 @@ module.exports = lte /***/ 6688: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const SemVer = __nccwpck_require__(8088) const major = (a, loose) => new SemVer(a, loose).major module.exports = major @@ -62784,6 +62849,9 @@ module.exports = major /***/ 8447: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const SemVer = __nccwpck_require__(8088) const minor = (a, loose) => new SemVer(a, loose).minor module.exports = minor @@ -62794,6 +62862,9 @@ module.exports = minor /***/ 6017: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const compare = __nccwpck_require__(4309) const neq = (a, b, loose) => compare(a, b, loose) !== 0 module.exports = neq @@ -62804,6 +62875,9 @@ module.exports = neq /***/ 5925: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const SemVer = __nccwpck_require__(8088) const parse = (version, options, throwErrors = false) => { if (version instanceof SemVer) { @@ -62827,6 +62901,9 @@ module.exports = parse /***/ 2866: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const SemVer = __nccwpck_require__(8088) const patch = (a, loose) => new SemVer(a, loose).patch module.exports = patch @@ -62837,6 +62914,9 @@ module.exports = patch /***/ 4016: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const parse = __nccwpck_require__(5925) const prerelease = (version, options) => { const parsed = parse(version, options) @@ -62850,6 +62930,9 @@ module.exports = prerelease /***/ 6417: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const compare = __nccwpck_require__(4309) const rcompare = (a, b, loose) => compare(b, a, loose) module.exports = rcompare @@ -62860,6 +62943,9 @@ module.exports = rcompare /***/ 8701: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const compareBuild = __nccwpck_require__(2156) const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) module.exports = rsort @@ -62870,6 +62956,9 @@ module.exports = rsort /***/ 6055: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const Range = __nccwpck_require__(9828) const satisfies = (version, range, options) => { try { @@ -62887,6 +62976,9 @@ module.exports = satisfies /***/ 1426: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const compareBuild = __nccwpck_require__(2156) const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) module.exports = sort @@ -62897,6 +62989,9 @@ module.exports = sort /***/ 9601: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const parse = __nccwpck_require__(5925) const valid = (version, options) => { const v = parse(version, options) @@ -62910,6 +63005,9 @@ module.exports = valid /***/ 1383: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + // just pre-load all the stuff that index.js lazily exports const internalRe = __nccwpck_require__(9523) const constants = __nccwpck_require__(2293) @@ -63006,6 +63104,9 @@ module.exports = { /***/ 2293: /***/ ((module) => { +"use strict"; + + // Note: this is the semver.org version of the spec that it implements // Not necessarily the package version of this code. const SEMVER_SPEC_VERSION = '2.0.0' @@ -63048,6 +63149,9 @@ module.exports = { /***/ 427: /***/ ((module) => { +"use strict"; + + const debug = ( typeof process === 'object' && process.env && @@ -63064,8 +63168,15 @@ module.exports = debug /***/ 2463: /***/ ((module) => { +"use strict"; + + const numeric = /^[0-9]+$/ const compareIdentifiers = (a, b) => { + if (typeof a === 'number' && typeof b === 'number') { + return a === b ? 0 : a < b ? -1 : 1 + } + const anum = numeric.test(a) const bnum = numeric.test(b) @@ -63094,6 +63205,9 @@ module.exports = { /***/ 5339: /***/ ((module) => { +"use strict"; + + class LRUCache { constructor () { this.max = 1000 @@ -63141,6 +63255,9 @@ module.exports = LRUCache /***/ 785: /***/ ((module) => { +"use strict"; + + // parse out just the options we care about const looseOption = Object.freeze({ loose: true }) const emptyOpts = Object.freeze({ }) @@ -63163,6 +63280,9 @@ module.exports = parseOptions /***/ 9523: /***/ ((module, exports, __nccwpck_require__) => { +"use strict"; + + const { MAX_SAFE_COMPONENT_LENGTH, MAX_SAFE_BUILD_LENGTH, @@ -63241,12 +63361,14 @@ createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + // ## Pre-release Version Identifier // A numeric identifier, or a non-numeric identifier. +// Non-numberic identifiers include numberic identifiers but can be longer. +// Therefore non-numberic identifiers must go first. -createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER] -}|${src[t.NONNUMERICIDENTIFIER]})`) +createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER] +}|${src[t.NUMERICIDENTIFIER]})`) -createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE] -}|${src[t.NONNUMERICIDENTIFIER]})`) +createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER] +}|${src[t.NUMERICIDENTIFIERLOOSE]})`) // ## Pre-release Version // Hyphen, followed by one or more dot-separated pre-release version @@ -63389,6 +63511,9 @@ createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$') /***/ 9380: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + // Determine if version is greater than all the versions possible in the range. const outside = __nccwpck_require__(420) const gtr = (version, range, options) => outside(version, range, '>', options) @@ -63400,6 +63525,9 @@ module.exports = gtr /***/ 7008: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const Range = __nccwpck_require__(9828) const intersects = (r1, r2, options) => { r1 = new Range(r1, options) @@ -63414,6 +63542,9 @@ module.exports = intersects /***/ 3323: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const outside = __nccwpck_require__(420) // Determine if version is less than all the versions possible in the range const ltr = (version, range, options) => outside(version, range, '<', options) @@ -63425,6 +63556,9 @@ module.exports = ltr /***/ 579: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const SemVer = __nccwpck_require__(8088) const Range = __nccwpck_require__(9828) @@ -63457,6 +63591,9 @@ module.exports = maxSatisfying /***/ 832: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const SemVer = __nccwpck_require__(8088) const Range = __nccwpck_require__(9828) const minSatisfying = (versions, range, options) => { @@ -63488,6 +63625,9 @@ module.exports = minSatisfying /***/ 4179: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const SemVer = __nccwpck_require__(8088) const Range = __nccwpck_require__(9828) const gt = __nccwpck_require__(4123) @@ -63556,6 +63696,9 @@ module.exports = minVersion /***/ 420: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const SemVer = __nccwpck_require__(8088) const Comparator = __nccwpck_require__(1532) const { ANY } = Comparator @@ -63643,6 +63786,9 @@ module.exports = outside /***/ 5297: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + // given a set of versions and a range, create a "simplified" range // that includes the same versions that the original range does // If the original range is shorter than the simplified one, return that. @@ -63697,6 +63843,9 @@ module.exports = (versions, range, options) => { /***/ 7863: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const Range = __nccwpck_require__(9828) const Comparator = __nccwpck_require__(1532) const { ANY } = Comparator @@ -63951,6 +64100,9 @@ module.exports = subset /***/ 2706: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const Range = __nccwpck_require__(9828) // Mostly just for testing and legacy API reasons @@ -63966,6 +64118,9 @@ module.exports = toComparators /***/ 2098: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; + + const Range = __nccwpck_require__(9828) const validRange = (range, options) => { try { diff --git a/package-lock.json b/package-lock.json index eba6f33..fa616af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,12 +16,12 @@ "@actions/http-client": "^2.2.1", "@actions/io": "^1.0.2", "@actions/tool-cache": "^2.0.2", - "semver": "^7.6.3" + "semver": "^7.7.3" }, "devDependencies": { "@types/jest": "^29.5.14", "@types/node": "^24.1.0", - "@types/semver": "^7.5.8", + "@types/semver": "^7.7.1", "@typescript-eslint/eslint-plugin": "^8.31.1", "@typescript-eslint/parser": "^8.35.1", "@vercel/ncc": "^0.38.1", @@ -1636,10 +1636,11 @@ } }, "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/stack-utils": { "version": "2.0.3", @@ -5555,9 +5556,9 @@ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "license": "ISC", "bin": { "semver": "bin/semver.js" diff --git a/package.json b/package.json index 5da700a..da73448 100644 --- a/package.json +++ b/package.json @@ -35,12 +35,12 @@ "@actions/http-client": "^2.2.1", "@actions/io": "^1.0.2", "@actions/tool-cache": "^2.0.2", - "semver": "^7.6.3" + "semver": "^7.7.3" }, "devDependencies": { "@types/jest": "^29.5.14", "@types/node": "^24.1.0", - "@types/semver": "^7.5.8", + "@types/semver": "^7.7.1", "@typescript-eslint/eslint-plugin": "^8.31.1", "@typescript-eslint/parser": "^8.35.1", "@vercel/ncc": "^0.38.1",