mirror of
				https://github.com/actions/setup-go.git
				synced 2025-10-30 23:10:30 +00:00 
			
		
		
		
	Compare commits
	
		
			6 Commits
		
	
	
		
			node24
			...
			dependabot
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 57529a511d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | c0137caad7 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 4469467582 | ||
|   | e093d1e9bb | ||
|   | 1d76b952eb | ||
|   | e75c3e80bc | 
							
								
								
									
										2
									
								
								.github/workflows/basic-validation.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/basic-validation.yml
									
									
									
									
										vendored
									
									
								
							| @@ -15,4 +15,4 @@ jobs: | |||||||
|     name: Basic validation |     name: Basic validation | ||||||
|     uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main |     uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main | ||||||
|     with: |     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/ |     name: Check dist/ | ||||||
|     uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main |     uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main | ||||||
|     with: |     with: | ||||||
|       node-version: '20' |       node-version: '24.x' | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ jobs: | |||||||
|  |  | ||||||
|     steps: |     steps: | ||||||
|       - name: Checking out |       - name: Checking out | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v5 | ||||||
|       - name: Publish |       - name: Publish | ||||||
|         id: publish |         id: publish | ||||||
|         uses: actions/publish-immutable-action@v0.0.4 |         uses: actions/publish-immutable-action@v0.0.4 | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								.github/workflows/versions.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								.github/workflows/versions.yml
									
									
									
									
										vendored
									
									
								
							| @@ -20,7 +20,7 @@ jobs: | |||||||
|       matrix: |       matrix: | ||||||
|         os: [ubuntu-latest, windows-latest, macos-latest, macos-13] |         os: [ubuntu-latest, windows-latest, macos-latest, macos-13] | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v5 | ||||||
|       - name: Setup Go Stable |       - name: Setup Go Stable | ||||||
|         uses: ./ |         uses: ./ | ||||||
|         with: |         with: | ||||||
| @@ -35,7 +35,7 @@ jobs: | |||||||
|       matrix: |       matrix: | ||||||
|         os: [ubuntu-latest, windows-latest, macos-latest, macos-13] |         os: [ubuntu-latest, windows-latest, macos-latest, macos-13] | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v5 | ||||||
|       - name: Setup Go oldStable |       - name: Setup Go oldStable | ||||||
|         uses: ./ |         uses: ./ | ||||||
|         with: |         with: | ||||||
| @@ -57,7 +57,7 @@ jobs: | |||||||
|           - os: macos-13 |           - os: macos-13 | ||||||
|             architecture: x32 |             architecture: x32 | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v5 | ||||||
|       - name: Setup Go ${{ matrix.version }} ${{ matrix.architecture }} |       - name: Setup Go ${{ matrix.version }} ${{ matrix.architecture }} | ||||||
|         uses: ./ |         uses: ./ | ||||||
|         with: |         with: | ||||||
| @@ -82,7 +82,7 @@ jobs: | |||||||
|             go: 1.23.2 |             go: 1.23.2 | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v5 | ||||||
|  |  | ||||||
|       - name: setup-go ${{ matrix.go }} |       - name: setup-go ${{ matrix.go }} | ||||||
|         uses: ./ |         uses: ./ | ||||||
| @@ -101,7 +101,7 @@ jobs: | |||||||
|         os: [ubuntu-latest, windows-latest, macos-latest, macos-13] |         os: [ubuntu-latest, windows-latest, macos-latest, macos-13] | ||||||
|         go-version: ['1.20', '1.21', '1.22', '1.23'] |         go-version: ['1.20', '1.21', '1.22', '1.23'] | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v5 | ||||||
|       - name: Setup Go and check latest |       - name: Setup Go and check latest | ||||||
|         uses: ./ |         uses: ./ | ||||||
|         with: |         with: | ||||||
| @@ -117,7 +117,7 @@ jobs: | |||||||
|       matrix: |       matrix: | ||||||
|         os: [ubuntu-latest, windows-latest, macos-latest, macos-13] |         os: [ubuntu-latest, windows-latest, macos-latest, macos-13] | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v5 | ||||||
|       - name: Setup Go and check latest |       - name: Setup Go and check latest | ||||||
|         uses: ./ |         uses: ./ | ||||||
|         with: |         with: | ||||||
| @@ -133,7 +133,7 @@ jobs: | |||||||
|       matrix: |       matrix: | ||||||
|         os: [ubuntu-latest, windows-latest, macos-latest, macos-13] |         os: [ubuntu-latest, windows-latest, macos-latest, macos-13] | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v5 | ||||||
|       - name: Setup Go and check latest |       - name: Setup Go and check latest | ||||||
|         uses: ./ |         uses: ./ | ||||||
|         with: |         with: | ||||||
| @@ -151,7 +151,7 @@ jobs: | |||||||
|         go: [1.20.14, 1.21.10, 1.22.8, 1.23.2] |         go: [1.20.14, 1.21.10, 1.22.8, 1.23.2] | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v5 | ||||||
|  |  | ||||||
|       - name: setup-go ${{ matrix.go }} |       - name: setup-go ${{ matrix.go }} | ||||||
|         uses: ./ |         uses: ./ | ||||||
| @@ -171,7 +171,7 @@ jobs: | |||||||
|         go: [1.11.12] |         go: [1.11.12] | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v5 | ||||||
|  |  | ||||||
|       - name: setup-go ${{ matrix.go }} |       - name: setup-go ${{ matrix.go }} | ||||||
|         uses: ./ |         uses: ./ | ||||||
| @@ -199,7 +199,7 @@ jobs: | |||||||
|           - os: macos-13 |           - os: macos-13 | ||||||
|             architecture: x64 |             architecture: x64 | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v5 | ||||||
|       - name: Setup Go and check latest |       - name: Setup Go and check latest | ||||||
|         uses: ./ |         uses: ./ | ||||||
|         with: |         with: | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								.github/workflows/windows-validation.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/windows-validation.yml
									
									
									
									
										vendored
									
									
								
							| @@ -19,7 +19,7 @@ jobs: | |||||||
|         cache: [false, true] |         cache: [false, true] | ||||||
|         go: [1.20.1] |         go: [1.20.1] | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v5 | ||||||
|  |  | ||||||
|       - name: 'Setup ${{ matrix.cache }}, cache: ${{ matrix.go }}' |       - name: 'Setup ${{ matrix.cache }}, cache: ${{ matrix.go }}' | ||||||
|         uses: ./ |         uses: ./ | ||||||
| @@ -88,7 +88,7 @@ jobs: | |||||||
|       matrix: |       matrix: | ||||||
|         cache: [false, true] |         cache: [false, true] | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v5 | ||||||
|  |  | ||||||
|       - name: 'Setup default go, cache: ${{ matrix.cache }}' |       - name: 'Setup default go, cache: ${{ matrix.cache }}' | ||||||
|         uses: ./ |         uses: ./ | ||||||
| @@ -121,7 +121,7 @@ jobs: | |||||||
|         cache: [false] |         cache: [false] | ||||||
|         go: [1.20.1] |         go: [1.20.1] | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v5 | ||||||
|  |  | ||||||
|       - name: 'Setup ${{ matrix.go }}, cache: ${{ matrix.cache }}' |       - name: 'Setup ${{ matrix.go }}, cache: ${{ matrix.cache }}' | ||||||
|         uses: ./ |         uses: ./ | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| --- | --- | ||||||
| name: "@types/node" | name: "@types/node" | ||||||
| version: 20.11.28 | version: 24.1.0 | ||||||
| type: npm | type: npm | ||||||
| summary: TypeScript definitions for node | summary: TypeScript definitions for node | ||||||
| homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node | homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								.licenses/npm/function-bind.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1
									
								
								.licenses/npm/function-bind.dep.yml
									
									
									
										generated
									
									
									
								
							| @@ -29,4 +29,3 @@ licenses: | |||||||
|     THE SOFTWARE. |     THE SOFTWARE. | ||||||
| 
 | 
 | ||||||
| notices: [] | notices: [] | ||||||
| ... |  | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								.licenses/npm/undici-types.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								.licenses/npm/undici-types.dep.yml
									
									
									
										generated
									
									
									
								
							| @@ -1,15 +1,17 @@ | |||||||
| --- | --- | ||||||
| name: undici-types | name: undici-types | ||||||
| version: 5.26.5 | version: 7.8.0 | ||||||
| type: npm | type: npm | ||||||
| summary: A stand-alone types package for Undici | summary: A stand-alone types package for Undici | ||||||
| homepage: https://undici.nodejs.org | homepage: https://undici.nodejs.org | ||||||
| license: mit | license: mit | ||||||
| licenses: | licenses: | ||||||
| - sources: Auto-generated MIT license text | - sources: LICENSE | ||||||
|   text: | |   text: | | ||||||
|     MIT License |     MIT License | ||||||
| 
 | 
 | ||||||
|  |     Copyright (c) Matteo Collina and Undici contributors | ||||||
|  | 
 | ||||||
|     Permission is hereby granted, free of charge, to any person obtaining a copy |     Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
|     of this software and associated documentation files (the "Software"), to deal |     of this software and associated documentation files (the "Software"), to deal | ||||||
|     in the Software without restriction, including without limitation the rights |     in the Software without restriction, including without limitation the rights | ||||||
|   | |||||||
							
								
								
									
										85
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										85
									
								
								README.md
									
									
									
									
									
								
							| @@ -8,6 +8,14 @@ This action sets up a go environment for use in actions by: | |||||||
| - Optionally downloading and caching a version of Go by version and adding to `PATH`. | - Optionally downloading and caching a version of Go by version and adding to `PATH`. | ||||||
| - Registering problem matchers for error output. | - Registering problem matchers for error output. | ||||||
|  |  | ||||||
|  | # Breaking changes in V6 | ||||||
|  |  | ||||||
|  | - Improve toolchain handling to ensure more reliable and consistent toolchain selection and management. | ||||||
|  | - Upgraded from node20 to node24. | ||||||
|  |   > Make sure your runner is on version v2.327.1 or later to ensure compatibility with this release. [See Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1) | ||||||
|  |  | ||||||
|  | For more details,  see the full release notes on the [releases page](https://github.com/actions/setup-go/releases/tag/v6.0.0) | ||||||
|  |  | ||||||
| # V5 | # V5 | ||||||
|  |  | ||||||
| The V5 edition of the action offers: | The V5 edition of the action offers: | ||||||
| @@ -16,27 +24,6 @@ The V5 edition of the action offers: | |||||||
|  |  | ||||||
| See full release notes on the [releases page](https://github.com/actions/setup-go/releases). | See full release notes on the [releases page](https://github.com/actions/setup-go/releases). | ||||||
|  |  | ||||||
| # V4 |  | ||||||
|  |  | ||||||
| The V4 edition of the action offers: |  | ||||||
|  |  | ||||||
|  - Enabled caching by default |  | ||||||
|  |  | ||||||
| The action will try to enable caching unless the `cache` input is explicitly set to false. |  | ||||||
|  |  | ||||||
| Please see "[Caching dependency files and build outputs](https://github.com/actions/setup-go#caching-dependency-files-and-build-outputs)" for more information. |  | ||||||
|  |  | ||||||
| # V3 |  | ||||||
|  |  | ||||||
| The V3 edition of the action offers: |  | ||||||
|  |  | ||||||
| - Adds `GOBIN` to the `PATH` |  | ||||||
| - Proxy support |  | ||||||
| - Check latest version |  | ||||||
| - Caching packages dependencies |  | ||||||
| - stable and oldstable aliases |  | ||||||
| - Bug Fixes (including issues around version matching and semver) |  | ||||||
|  |  | ||||||
| The action will first check the local cache for a version match. If a version is not found locally, it will pull it from | The action will first check the local cache for a version match. If a version is not found locally, it will pull it from | ||||||
| the `main` branch of the [go-versions](https://github.com/actions/go-versions/blob/main/versions-manifest.json) | the `main` branch of the [go-versions](https://github.com/actions/go-versions/blob/main/versions-manifest.json) | ||||||
| repository. On miss or failure, it will fall back to downloading directly | repository. On miss or failure, it will fall back to downloading directly | ||||||
| @@ -50,8 +37,8 @@ Matching by [semver spec](https://github.com/npm/node-semver): | |||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| steps: | steps: | ||||||
|   - uses: actions/checkout@v4 |   - uses: actions/checkout@v5 | ||||||
|   - uses: actions/setup-go@v5 |   - uses: actions/setup-go@v6 | ||||||
|     with: |     with: | ||||||
|       go-version: '^1.13.1' # The Go version to download (if necessary) and use. |       go-version: '^1.13.1' # The Go version to download (if necessary) and use. | ||||||
|   - run: go version |   - run: go version | ||||||
| @@ -59,8 +46,8 @@ steps: | |||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| steps: | steps: | ||||||
|   - uses: actions/checkout@v4 |   - uses: actions/checkout@v5 | ||||||
|   - uses: actions/setup-go@v5 |   - uses: actions/setup-go@v6 | ||||||
|     with: |     with: | ||||||
|       go-version: '>=1.17.0' |       go-version: '>=1.17.0' | ||||||
|   - run: go version |   - run: go version | ||||||
| @@ -78,8 +65,8 @@ Matching an unstable pre-release: | |||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| steps: | steps: | ||||||
|   - uses: actions/checkout@v4 |   - uses: actions/checkout@v5 | ||||||
|   - uses: actions/setup-go@v5 |   - uses: actions/setup-go@v6 | ||||||
|     with: |     with: | ||||||
|       go-version: '1.18.0-rc.1' # The Go version to download (if necessary) and use. |       go-version: '1.18.0-rc.1' # The Go version to download (if necessary) and use. | ||||||
|   - run: go version |   - run: go version | ||||||
| @@ -87,8 +74,8 @@ steps: | |||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| steps: | steps: | ||||||
|   - uses: actions/checkout@v4 |   - uses: actions/checkout@v5 | ||||||
|   - uses: actions/setup-go@v5 |   - uses: actions/setup-go@v6 | ||||||
|     with: |     with: | ||||||
|       go-version: '1.16.0-beta.1' # The Go version to download (if necessary) and use. |       go-version: '1.16.0-beta.1' # The Go version to download (if necessary) and use. | ||||||
|   - run: go version |   - run: go version | ||||||
| @@ -102,8 +89,8 @@ See [action.yml](action.yml) | |||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| steps: | steps: | ||||||
|   - uses: actions/checkout@v4 |   - uses: actions/checkout@v5 | ||||||
|   - uses: actions/setup-go@v5 |   - uses: actions/setup-go@v6 | ||||||
|     with: |     with: | ||||||
|       go-version: '1.16.1' # The Go version to download (if necessary) and use. |       go-version: '1.16.1' # The Go version to download (if necessary) and use. | ||||||
|   - run: go run hello.go |   - run: go run hello.go | ||||||
| @@ -123,8 +110,8 @@ want the most up-to-date Go version to always be used. | |||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| steps: | steps: | ||||||
|   - uses: actions/checkout@v4 |   - uses: actions/checkout@v5 | ||||||
|   - uses: actions/setup-go@v5 |   - uses: actions/setup-go@v6 | ||||||
|     with: |     with: | ||||||
|       go-version: '1.14' |       go-version: '1.14' | ||||||
|       check-latest: true |       check-latest: true | ||||||
| @@ -144,8 +131,8 @@ set to `true` | |||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| steps: | steps: | ||||||
|   - uses: actions/checkout@v4 |   - uses: actions/checkout@v5 | ||||||
|   - uses: actions/setup-go@v5 |   - uses: actions/setup-go@v6 | ||||||
|     with: |     with: | ||||||
|       go-version: 'stable' |       go-version: 'stable' | ||||||
|   - run: go run hello.go |   - run: go run hello.go | ||||||
| @@ -153,8 +140,8 @@ steps: | |||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| steps: | steps: | ||||||
|   - uses: actions/checkout@v4 |   - uses: actions/checkout@v5 | ||||||
|   - uses: actions/setup-go@v5 |   - uses: actions/setup-go@v6 | ||||||
|     with: |     with: | ||||||
|       go-version: 'oldstable' |       go-version: 'oldstable' | ||||||
|   - run: go run hello.go |   - run: go run hello.go | ||||||
| @@ -176,8 +163,8 @@ If some problem that prevents success caching happens then the action issues the | |||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| steps: | steps: | ||||||
|   - uses: actions/checkout@v4 |   - uses: actions/checkout@v5 | ||||||
|   - uses: actions/setup-go@v5 |   - uses: actions/setup-go@v6 | ||||||
|     with: |     with: | ||||||
|       go-version: '1.17' |       go-version: '1.17' | ||||||
|       check-latest: true |       check-latest: true | ||||||
| @@ -191,9 +178,15 @@ steps: | |||||||
|  |  | ||||||
| ## Getting go version from the go.mod file | ## Getting go version from the go.mod file | ||||||
|  |  | ||||||
| The `go-version-file` input accepts a path to a `go.mod` file or a `go.work` file that contains the version of Go to be used by a project. | The `go-version-file` input accepts a path to a `go.mod` file or a `go.work` | ||||||
|  | file that contains the version of Go to be used by a project. The version taken | ||||||
|  | from thils file will be: | ||||||
|  |  | ||||||
|  |   - The version from the `toolchain` directive, if there is one, otherwise | ||||||
|  |   - The version from the `go` directive | ||||||
|  |  | ||||||
|  | The version can specify a patch version or omit it altogether (e.g., `go 1.22.0` or `go 1.22`). | ||||||
|  |  | ||||||
| The `go` directive in `go.mod` can specify a patch version or omit it altogether (e.g., `go 1.22.0` or `go 1.22`).   |  | ||||||
| If a patch version is specified, that specific patch version will be used.   | If a patch version is specified, that specific patch version will be used.   | ||||||
| If no patch version is specified, it will search for the latest available patch version in the cache, | If no patch version is specified, it will search for the latest available patch version in the cache, | ||||||
| [versions-manifest.json](https://github.com/actions/go-versions/blob/main/versions-manifest.json), and the | [versions-manifest.json](https://github.com/actions/go-versions/blob/main/versions-manifest.json), and the | ||||||
| @@ -204,8 +197,8 @@ If both the `go-version` and the `go-version-file` inputs are provided then the | |||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| steps: | steps: | ||||||
|   - uses: actions/checkout@v4 |   - uses: actions/checkout@v5 | ||||||
|   - uses: actions/setup-go@v5 |   - uses: actions/setup-go@v6 | ||||||
|     with: |     with: | ||||||
|       go-version-file: 'path/to/go.mod' |       go-version-file: 'path/to/go.mod' | ||||||
|   - run: go version |   - run: go version | ||||||
| @@ -222,9 +215,9 @@ jobs: | |||||||
|         go: [ '1.14', '1.13' ] |         go: [ '1.14', '1.13' ] | ||||||
|     name: Go ${{ matrix.go }} sample |     name: Go ${{ matrix.go }} sample | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v5 | ||||||
|       - name: Setup go |       - name: Setup go | ||||||
|         uses: actions/setup-go@v5 |         uses: actions/setup-go@v6 | ||||||
|         with: |         with: | ||||||
|           go-version: ${{ matrix.go }} |           go-version: ${{ matrix.go }} | ||||||
|       - run: go run hello.go |       - run: go run hello.go | ||||||
| @@ -252,7 +245,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: | 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 | ```yaml | ||||||
| uses: actions/setup-go@v5 | uses: actions/setup-go@v6 | ||||||
| with: | with: | ||||||
|   token: ${{ secrets.GH_DOTCOM_TOKEN }} |   token: ${{ secrets.GH_DOTCOM_TOKEN }} | ||||||
|   go-version: '1.18' |   go-version: '1.18' | ||||||
|   | |||||||
| @@ -129,6 +129,9 @@ describe('setup-go', () => { | |||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   afterEach(() => { |   afterEach(() => { | ||||||
|  |     // clear out env var set during 'run' | ||||||
|  |     delete process.env[im.GOTOOLCHAIN_ENV_VAR]; | ||||||
|  |  | ||||||
|     //jest.resetAllMocks(); |     //jest.resetAllMocks(); | ||||||
|     jest.clearAllMocks(); |     jest.clearAllMocks(); | ||||||
|     //jest.restoreAllMocks(); |     //jest.restoreAllMocks(); | ||||||
| @@ -285,7 +288,7 @@ describe('setup-go', () => { | |||||||
|     expect(logSpy).toHaveBeenCalledWith(`Setup go version spec 1.13.0`); |     expect(logSpy).toHaveBeenCalledWith(`Setup go version spec 1.13.0`); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('does not export any variables for Go versions >=1.9', async () => { |   it('does not export GOROOT for Go versions >=1.9', async () => { | ||||||
|     inputs['go-version'] = '1.13.0'; |     inputs['go-version'] = '1.13.0'; | ||||||
|     inSpy.mockImplementation(name => inputs[name]); |     inSpy.mockImplementation(name => inputs[name]); | ||||||
|  |  | ||||||
| @@ -298,7 +301,7 @@ describe('setup-go', () => { | |||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     await main.run(); |     await main.run(); | ||||||
|     expect(vars).toStrictEqual({}); |     expect(vars).not.toHaveProperty('GOROOT'); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('exports GOROOT for Go versions <1.9', async () => { |   it('exports GOROOT for Go versions <1.9', async () => { | ||||||
| @@ -314,9 +317,7 @@ describe('setup-go', () => { | |||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     await main.run(); |     await main.run(); | ||||||
|     expect(vars).toStrictEqual({ |     expect(vars).toHaveProperty('GOROOT', toolPath); | ||||||
|       GOROOT: toolPath |  | ||||||
|     }); |  | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('finds a version of go already in the cache', async () => { |   it('finds a version of go already in the cache', async () => { | ||||||
| @@ -989,4 +990,104 @@ use . | |||||||
|       } |       } | ||||||
|     ); |     ); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|  |   describe('go-version-file-toolchain', () => { | ||||||
|  |     const goVersions = ['1.22.0', '1.21rc2', '1.18']; | ||||||
|  |     const placeholderVersion = '1.19'; | ||||||
|  |     const buildGoMod = ( | ||||||
|  |       goVersion: string, | ||||||
|  |       toolchainVersion: string | ||||||
|  |     ) => `module example.com/mymodule | ||||||
|  |  | ||||||
|  | go ${goVersion} | ||||||
|  |  | ||||||
|  | toolchain go${toolchainVersion} | ||||||
|  |  | ||||||
|  | require ( | ||||||
|  | 	example.com/othermodule v1.2.3 | ||||||
|  | 	example.com/thismodule v1.2.3 | ||||||
|  | 	example.com/thatmodule v1.2.3 | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | replace example.com/thatmodule => ../thatmodule | ||||||
|  | exclude example.com/thismodule v1.3.0 | ||||||
|  | `; | ||||||
|  |  | ||||||
|  |     const buildGoWork = ( | ||||||
|  |       goVersion: string, | ||||||
|  |       toolchainVersion: string | ||||||
|  |     ) => `go 1.19 | ||||||
|  |  | ||||||
|  | toolchain go${toolchainVersion} | ||||||
|  |  | ||||||
|  | use . | ||||||
|  |  | ||||||
|  | `; | ||||||
|  |  | ||||||
|  |     goVersions.forEach(version => { | ||||||
|  |       [ | ||||||
|  |         { | ||||||
|  |           goVersionfile: 'go.mod', | ||||||
|  |           fileContents: Buffer.from(buildGoMod(placeholderVersion, version)), | ||||||
|  |           expected_version: version, | ||||||
|  |           desc: 'from toolchain directive' | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           goVersionfile: 'go.work', | ||||||
|  |           fileContents: Buffer.from(buildGoMod(placeholderVersion, version)), | ||||||
|  |           expected_version: version, | ||||||
|  |           desc: 'from toolchain directive' | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           goVersionfile: 'go.mod', | ||||||
|  |           fileContents: Buffer.from(buildGoMod(placeholderVersion, version)), | ||||||
|  |           gotoolchain_env: 'local', | ||||||
|  |           expected_version: placeholderVersion, | ||||||
|  |           desc: 'from go directive when GOTOOLCHAIN is local' | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           goVersionfile: 'go.work', | ||||||
|  |           fileContents: Buffer.from(buildGoMod(placeholderVersion, version)), | ||||||
|  |           gotoolchain_env: 'local', | ||||||
|  |           expected_version: placeholderVersion, | ||||||
|  |           desc: 'from go directive when GOTOOLCHAIN is local' | ||||||
|  |         } | ||||||
|  |       ].forEach(test => { | ||||||
|  |         it(`reads version (${version}) in ${test.goVersionfile} ${test.desc}`, async () => { | ||||||
|  |           inputs['go-version-file'] = test.goVersionfile; | ||||||
|  |           if (test.gotoolchain_env !== undefined) { | ||||||
|  |             process.env[im.GOTOOLCHAIN_ENV_VAR] = test.gotoolchain_env; | ||||||
|  |           } | ||||||
|  |           existsSpy.mockImplementation(() => true); | ||||||
|  |           readFileSpy.mockImplementation(() => Buffer.from(test.fileContents)); | ||||||
|  |  | ||||||
|  |           await main.run(); | ||||||
|  |  | ||||||
|  |           expect(logSpy).toHaveBeenCalledWith( | ||||||
|  |             `Setup go version spec ${test.expected_version}` | ||||||
|  |           ); | ||||||
|  |           expect(logSpy).toHaveBeenCalledWith( | ||||||
|  |             `Attempting to download ${test.expected_version}...` | ||||||
|  |           ); | ||||||
|  |           expect(logSpy).toHaveBeenCalledWith( | ||||||
|  |             `matching ${test.expected_version}...` | ||||||
|  |           ); | ||||||
|  |         }); | ||||||
|  |       }); | ||||||
|  |     }); | ||||||
|  |   }); | ||||||
|  |  | ||||||
|  |   it('exports GOTOOLCHAIN and sets it in current process env', async () => { | ||||||
|  |     inputs['go-version'] = '1.21.0'; | ||||||
|  |     inSpy.mockImplementation(name => inputs[name]); | ||||||
|  |  | ||||||
|  |     const vars: {[key: string]: string} = {}; | ||||||
|  |     exportVarSpy.mockImplementation((name: string, val: string) => { | ||||||
|  |       vars[name] = val; | ||||||
|  |     }); | ||||||
|  |  | ||||||
|  |     await main.run(); | ||||||
|  |     expect(vars).toStrictEqual({GOTOOLCHAIN: 'local'}); | ||||||
|  |     expect(process.env).toHaveProperty('GOTOOLCHAIN', 'local'); | ||||||
|  |   }); | ||||||
| }); | }); | ||||||
|   | |||||||
							
								
								
									
										31
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										31
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -94312,6 +94312,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { | |||||||
|     return (mod && mod.__esModule) ? mod : { "default": mod }; |     return (mod && mod.__esModule) ? mod : { "default": mod }; | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||||
|  | exports.GOTOOLCHAIN_LOCAL_VAL = exports.GOTOOLCHAIN_ENV_VAR = void 0; | ||||||
| exports.getGo = getGo; | exports.getGo = getGo; | ||||||
| exports.extractGoArchive = extractGoArchive; | exports.extractGoArchive = extractGoArchive; | ||||||
| exports.getManifest = getManifest; | exports.getManifest = getManifest; | ||||||
| @@ -94330,6 +94331,8 @@ const sys = __importStar(__nccwpck_require__(5632)); | |||||||
| const fs_1 = __importDefault(__nccwpck_require__(7147)); | const fs_1 = __importDefault(__nccwpck_require__(7147)); | ||||||
| const os_1 = __importDefault(__nccwpck_require__(2037)); | const os_1 = __importDefault(__nccwpck_require__(2037)); | ||||||
| const utils_1 = __nccwpck_require__(1314); | const utils_1 = __nccwpck_require__(1314); | ||||||
|  | exports.GOTOOLCHAIN_ENV_VAR = 'GOTOOLCHAIN'; | ||||||
|  | exports.GOTOOLCHAIN_LOCAL_VAL = 'local'; | ||||||
| const MANIFEST_REPO_OWNER = 'actions'; | const MANIFEST_REPO_OWNER = 'actions'; | ||||||
| const MANIFEST_REPO_NAME = 'go-versions'; | const MANIFEST_REPO_NAME = 'go-versions'; | ||||||
| const MANIFEST_REPO_BRANCH = 'main'; | const MANIFEST_REPO_BRANCH = 'main'; | ||||||
| @@ -94663,8 +94666,18 @@ function parseGoVersionFile(versionFilePath) { | |||||||
|     const contents = fs_1.default.readFileSync(versionFilePath).toString(); |     const contents = fs_1.default.readFileSync(versionFilePath).toString(); | ||||||
|     if (path.basename(versionFilePath) === 'go.mod' || |     if (path.basename(versionFilePath) === 'go.mod' || | ||||||
|         path.basename(versionFilePath) === 'go.work') { |         path.basename(versionFilePath) === 'go.work') { | ||||||
|         const match = contents.match(/^go (\d+(\.\d+)*)/m); |         // for backwards compatibility: use version from go directive if
 | ||||||
|         return match ? match[1] : ''; |         // 'GOTOOLCHAIN' has been explicitly set
 | ||||||
|  |         if (process.env[exports.GOTOOLCHAIN_ENV_VAR] !== exports.GOTOOLCHAIN_LOCAL_VAL) { | ||||||
|  |             // toolchain directive: https://go.dev/ref/mod#go-mod-file-toolchain
 | ||||||
|  |             const matchToolchain = contents.match(/^toolchain go(1\.\d+(?:\.\d+|rc\d+)?)/m); | ||||||
|  |             if (matchToolchain) { | ||||||
|  |                 return matchToolchain[1]; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         // go directive: https://go.dev/ref/mod#go-mod-file-go
 | ||||||
|  |         const matchGo = contents.match(/^go (\d+(\.\d+)*)/m); | ||||||
|  |         return matchGo ? matchGo[1] : ''; | ||||||
|     } |     } | ||||||
|     return contents.trim(); |     return contents.trim(); | ||||||
| } | } | ||||||
| @@ -94782,6 +94795,7 @@ function run() { | |||||||
|             // If not supplied then problem matchers will still be setup.  Useful for self-hosted.
 |             // If not supplied then problem matchers will still be setup.  Useful for self-hosted.
 | ||||||
|             //
 |             //
 | ||||||
|             const versionSpec = resolveVersionInput(); |             const versionSpec = resolveVersionInput(); | ||||||
|  |             setGoToolchain(); | ||||||
|             const cache = core.getBooleanInput('cache'); |             const cache = core.getBooleanInput('cache'); | ||||||
|             core.info(`Setup go version spec ${versionSpec}`); |             core.info(`Setup go version spec ${versionSpec}`); | ||||||
|             let arch = core.getInput('architecture'); |             let arch = core.getInput('architecture'); | ||||||
| @@ -94890,6 +94904,19 @@ function resolveVersionInput() { | |||||||
|     } |     } | ||||||
|     return version; |     return version; | ||||||
| } | } | ||||||
|  | function setGoToolchain() { | ||||||
|  |     // docs: https://go.dev/doc/toolchain
 | ||||||
|  |     // "local indicates the bundled Go toolchain (the one that shipped with the go command being run)"
 | ||||||
|  |     // this is so any 'go' command is run with the selected Go version
 | ||||||
|  |     // and doesn't trigger a toolchain download and run commands with that
 | ||||||
|  |     // see e.g. issue #424
 | ||||||
|  |     // and a similar discussion: https://github.com/docker-library/golang/issues/472.
 | ||||||
|  |     // Set the value in process env so any `go` commands run as child-process
 | ||||||
|  |     // don't cause toolchain downloads
 | ||||||
|  |     process.env[installer.GOTOOLCHAIN_ENV_VAR] = installer.GOTOOLCHAIN_LOCAL_VAL; | ||||||
|  |     // and in the runner env so e.g. a user running `go mod tidy` won't cause it
 | ||||||
|  |     core.exportVariable(installer.GOTOOLCHAIN_ENV_VAR, installer.GOTOOLCHAIN_LOCAL_VAL); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
|   | |||||||
							
								
								
									
										490
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										490
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -1,12 +1,12 @@ | |||||||
| { | { | ||||||
|   "name": "setup-go", |   "name": "setup-go", | ||||||
|   "version": "5.0.0", |   "version": "6.0.0", | ||||||
|   "lockfileVersion": 3, |   "lockfileVersion": 3, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "packages": { |   "packages": { | ||||||
|     "": { |     "": { | ||||||
|       "name": "setup-go", |       "name": "setup-go", | ||||||
|       "version": "5.0.0", |       "version": "6.0.0", | ||||||
|       "license": "MIT", |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/cache": "^4.0.3", |         "@actions/cache": "^4.0.3", | ||||||
| @@ -20,18 +20,18 @@ | |||||||
|       }, |       }, | ||||||
|       "devDependencies": { |       "devDependencies": { | ||||||
|         "@types/jest": "^29.5.14", |         "@types/jest": "^29.5.14", | ||||||
|         "@types/node": "^20.11.28", |         "@types/node": "^24.1.0", | ||||||
|         "@types/semver": "^7.5.8", |         "@types/semver": "^7.5.8", | ||||||
|         "@typescript-eslint/eslint-plugin": "^8.31.1", |         "@typescript-eslint/eslint-plugin": "^8.31.1", | ||||||
|         "@typescript-eslint/parser": "^8.35.1", |         "@typescript-eslint/parser": "^8.35.1", | ||||||
|         "@vercel/ncc": "^0.38.1", |         "@vercel/ncc": "^0.38.1", | ||||||
|         "eslint": "^8.57.0", |         "eslint": "^8.57.0", | ||||||
|         "eslint-config-prettier": "^10.0.1", |         "eslint-config-prettier": "^10.1.8", | ||||||
|         "eslint-plugin-jest": "^29.0.1", |         "eslint-plugin-jest": "^29.0.1", | ||||||
|         "eslint-plugin-node": "^11.1.0", |         "eslint-plugin-node": "^11.1.0", | ||||||
|         "jest": "^29.7.0", |         "jest": "^29.7.0", | ||||||
|         "jest-circus": "^29.7.0", |         "jest-circus": "^29.7.0", | ||||||
|         "nock": "^10.0.6", |         "nock": "^14.0.10", | ||||||
|         "prettier": "^2.8.4", |         "prettier": "^2.8.4", | ||||||
|         "ts-jest": "^29.3.2", |         "ts-jest": "^29.3.2", | ||||||
|         "typescript": "^5.8.3" |         "typescript": "^5.8.3" | ||||||
| @@ -1372,6 +1372,24 @@ | |||||||
|         "@jridgewell/sourcemap-codec": "^1.4.14" |         "@jridgewell/sourcemap-codec": "^1.4.14" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/@mswjs/interceptors": { | ||||||
|  |       "version": "0.39.6", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.39.6.tgz", | ||||||
|  |       "integrity": "sha512-bndDP83naYYkfayr/qhBHMhk0YGwS1iv6vaEGcr0SQbO0IZtbOPqjKjds/WcG+bJA+1T5vCx6kprKOzn5Bg+Vw==", | ||||||
|  |       "dev": true, | ||||||
|  |       "license": "MIT", | ||||||
|  |       "dependencies": { | ||||||
|  |         "@open-draft/deferred-promise": "^2.2.0", | ||||||
|  |         "@open-draft/logger": "^0.3.0", | ||||||
|  |         "@open-draft/until": "^2.0.0", | ||||||
|  |         "is-node-process": "^1.2.0", | ||||||
|  |         "outvariant": "^1.4.3", | ||||||
|  |         "strict-event-emitter": "^0.5.1" | ||||||
|  |       }, | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=18" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/@nodelib/fs.scandir": { |     "node_modules/@nodelib/fs.scandir": { | ||||||
|       "version": "2.1.5", |       "version": "2.1.5", | ||||||
|       "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", |       "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", | ||||||
| @@ -1407,6 +1425,31 @@ | |||||||
|         "node": ">= 8" |         "node": ">= 8" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/@open-draft/deferred-promise": { | ||||||
|  |       "version": "2.2.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", | ||||||
|  |       "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", | ||||||
|  |       "dev": true, | ||||||
|  |       "license": "MIT" | ||||||
|  |     }, | ||||||
|  |     "node_modules/@open-draft/logger": { | ||||||
|  |       "version": "0.3.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", | ||||||
|  |       "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", | ||||||
|  |       "dev": true, | ||||||
|  |       "license": "MIT", | ||||||
|  |       "dependencies": { | ||||||
|  |         "is-node-process": "^1.2.0", | ||||||
|  |         "outvariant": "^1.4.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "node_modules/@open-draft/until": { | ||||||
|  |       "version": "2.1.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", | ||||||
|  |       "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", | ||||||
|  |       "dev": true, | ||||||
|  |       "license": "MIT" | ||||||
|  |     }, | ||||||
|     "node_modules/@opentelemetry/api": { |     "node_modules/@opentelemetry/api": { | ||||||
|       "version": "1.7.0", |       "version": "1.7.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.7.0.tgz", |       "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.7.0.tgz", | ||||||
| @@ -1602,11 +1645,12 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@types/node": { |     "node_modules/@types/node": { | ||||||
|       "version": "20.11.28", |       "version": "24.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.28.tgz", |       "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz", | ||||||
|       "integrity": "sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==", |       "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==", | ||||||
|  |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "undici-types": "~5.26.4" |         "undici-types": "~7.8.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@types/node-fetch": { |     "node_modules/@types/node-fetch": { | ||||||
| @@ -2181,15 +2225,6 @@ | |||||||
|       "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", |       "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/assertion-error": { |  | ||||||
|       "version": "1.1.0", |  | ||||||
|       "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", |  | ||||||
|       "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", |  | ||||||
|       "dev": true, |  | ||||||
|       "engines": { |  | ||||||
|         "node": "*" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/async": { |     "node_modules/async": { | ||||||
|       "version": "3.2.6", |       "version": "3.2.6", | ||||||
|       "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", |       "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", | ||||||
| @@ -2404,20 +2439,6 @@ | |||||||
|       "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", |       "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/call-bind": { |  | ||||||
|       "version": "1.0.5", |  | ||||||
|       "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", |  | ||||||
|       "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "function-bind": "^1.1.2", |  | ||||||
|         "get-intrinsic": "^1.2.1", |  | ||||||
|         "set-function-length": "^1.1.1" |  | ||||||
|       }, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/call-bind-apply-helpers": { |     "node_modules/call-bind-apply-helpers": { | ||||||
|       "version": "1.0.2", |       "version": "1.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", |       "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", | ||||||
| @@ -2469,24 +2490,6 @@ | |||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|     }, |     }, | ||||||
|     "node_modules/chai": { |  | ||||||
|       "version": "4.3.10", |  | ||||||
|       "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", |  | ||||||
|       "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "assertion-error": "^1.1.0", |  | ||||||
|         "check-error": "^1.0.3", |  | ||||||
|         "deep-eql": "^4.1.3", |  | ||||||
|         "get-func-name": "^2.0.2", |  | ||||||
|         "loupe": "^2.3.6", |  | ||||||
|         "pathval": "^1.1.1", |  | ||||||
|         "type-detect": "^4.0.8" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=4" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/chalk": { |     "node_modules/chalk": { | ||||||
|       "version": "4.1.2", |       "version": "4.1.2", | ||||||
|       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", |       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", | ||||||
| @@ -2512,18 +2515,6 @@ | |||||||
|         "node": ">=10" |         "node": ">=10" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/check-error": { |  | ||||||
|       "version": "1.0.3", |  | ||||||
|       "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", |  | ||||||
|       "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "get-func-name": "^2.0.2" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": "*" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/ci-info": { |     "node_modules/ci-info": { | ||||||
|       "version": "3.9.0", |       "version": "3.9.0", | ||||||
|       "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", |       "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", | ||||||
| @@ -2682,38 +2673,6 @@ | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/deep-eql": { |  | ||||||
|       "version": "4.1.3", |  | ||||||
|       "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", |  | ||||||
|       "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "type-detect": "^4.0.0" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=6" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/deep-equal": { |  | ||||||
|       "version": "1.1.2", |  | ||||||
|       "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", |  | ||||||
|       "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "is-arguments": "^1.1.1", |  | ||||||
|         "is-date-object": "^1.0.5", |  | ||||||
|         "is-regex": "^1.1.4", |  | ||||||
|         "object-is": "^1.1.5", |  | ||||||
|         "object-keys": "^1.1.1", |  | ||||||
|         "regexp.prototype.flags": "^1.5.1" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">= 0.4" |  | ||||||
|       }, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/deep-is": { |     "node_modules/deep-is": { | ||||||
|       "version": "0.1.4", |       "version": "0.1.4", | ||||||
|       "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", |       "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", | ||||||
| @@ -2729,37 +2688,6 @@ | |||||||
|         "node": ">=0.10.0" |         "node": ">=0.10.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/define-data-property": { |  | ||||||
|       "version": "1.1.1", |  | ||||||
|       "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", |  | ||||||
|       "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "get-intrinsic": "^1.2.1", |  | ||||||
|         "gopd": "^1.0.1", |  | ||||||
|         "has-property-descriptors": "^1.0.0" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">= 0.4" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/define-properties": { |  | ||||||
|       "version": "1.2.1", |  | ||||||
|       "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", |  | ||||||
|       "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "define-data-property": "^1.0.1", |  | ||||||
|         "has-property-descriptors": "^1.0.0", |  | ||||||
|         "object-keys": "^1.1.1" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">= 0.4" |  | ||||||
|       }, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/delayed-stream": { |     "node_modules/delayed-stream": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | ||||||
| @@ -2983,12 +2911,16 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/eslint-config-prettier": { |     "node_modules/eslint-config-prettier": { | ||||||
|       "version": "10.0.1", |       "version": "10.1.8", | ||||||
|       "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz", |       "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", | ||||||
|       "integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==", |       "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|  |       "license": "MIT", | ||||||
|       "bin": { |       "bin": { | ||||||
|         "eslint-config-prettier": "build/bin/cli.js" |         "eslint-config-prettier": "bin/cli.js" | ||||||
|  |       }, | ||||||
|  |       "funding": { | ||||||
|  |         "url": "https://opencollective.com/eslint-config-prettier" | ||||||
|       }, |       }, | ||||||
|       "peerDependencies": { |       "peerDependencies": { | ||||||
|         "eslint": ">=7.0.0" |         "eslint": ">=7.0.0" | ||||||
| @@ -3478,15 +3410,6 @@ | |||||||
|         "url": "https://github.com/sponsors/ljharb" |         "url": "https://github.com/sponsors/ljharb" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/functions-have-names": { |  | ||||||
|       "version": "1.2.3", |  | ||||||
|       "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", |  | ||||||
|       "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", |  | ||||||
|       "dev": true, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/gensync": { |     "node_modules/gensync": { | ||||||
|       "version": "1.0.0-beta.2", |       "version": "1.0.0-beta.2", | ||||||
|       "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", |       "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", | ||||||
| @@ -3505,15 +3428,6 @@ | |||||||
|         "node": "6.* || 8.* || >= 10.*" |         "node": "6.* || 8.* || >= 10.*" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/get-func-name": { |  | ||||||
|       "version": "2.0.2", |  | ||||||
|       "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", |  | ||||||
|       "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", |  | ||||||
|       "dev": true, |  | ||||||
|       "engines": { |  | ||||||
|         "node": "*" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/get-intrinsic": { |     "node_modules/get-intrinsic": { | ||||||
|       "version": "1.3.0", |       "version": "1.3.0", | ||||||
|       "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", |       "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", | ||||||
| @@ -3652,18 +3566,6 @@ | |||||||
|         "node": ">=8" |         "node": ">=8" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/has-property-descriptors": { |  | ||||||
|       "version": "1.0.1", |  | ||||||
|       "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", |  | ||||||
|       "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "get-intrinsic": "^1.2.2" |  | ||||||
|       }, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/has-symbols": { |     "node_modules/has-symbols": { | ||||||
|       "version": "1.1.0", |       "version": "1.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", |       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", | ||||||
| @@ -3788,22 +3690,6 @@ | |||||||
|       "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", |       "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/is-arguments": { |  | ||||||
|       "version": "1.1.1", |  | ||||||
|       "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", |  | ||||||
|       "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "call-bind": "^1.0.2", |  | ||||||
|         "has-tostringtag": "^1.0.0" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">= 0.4" |  | ||||||
|       }, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/is-arrayish": { |     "node_modules/is-arrayish": { | ||||||
|       "version": "0.2.1", |       "version": "0.2.1", | ||||||
|       "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", |       "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", | ||||||
| @@ -3822,21 +3708,6 @@ | |||||||
|         "url": "https://github.com/sponsors/ljharb" |         "url": "https://github.com/sponsors/ljharb" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/is-date-object": { |  | ||||||
|       "version": "1.0.5", |  | ||||||
|       "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", |  | ||||||
|       "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "has-tostringtag": "^1.0.0" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">= 0.4" |  | ||||||
|       }, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/is-extglob": { |     "node_modules/is-extglob": { | ||||||
|       "version": "2.1.1", |       "version": "2.1.1", | ||||||
|       "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", |       "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", | ||||||
| @@ -3876,6 +3747,13 @@ | |||||||
|         "node": ">=0.10.0" |         "node": ">=0.10.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/is-node-process": { | ||||||
|  |       "version": "1.2.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", | ||||||
|  |       "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", | ||||||
|  |       "dev": true, | ||||||
|  |       "license": "MIT" | ||||||
|  |     }, | ||||||
|     "node_modules/is-number": { |     "node_modules/is-number": { | ||||||
|       "version": "7.0.0", |       "version": "7.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", |       "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", | ||||||
| @@ -3894,22 +3772,6 @@ | |||||||
|         "node": ">=8" |         "node": ">=8" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/is-regex": { |  | ||||||
|       "version": "1.1.4", |  | ||||||
|       "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", |  | ||||||
|       "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "call-bind": "^1.0.2", |  | ||||||
|         "has-tostringtag": "^1.0.0" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">= 0.4" |  | ||||||
|       }, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/is-stream": { |     "node_modules/is-stream": { | ||||||
|       "version": "2.0.1", |       "version": "2.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", |       "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", | ||||||
| @@ -4702,12 +4564,6 @@ | |||||||
|         "url": "https://github.com/sponsors/sindresorhus" |         "url": "https://github.com/sponsors/sindresorhus" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/lodash": { |  | ||||||
|       "version": "4.17.21", |  | ||||||
|       "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", |  | ||||||
|       "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", |  | ||||||
|       "dev": true |  | ||||||
|     }, |  | ||||||
|     "node_modules/lodash.memoize": { |     "node_modules/lodash.memoize": { | ||||||
|       "version": "4.1.2", |       "version": "4.1.2", | ||||||
|       "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", |       "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", | ||||||
| @@ -4720,15 +4576,6 @@ | |||||||
|       "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", |       "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/loupe": { |  | ||||||
|       "version": "2.3.7", |  | ||||||
|       "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", |  | ||||||
|       "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "get-func-name": "^2.0.1" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/lru-cache": { |     "node_modules/lru-cache": { | ||||||
|       "version": "5.1.1", |       "version": "5.1.1", | ||||||
|       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", |       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", | ||||||
| @@ -4845,27 +4692,6 @@ | |||||||
|         "node": "*" |         "node": "*" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/minimist": { |  | ||||||
|       "version": "1.2.8", |  | ||||||
|       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", |  | ||||||
|       "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", |  | ||||||
|       "dev": true, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/mkdirp": { |  | ||||||
|       "version": "0.5.6", |  | ||||||
|       "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", |  | ||||||
|       "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "minimist": "^1.2.6" |  | ||||||
|       }, |  | ||||||
|       "bin": { |  | ||||||
|         "mkdirp": "bin/cmd.js" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/ms": { |     "node_modules/ms": { | ||||||
|       "version": "2.1.2", |       "version": "2.1.2", | ||||||
|       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", |       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||||||
| @@ -4879,32 +4705,18 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/nock": { |     "node_modules/nock": { | ||||||
|       "version": "10.0.6", |       "version": "14.0.10", | ||||||
|       "resolved": "https://registry.npmjs.org/nock/-/nock-10.0.6.tgz", |       "resolved": "https://registry.npmjs.org/nock/-/nock-14.0.10.tgz", | ||||||
|       "integrity": "sha512-b47OWj1qf/LqSQYnmokNWM8D88KvUl2y7jT0567NB3ZBAZFz2bWp2PC81Xn7u8F2/vJxzkzNZybnemeFa7AZ2w==", |       "integrity": "sha512-Q7HjkpyPeLa0ZVZC5qpxBt5EyLczFJ91MEewQiIi9taWuA0KB/MDJlUWtON+7dGouVdADTQsf9RA7TZk6D8VMw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|  |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "chai": "^4.1.2", |         "@mswjs/interceptors": "^0.39.5", | ||||||
|         "debug": "^4.1.0", |  | ||||||
|         "deep-equal": "^1.0.0", |  | ||||||
|         "json-stringify-safe": "^5.0.1", |         "json-stringify-safe": "^5.0.1", | ||||||
|         "lodash": "^4.17.5", |         "propagate": "^2.0.0" | ||||||
|         "mkdirp": "^0.5.0", |  | ||||||
|         "propagate": "^1.0.0", |  | ||||||
|         "qs": "^6.5.1", |  | ||||||
|         "semver": "^5.5.0" |  | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">= 6.0" |         "node": ">=18.20.0 <20 || >=20.12.1" | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/nock/node_modules/semver": { |  | ||||||
|       "version": "5.7.2", |  | ||||||
|       "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", |  | ||||||
|       "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", |  | ||||||
|       "dev": true, |  | ||||||
|       "bin": { |  | ||||||
|         "semver": "bin/semver" |  | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/node-fetch": { |     "node_modules/node-fetch": { | ||||||
| @@ -4959,40 +4771,6 @@ | |||||||
|         "node": ">=8" |         "node": ">=8" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/object-inspect": { |  | ||||||
|       "version": "1.13.1", |  | ||||||
|       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", |  | ||||||
|       "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", |  | ||||||
|       "dev": true, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/object-is": { |  | ||||||
|       "version": "1.1.5", |  | ||||||
|       "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", |  | ||||||
|       "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "call-bind": "^1.0.2", |  | ||||||
|         "define-properties": "^1.1.3" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">= 0.4" |  | ||||||
|       }, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/object-keys": { |  | ||||||
|       "version": "1.1.1", |  | ||||||
|       "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", |  | ||||||
|       "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", |  | ||||||
|       "dev": true, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">= 0.4" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/once": { |     "node_modules/once": { | ||||||
|       "version": "1.4.0", |       "version": "1.4.0", | ||||||
|       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", |       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | ||||||
| @@ -5034,6 +4812,13 @@ | |||||||
|         "node": ">= 0.8.0" |         "node": ">= 0.8.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/outvariant": { | ||||||
|  |       "version": "1.4.3", | ||||||
|  |       "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", | ||||||
|  |       "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==", | ||||||
|  |       "dev": true, | ||||||
|  |       "license": "MIT" | ||||||
|  |     }, | ||||||
|     "node_modules/p-limit": { |     "node_modules/p-limit": { | ||||||
|       "version": "3.1.0", |       "version": "3.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", |       "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", | ||||||
| @@ -5136,15 +4921,6 @@ | |||||||
|       "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", |       "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/pathval": { |  | ||||||
|       "version": "1.1.1", |  | ||||||
|       "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", |  | ||||||
|       "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", |  | ||||||
|       "dev": true, |  | ||||||
|       "engines": { |  | ||||||
|         "node": "*" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/picocolors": { |     "node_modules/picocolors": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", | ||||||
| @@ -5308,13 +5084,14 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/propagate": { |     "node_modules/propagate": { | ||||||
|       "version": "1.0.0", |       "version": "2.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/propagate/-/propagate-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", | ||||||
|       "integrity": "sha512-T/rqCJJaIPYObiLSmaDsIf4PGA7y+pkgYFHmwoXQyOHiDDSO1YCxcztNiRBmV4EZha4QIbID3vQIHkqKu5k0Xg==", |       "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "engines": [ |       "license": "MIT", | ||||||
|         "node >= 0.8.1" |       "engines": { | ||||||
|       ] |         "node": ">= 8" | ||||||
|  |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/punycode": { |     "node_modules/punycode": { | ||||||
|       "version": "2.3.1", |       "version": "2.3.1", | ||||||
| @@ -5341,21 +5118,6 @@ | |||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|     }, |     }, | ||||||
|     "node_modules/qs": { |  | ||||||
|       "version": "6.11.2", |  | ||||||
|       "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", |  | ||||||
|       "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "side-channel": "^1.0.4" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=0.6" |  | ||||||
|       }, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/queue-microtask": { |     "node_modules/queue-microtask": { | ||||||
|       "version": "1.2.3", |       "version": "1.2.3", | ||||||
|       "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", |       "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", | ||||||
| @@ -5382,23 +5144,6 @@ | |||||||
|       "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", |       "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/regexp.prototype.flags": { |  | ||||||
|       "version": "1.5.1", |  | ||||||
|       "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", |  | ||||||
|       "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "call-bind": "^1.0.2", |  | ||||||
|         "define-properties": "^1.2.0", |  | ||||||
|         "set-function-name": "^2.0.0" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">= 0.4" |  | ||||||
|       }, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/regexpp": { |     "node_modules/regexpp": { | ||||||
|       "version": "3.2.0", |       "version": "3.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", |       "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", | ||||||
| @@ -5561,35 +5306,6 @@ | |||||||
|         "node": ">=10" |         "node": ">=10" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/set-function-length": { |  | ||||||
|       "version": "1.1.1", |  | ||||||
|       "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", |  | ||||||
|       "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "define-data-property": "^1.1.1", |  | ||||||
|         "get-intrinsic": "^1.2.1", |  | ||||||
|         "gopd": "^1.0.1", |  | ||||||
|         "has-property-descriptors": "^1.0.0" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">= 0.4" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/set-function-name": { |  | ||||||
|       "version": "2.0.1", |  | ||||||
|       "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", |  | ||||||
|       "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "define-data-property": "^1.0.1", |  | ||||||
|         "functions-have-names": "^1.2.3", |  | ||||||
|         "has-property-descriptors": "^1.0.0" |  | ||||||
|       }, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">= 0.4" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/shebang-command": { |     "node_modules/shebang-command": { | ||||||
|       "version": "2.0.0", |       "version": "2.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", |       "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", | ||||||
| @@ -5611,20 +5327,6 @@ | |||||||
|         "node": ">=8" |         "node": ">=8" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/side-channel": { |  | ||||||
|       "version": "1.0.4", |  | ||||||
|       "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", |  | ||||||
|       "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", |  | ||||||
|       "dev": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "call-bind": "^1.0.0", |  | ||||||
|         "get-intrinsic": "^1.0.2", |  | ||||||
|         "object-inspect": "^1.9.0" |  | ||||||
|       }, |  | ||||||
|       "funding": { |  | ||||||
|         "url": "https://github.com/sponsors/ljharb" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/signal-exit": { |     "node_modules/signal-exit": { | ||||||
|       "version": "3.0.7", |       "version": "3.0.7", | ||||||
|       "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", |       "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", | ||||||
| @@ -5692,6 +5394,13 @@ | |||||||
|         "node": ">=8" |         "node": ">=8" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/strict-event-emitter": { | ||||||
|  |       "version": "0.5.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", | ||||||
|  |       "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", | ||||||
|  |       "dev": true, | ||||||
|  |       "license": "MIT" | ||||||
|  |     }, | ||||||
|     "node_modules/string-length": { |     "node_modules/string-length": { | ||||||
|       "version": "4.0.2", |       "version": "4.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", |       "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", | ||||||
| @@ -5976,9 +5685,10 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/undici-types": { |     "node_modules/undici-types": { | ||||||
|       "version": "5.26.5", |       "version": "7.8.0", | ||||||
|       "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", |       "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", | ||||||
|       "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" |       "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", | ||||||
|  |       "license": "MIT" | ||||||
|     }, |     }, | ||||||
|     "node_modules/update-browserslist-db": { |     "node_modules/update-browserslist-db": { | ||||||
|       "version": "1.0.13", |       "version": "1.0.13", | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "setup-go", |   "name": "setup-go", | ||||||
|   "version": "5.0.0", |   "version": "6.0.0", | ||||||
|   "private": true, |   "private": true, | ||||||
|   "description": "setup go action", |   "description": "setup go action", | ||||||
|   "main": "lib/setup-go.js", |   "main": "lib/setup-go.js", | ||||||
| @@ -39,18 +39,18 @@ | |||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@types/jest": "^29.5.14", |     "@types/jest": "^29.5.14", | ||||||
|     "@types/node": "^20.11.28", |     "@types/node": "^24.1.0", | ||||||
|     "@types/semver": "^7.5.8", |     "@types/semver": "^7.5.8", | ||||||
|     "@typescript-eslint/eslint-plugin": "^8.31.1", |     "@typescript-eslint/eslint-plugin": "^8.31.1", | ||||||
|     "@typescript-eslint/parser": "^8.35.1", |     "@typescript-eslint/parser": "^8.35.1", | ||||||
|     "@vercel/ncc": "^0.38.1", |     "@vercel/ncc": "^0.38.1", | ||||||
|     "eslint": "^8.57.0", |     "eslint": "^8.57.0", | ||||||
|     "eslint-config-prettier": "^10.0.1", |     "eslint-config-prettier": "^10.1.8", | ||||||
|     "eslint-plugin-jest": "^29.0.1", |     "eslint-plugin-jest": "^29.0.1", | ||||||
|     "eslint-plugin-node": "^11.1.0", |     "eslint-plugin-node": "^11.1.0", | ||||||
|     "jest": "^29.7.0", |     "jest": "^29.7.0", | ||||||
|     "jest-circus": "^29.7.0", |     "jest-circus": "^29.7.0", | ||||||
|     "nock": "^10.0.6", |     "nock": "^14.0.10", | ||||||
|     "prettier": "^2.8.4", |     "prettier": "^2.8.4", | ||||||
|     "ts-jest": "^29.3.2", |     "ts-jest": "^29.3.2", | ||||||
|     "typescript": "^5.8.3" |     "typescript": "^5.8.3" | ||||||
|   | |||||||
| @@ -9,6 +9,8 @@ import os from 'os'; | |||||||
| import {StableReleaseAlias, isSelfHosted} from './utils'; | import {StableReleaseAlias, isSelfHosted} from './utils'; | ||||||
| import {Architecture} from './types'; | import {Architecture} from './types'; | ||||||
|  |  | ||||||
|  | export const GOTOOLCHAIN_ENV_VAR = 'GOTOOLCHAIN'; | ||||||
|  | export const GOTOOLCHAIN_LOCAL_VAL = 'local'; | ||||||
| const MANIFEST_REPO_OWNER = 'actions'; | const MANIFEST_REPO_OWNER = 'actions'; | ||||||
| const MANIFEST_REPO_NAME = 'go-versions'; | const MANIFEST_REPO_NAME = 'go-versions'; | ||||||
| const MANIFEST_REPO_BRANCH = 'main'; | const MANIFEST_REPO_BRANCH = 'main'; | ||||||
| @@ -496,8 +498,21 @@ export function parseGoVersionFile(versionFilePath: string): string { | |||||||
|     path.basename(versionFilePath) === 'go.mod' || |     path.basename(versionFilePath) === 'go.mod' || | ||||||
|     path.basename(versionFilePath) === 'go.work' |     path.basename(versionFilePath) === 'go.work' | ||||||
|   ) { |   ) { | ||||||
|     const match = contents.match(/^go (\d+(\.\d+)*)/m); |     // for backwards compatibility: use version from go directive if | ||||||
|     return match ? match[1] : ''; |     // 'GOTOOLCHAIN' has been explicitly set | ||||||
|  |     if (process.env[GOTOOLCHAIN_ENV_VAR] !== GOTOOLCHAIN_LOCAL_VAL) { | ||||||
|  |       // toolchain directive: https://go.dev/ref/mod#go-mod-file-toolchain | ||||||
|  |       const matchToolchain = contents.match( | ||||||
|  |         /^toolchain go(1\.\d+(?:\.\d+|rc\d+)?)/m | ||||||
|  |       ); | ||||||
|  |       if (matchToolchain) { | ||||||
|  |         return matchToolchain[1]; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     // go directive: https://go.dev/ref/mod#go-mod-file-go | ||||||
|  |     const matchGo = contents.match(/^go (\d+(\.\d+)*)/m); | ||||||
|  |     return matchGo ? matchGo[1] : ''; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   return contents.trim(); |   return contents.trim(); | ||||||
|   | |||||||
							
								
								
									
										18
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								src/main.ts
									
									
									
									
									
								
							| @@ -17,6 +17,7 @@ export async function run() { | |||||||
|     // If not supplied then problem matchers will still be setup.  Useful for self-hosted. |     // If not supplied then problem matchers will still be setup.  Useful for self-hosted. | ||||||
|     // |     // | ||||||
|     const versionSpec = resolveVersionInput(); |     const versionSpec = resolveVersionInput(); | ||||||
|  |     setGoToolchain(); | ||||||
|  |  | ||||||
|     const cache = core.getBooleanInput('cache'); |     const cache = core.getBooleanInput('cache'); | ||||||
|     core.info(`Setup go version spec ${versionSpec}`); |     core.info(`Setup go version spec ${versionSpec}`); | ||||||
| @@ -161,3 +162,20 @@ function resolveVersionInput(): string { | |||||||
|  |  | ||||||
|   return version; |   return version; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | function setGoToolchain() { | ||||||
|  |   // docs: https://go.dev/doc/toolchain | ||||||
|  |   // "local indicates the bundled Go toolchain (the one that shipped with the go command being run)" | ||||||
|  |   // this is so any 'go' command is run with the selected Go version | ||||||
|  |   // and doesn't trigger a toolchain download and run commands with that | ||||||
|  |   // see e.g. issue #424 | ||||||
|  |   // and a similar discussion: https://github.com/docker-library/golang/issues/472. | ||||||
|  |   // Set the value in process env so any `go` commands run as child-process | ||||||
|  |   // don't cause toolchain downloads | ||||||
|  |   process.env[installer.GOTOOLCHAIN_ENV_VAR] = installer.GOTOOLCHAIN_LOCAL_VAL; | ||||||
|  |   // and in the runner env so e.g. a user running `go mod tidy` won't cause it | ||||||
|  |   core.exportVariable( | ||||||
|  |     installer.GOTOOLCHAIN_ENV_VAR, | ||||||
|  |     installer.GOTOOLCHAIN_LOCAL_VAL | ||||||
|  |   ); | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user