mirror of
				https://github.com/actions/setup-go.git
				synced 2025-10-31 02:53:43 +00:00 
			
		
		
		
	Node 24 upgrade (#624)
* Node 24 upgrade Doing an upgrade for node 24, node 24 is stricter with types so need to add a type for achitecture * format * package updates * fix for check failures * upgrade @types/node * update package.json version * check failure fix * package-lock.json update * update node24 * npm run format * npm run format * node update from the workflows * Upgrade `actions/checkout` to v5 and `actions/setup-go` to v6 in README.md --------- Co-authored-by: Aparna Jyothi <aparnajyothi-y@github.com> Co-authored-by: Priya Gupta <147705955+priyagupta108@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									1d76b952eb
								
							
						
					
					
						commit
						e093d1e9bb
					
				
							
								
								
									
										2
									
								
								.github/workflows/basic-validation.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/basic-validation.yml
									
									
									
									
										vendored
									
									
								
							| @ -15,4 +15,4 @@ jobs: | ||||
|     name: Basic validation | ||||
|     uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main | ||||
|     with: | ||||
|       node-version: '20' | ||||
|       node-version: '24.x' | ||||
|  | ||||
							
								
								
									
										2
									
								
								.github/workflows/check-dist.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/check-dist.yml
									
									
									
									
										vendored
									
									
								
							| @ -16,4 +16,4 @@ jobs: | ||||
|     name: Check dist/ | ||||
|     uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main | ||||
|     with: | ||||
|       node-version: '20' | ||||
|       node-version: '24.x' | ||||
|  | ||||
							
								
								
									
										2
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
								
							| @ -1,6 +1,6 @@ | ||||
| --- | ||||
| name: "@types/node" | ||||
| version: 20.11.28 | ||||
| version: 24.1.0 | ||||
| type: npm | ||||
| summary: TypeScript definitions for node | ||||
| homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node | ||||
|  | ||||
							
								
								
									
										6
									
								
								.licenses/npm/undici-types.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								.licenses/npm/undici-types.dep.yml
									
									
									
										generated
									
									
									
								
							| @ -1,15 +1,17 @@ | ||||
| --- | ||||
| name: undici-types | ||||
| version: 5.26.5 | ||||
| version: 7.8.0 | ||||
| type: npm | ||||
| summary: A stand-alone types package for Undici | ||||
| homepage: https://undici.nodejs.org | ||||
| license: mit | ||||
| licenses: | ||||
| - sources: Auto-generated MIT license text | ||||
| - sources: LICENSE | ||||
|   text: | | ||||
|     MIT License | ||||
| 
 | ||||
|     Copyright (c) Matteo Collina and Undici contributors | ||||
| 
 | ||||
|     Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|     of this software and associated documentation files (the "Software"), to deal | ||||
|     in the Software without restriction, including without limitation the rights | ||||
|  | ||||
							
								
								
									
										46
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								README.md
									
									
									
									
									
								
							| @ -50,8 +50,8 @@ Matching by [semver spec](https://github.com/npm/node-semver): | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
|   - uses: actions/checkout@v4 | ||||
|   - uses: actions/setup-go@v5 | ||||
|   - uses: actions/checkout@v5 | ||||
|   - uses: actions/setup-go@v6 | ||||
|     with: | ||||
|       go-version: '^1.13.1' # The Go version to download (if necessary) and use. | ||||
|   - run: go version | ||||
| @ -59,8 +59,8 @@ steps: | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
|   - uses: actions/checkout@v4 | ||||
|   - uses: actions/setup-go@v5 | ||||
|   - uses: actions/checkout@v5 | ||||
|   - uses: actions/setup-go@v6 | ||||
|     with: | ||||
|       go-version: '>=1.17.0' | ||||
|   - run: go version | ||||
| @ -78,8 +78,8 @@ Matching an unstable pre-release: | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
|   - uses: actions/checkout@v4 | ||||
|   - uses: actions/setup-go@v5 | ||||
|   - uses: actions/checkout@v5 | ||||
|   - uses: actions/setup-go@v6 | ||||
|     with: | ||||
|       go-version: '1.18.0-rc.1' # The Go version to download (if necessary) and use. | ||||
|   - run: go version | ||||
| @ -87,8 +87,8 @@ steps: | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
|   - uses: actions/checkout@v4 | ||||
|   - uses: actions/setup-go@v5 | ||||
|   - uses: actions/checkout@v5 | ||||
|   - uses: actions/setup-go@v6 | ||||
|     with: | ||||
|       go-version: '1.16.0-beta.1' # The Go version to download (if necessary) and use. | ||||
|   - run: go version | ||||
| @ -102,8 +102,8 @@ See [action.yml](action.yml) | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
|   - uses: actions/checkout@v4 | ||||
|   - uses: actions/setup-go@v5 | ||||
|   - uses: actions/checkout@v5 | ||||
|   - uses: actions/setup-go@v6 | ||||
|     with: | ||||
|       go-version: '1.16.1' # The Go version to download (if necessary) and use. | ||||
|   - run: go run hello.go | ||||
| @ -123,8 +123,8 @@ want the most up-to-date Go version to always be used. | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
|   - uses: actions/checkout@v4 | ||||
|   - uses: actions/setup-go@v5 | ||||
|   - uses: actions/checkout@v5 | ||||
|   - uses: actions/setup-go@v6 | ||||
|     with: | ||||
|       go-version: '1.14' | ||||
|       check-latest: true | ||||
| @ -144,8 +144,8 @@ set to `true` | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
|   - uses: actions/checkout@v4 | ||||
|   - uses: actions/setup-go@v5 | ||||
|   - uses: actions/checkout@v5 | ||||
|   - uses: actions/setup-go@v6 | ||||
|     with: | ||||
|       go-version: 'stable' | ||||
|   - run: go run hello.go | ||||
| @ -153,8 +153,8 @@ steps: | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
|   - uses: actions/checkout@v4 | ||||
|   - uses: actions/setup-go@v5 | ||||
|   - uses: actions/checkout@v5 | ||||
|   - uses: actions/setup-go@v6 | ||||
|     with: | ||||
|       go-version: 'oldstable' | ||||
|   - run: go run hello.go | ||||
| @ -176,8 +176,8 @@ If some problem that prevents success caching happens then the action issues the | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
|   - uses: actions/checkout@v4 | ||||
|   - uses: actions/setup-go@v5 | ||||
|   - uses: actions/checkout@v5 | ||||
|   - uses: actions/setup-go@v6 | ||||
|     with: | ||||
|       go-version: '1.17' | ||||
|       check-latest: true | ||||
| @ -210,8 +210,8 @@ If both the `go-version` and the `go-version-file` inputs are provided then the | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
|   - uses: actions/checkout@v4 | ||||
|   - uses: actions/setup-go@v5 | ||||
|   - uses: actions/checkout@v5 | ||||
|   - uses: actions/setup-go@v6 | ||||
|     with: | ||||
|       go-version-file: 'path/to/go.mod' | ||||
|   - run: go version | ||||
| @ -228,9 +228,9 @@ jobs: | ||||
|         go: [ '1.14', '1.13' ] | ||||
|     name: Go ${{ matrix.go }} sample | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/checkout@v5 | ||||
|       - name: Setup go | ||||
|         uses: actions/setup-go@v5 | ||||
|         uses: actions/setup-go@v6 | ||||
|         with: | ||||
|           go-version: ${{ matrix.go }} | ||||
|       - run: go run hello.go | ||||
| @ -258,7 +258,7 @@ If that fails as well the action will try to download versions directly from htt | ||||
| If that fails as well you can get a higher rate limit with [generating a personal access token on github.com](https://github.com/settings/tokens/new) and passing it as the `token` input to the action: | ||||
| 
 | ||||
| ```yaml | ||||
| uses: actions/setup-go@v5 | ||||
| uses: actions/setup-go@v6 | ||||
| with: | ||||
|   token: ${{ secrets.GH_DOTCOM_TOKEN }} | ||||
|   go-version: '1.18' | ||||
|  | ||||
							
								
								
									
										25
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										25
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -1,12 +1,12 @@ | ||||
| { | ||||
|   "name": "setup-go", | ||||
|   "version": "5.0.0", | ||||
|   "version": "6.0.0", | ||||
|   "lockfileVersion": 3, | ||||
|   "requires": true, | ||||
|   "packages": { | ||||
|     "": { | ||||
|       "name": "setup-go", | ||||
|       "version": "5.0.0", | ||||
|       "version": "6.0.0", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "@actions/cache": "^4.0.3", | ||||
| @ -20,7 +20,7 @@ | ||||
|       }, | ||||
|       "devDependencies": { | ||||
|         "@types/jest": "^29.5.14", | ||||
|         "@types/node": "^20.11.28", | ||||
|         "@types/node": "^24.1.0", | ||||
|         "@types/semver": "^7.5.8", | ||||
|         "@typescript-eslint/eslint-plugin": "^8.31.1", | ||||
|         "@typescript-eslint/parser": "^8.35.1", | ||||
| @ -35,6 +35,9 @@ | ||||
|         "prettier": "^2.8.4", | ||||
|         "ts-jest": "^29.3.2", | ||||
|         "typescript": "^5.8.3" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=24.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@aashutoshrathi/word-wrap": { | ||||
| @ -1599,11 +1602,12 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@types/node": { | ||||
|       "version": "20.11.28", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.28.tgz", | ||||
|       "integrity": "sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==", | ||||
|       "version": "24.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz", | ||||
|       "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "undici-types": "~5.26.4" | ||||
|         "undici-types": "~7.8.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@types/node-fetch": { | ||||
| @ -5973,9 +5977,10 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/undici-types": { | ||||
|       "version": "5.26.5", | ||||
|       "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", | ||||
|       "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" | ||||
|       "version": "7.8.0", | ||||
|       "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", | ||||
|       "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", | ||||
|       "license": "MIT" | ||||
|     }, | ||||
|     "node_modules/update-browserslist-db": { | ||||
|       "version": "1.0.13", | ||||
|  | ||||
| @ -1,9 +1,12 @@ | ||||
| { | ||||
|   "name": "setup-go", | ||||
|   "version": "5.0.0", | ||||
|   "version": "6.0.0", | ||||
|   "private": true, | ||||
|   "description": "setup go action", | ||||
|   "main": "lib/setup-go.js", | ||||
|   "engines": { | ||||
|     "node": ">=24.0.0" | ||||
|   }, | ||||
|   "scripts": { | ||||
|     "build": "tsc && ncc build -o dist/setup src/setup-go.ts && ncc build -o dist/cache-save src/cache-save.ts", | ||||
|     "format": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --write \"**/*.{ts,yml,yaml}\"", | ||||
| @ -36,7 +39,7 @@ | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@types/jest": "^29.5.14", | ||||
|     "@types/node": "^20.11.28", | ||||
|     "@types/node": "^24.1.0", | ||||
|     "@types/semver": "^7.5.8", | ||||
|     "@typescript-eslint/eslint-plugin": "^8.31.1", | ||||
|     "@typescript-eslint/parser": "^8.35.1", | ||||
|  | ||||
| @ -7,6 +7,7 @@ import * as sys from './system'; | ||||
| import fs from 'fs'; | ||||
| import os from 'os'; | ||||
| import {StableReleaseAlias, isSelfHosted} from './utils'; | ||||
| import {Architecture} from './types'; | ||||
| 
 | ||||
| export const GOTOOLCHAIN_ENV_VAR = 'GOTOOLCHAIN'; | ||||
| export const GOTOOLCHAIN_LOCAL_VAL = 'local'; | ||||
| @ -41,7 +42,7 @@ export async function getGo( | ||||
|   versionSpec: string, | ||||
|   checkLatest: boolean, | ||||
|   auth: string | undefined, | ||||
|   arch = os.arch() | ||||
|   arch: Architecture = os.arch() as Architecture | ||||
| ) { | ||||
|   let manifest: tc.IToolRelease[] | undefined; | ||||
|   const osPlat: string = os.platform(); | ||||
| @ -153,7 +154,7 @@ async function resolveVersionFromManifest( | ||||
|   versionSpec: string, | ||||
|   stable: boolean, | ||||
|   auth: string | undefined, | ||||
|   arch: string, | ||||
|   arch: Architecture, | ||||
|   manifest: tc.IToolRelease[] | undefined | ||||
| ): Promise<string | undefined> { | ||||
|   try { | ||||
| @ -355,7 +356,7 @@ export async function getInfoFromManifest( | ||||
|   versionSpec: string, | ||||
|   stable: boolean, | ||||
|   auth: string | undefined, | ||||
|   arch = os.arch(), | ||||
|   arch: Architecture = os.arch() as Architecture, | ||||
|   manifest?: tc.IToolRelease[] | undefined | ||||
| ): Promise<IGoVersionInfo | null> { | ||||
|   let info: IGoVersionInfo | null = null; | ||||
| @ -381,7 +382,7 @@ export async function getInfoFromManifest( | ||||
| 
 | ||||
| async function getInfoFromDist( | ||||
|   versionSpec: string, | ||||
|   arch: string | ||||
|   arch: Architecture | ||||
| ): Promise<IGoVersionInfo | null> { | ||||
|   const version: IGoVersion | undefined = await findMatch(versionSpec, arch); | ||||
|   if (!version) { | ||||
| @ -400,7 +401,7 @@ async function getInfoFromDist( | ||||
| 
 | ||||
| export async function findMatch( | ||||
|   versionSpec: string, | ||||
|   arch = os.arch() | ||||
|   arch: Architecture = os.arch() as Architecture | ||||
| ): Promise<IGoVersion | undefined> { | ||||
|   const archFilter = sys.getArch(arch); | ||||
|   const platFilter = sys.getPlatform(); | ||||
| @ -517,7 +518,10 @@ export function parseGoVersionFile(versionFilePath: string): string { | ||||
|   return contents.trim(); | ||||
| } | ||||
| 
 | ||||
| async function resolveStableVersionDist(versionSpec: string, arch: string) { | ||||
| async function resolveStableVersionDist( | ||||
|   versionSpec: string, | ||||
|   arch: Architecture | ||||
| ) { | ||||
|   const archFilter = sys.getArch(arch); | ||||
|   const platFilter = sys.getPlatform(); | ||||
|   const dlUrl = 'https://golang.org/dl/?mode=json&include=all'; | ||||
|  | ||||
| @ -8,6 +8,7 @@ import {isCacheFeatureAvailable} from './cache-utils'; | ||||
| import cp from 'child_process'; | ||||
| import fs from 'fs'; | ||||
| import os from 'os'; | ||||
| import {Architecture} from './types'; | ||||
| 
 | ||||
| export async function run() { | ||||
|   try { | ||||
| @ -21,10 +22,10 @@ export async function run() { | ||||
|     const cache = core.getBooleanInput('cache'); | ||||
|     core.info(`Setup go version spec ${versionSpec}`); | ||||
| 
 | ||||
|     let arch = core.getInput('architecture'); | ||||
|     let arch = core.getInput('architecture') as Architecture; | ||||
| 
 | ||||
|     if (!arch) { | ||||
|       arch = os.arch(); | ||||
|       arch = os.arch() as Architecture; | ||||
|     } | ||||
| 
 | ||||
|     if (versionSpec) { | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| import os from 'os'; | ||||
| import {Architecture} from './types'; | ||||
| 
 | ||||
| export function getPlatform(): string { | ||||
|   // darwin and linux match already
 | ||||
| @ -15,7 +16,7 @@ export function getPlatform(): string { | ||||
|   return plat; | ||||
| } | ||||
| 
 | ||||
| export function getArch(arch: string): string { | ||||
| export function getArch(arch: Architecture): string { | ||||
|   // 'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', and 'x64'.
 | ||||
| 
 | ||||
|   // wants amd64, 386, arm64, armv61, ppc641e, s390x
 | ||||
|  | ||||
							
								
								
									
										2
									
								
								src/types.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								src/types.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | ||||
| // match what @actions/tool-cache expects
 | ||||
| export type Architecture = string; | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user