Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/basic-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 changes: 1 addition & 1 deletion .github/workflows/check-dist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 changes: 1 addition & 1 deletion .licenses/npm/@types/node.dep.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 4 additions & 2 deletions .licenses/npm/undici-types.dep.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 23 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,17 +50,17 @@ 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
```

```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
Expand All @@ -78,17 +78,17 @@ 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
```

```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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -144,17 +144,17 @@ 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
```

```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
Expand All @@ -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
Expand All @@ -204,8 +204,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
Expand All @@ -222,9 +222,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
Expand Down Expand Up @@ -252,7 +252,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'
Expand Down
25 changes: 15 additions & 10 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -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}\"",
Expand Down Expand Up @@ -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",
Expand Down
16 changes: 10 additions & 6 deletions src/installer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';

const MANIFEST_REPO_OWNER = 'actions';
const MANIFEST_REPO_NAME = 'go-versions';
Expand Down Expand Up @@ -39,7 +40,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();
Expand Down Expand Up @@ -151,7 +152,7 @@ async function resolveVersionFromManifest(
versionSpec: string,
stable: boolean,
auth: string | undefined,
arch: string,
arch: Architecture,
manifest: tc.IToolRelease[] | undefined
): Promise<string | undefined> {
try {
Expand Down Expand Up @@ -353,7 +354,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;
Expand All @@ -379,7 +380,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) {
Expand All @@ -398,7 +399,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();
Expand Down Expand Up @@ -502,7 +503,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';
Expand Down
5 changes: 3 additions & 2 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -20,10 +21,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) {
Expand Down
3 changes: 2 additions & 1 deletion src/system.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os from 'os';
import {Architecture} from './types';

export function getPlatform(): string {
// darwin and linux match already
Expand All @@ -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
Expand Down
2 changes: 2 additions & 0 deletions src/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// match what @actions/tool-cache expects
export type Architecture = string;
Loading