mirror of
https://github.com/actions/setup-go.git
synced 2025-11-07 12:36:55 +00:00
udate documentation. action.yml and versions.yml
This commit is contained in:
commit
0ad9091c59
7 changed files with 57 additions and 17 deletions
40
.github/workflows/versions.yml
vendored
40
.github/workflows/versions.yml
vendored
|
|
@ -18,7 +18,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- name: Setup Go Stable
|
||||
|
|
@ -33,7 +33,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- name: Setup Go oldStable
|
||||
|
|
@ -48,13 +48,13 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
|
||||
version: [stable, oldstable]
|
||||
architecture: [x64, x32]
|
||||
exclude:
|
||||
- os: macos-latest
|
||||
architecture: x32
|
||||
- os: macos-13
|
||||
- os: macos-latest-large
|
||||
architecture: x32
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
|
|
@ -72,7 +72,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-latest, windows-latest, ubuntu-latest, macos-13]
|
||||
os: [macos-latest, windows-latest, ubuntu-latest, macos-latest-large]
|
||||
go: [1.21.13, 1.22.8, 1.23.2]
|
||||
include:
|
||||
- os: windows-latest
|
||||
|
|
@ -98,7 +98,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
|
||||
go-version: ['1.20', '1.21', '1.22', '1.23']
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
|
|
@ -115,7 +115,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- name: Setup Go and check latest
|
||||
|
|
@ -131,7 +131,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- name: Setup Go and check latest
|
||||
|
|
@ -142,12 +142,28 @@ jobs:
|
|||
run: __tests__/verify-go.sh 1.21
|
||||
shell: bash
|
||||
|
||||
go-version-file-with-tool-versions:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- name: Setup Go and check latest
|
||||
uses: ./
|
||||
with:
|
||||
go-version-file: __tests__/data/.tool-versions
|
||||
- name: verify go
|
||||
run: __tests__/verify-go.sh 1.23.2
|
||||
shell: bash
|
||||
|
||||
setup-versions-from-manifest:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-latest, windows-latest, ubuntu-latest, macos-13]
|
||||
os: [macos-latest, windows-latest, ubuntu-latest, macos-latest-large]
|
||||
go: [1.20.14, 1.21.10, 1.22.8, 1.23.2]
|
||||
steps:
|
||||
- name: Checkout
|
||||
|
|
@ -167,7 +183,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [windows-latest, ubuntu-latest, macos-13]
|
||||
os: [windows-latest, ubuntu-latest, macos-latest-large]
|
||||
go: [1.11.12]
|
||||
steps:
|
||||
- name: Checkout
|
||||
|
|
@ -187,7 +203,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
|
||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
|
||||
go-version: [1.20.14, 1.21, 1.22, 1.23]
|
||||
include:
|
||||
- os: macos-latest
|
||||
|
|
@ -196,7 +212,7 @@ jobs:
|
|||
architecture: x64
|
||||
- os: windows-latest
|
||||
architecture: x64
|
||||
- os: macos-13
|
||||
- os: macos-latest-large
|
||||
architecture: x64
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
|
|
|
|||
1
__tests__/data/.tool-versions
Normal file
1
__tests__/data/.tool-versions
Normal file
|
|
@ -0,0 +1 @@
|
|||
golang 1.23.2
|
||||
|
|
@ -389,7 +389,7 @@ describe('setup-go', () => {
|
|||
|
||||
const expPath = path.win32.join(toolPath, 'bin');
|
||||
expect(dlSpy).toHaveBeenCalledWith(
|
||||
'https://storage.googleapis.com/golang/go1.13.1.windows-amd64.zip',
|
||||
'https://go.dev/dl/go1.13.1.windows-amd64.zip',
|
||||
'C:\\temp\\go1.13.1.windows-amd64.zip',
|
||||
undefined
|
||||
);
|
||||
|
|
@ -866,6 +866,9 @@ exclude example.com/thismodule v1.3.0
|
|||
|
||||
use .
|
||||
|
||||
`;
|
||||
|
||||
const toolVersionsContents = `golang 1.23
|
||||
`;
|
||||
|
||||
it('reads version from go.mod', async () => {
|
||||
|
|
@ -892,6 +895,18 @@ use .
|
|||
expect(logSpy).toHaveBeenCalledWith('matching 1.19...');
|
||||
});
|
||||
|
||||
it('reads version from .tool-versions', async () => {
|
||||
inputs['go-version-file'] = '.tool-versions';
|
||||
existsSpy.mockImplementation(() => true);
|
||||
readFileSpy.mockImplementation(() => Buffer.from(toolVersionsContents));
|
||||
|
||||
await main.run();
|
||||
|
||||
expect(logSpy).toHaveBeenCalledWith('Setup go version spec 1.23');
|
||||
expect(logSpy).toHaveBeenCalledWith('Attempting to download 1.23...');
|
||||
expect(logSpy).toHaveBeenCalledWith('matching 1.23...');
|
||||
});
|
||||
|
||||
it('reads version from .go-version', async () => {
|
||||
inputs['go-version-file'] = '.go-version';
|
||||
existsSpy.mockImplementation(() => true);
|
||||
|
|
@ -946,7 +961,7 @@ use .
|
|||
const expectedUrl =
|
||||
platform === 'win32'
|
||||
? `https://github.com/actions/go-versions/releases/download/${version}/go-${version}-${platform}-${arch}.${fileExtension}`
|
||||
: `https://storage.googleapis.com/golang/go${version}.${osSpec}-${arch}.${fileExtension}`;
|
||||
: `https://go.dev/dl/go${version}.${osSpec}-${arch}.${fileExtension}`;
|
||||
|
||||
// ... but not in the local cache
|
||||
findSpy.mockImplementation(() => '');
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ inputs:
|
|||
go-version:
|
||||
description: 'The Go version to download (if necessary) and use. Supports semver spec and ranges. Be sure to enclose this option in single quotation marks.'
|
||||
go-version-file:
|
||||
description: 'Path to the go.mod or go.work file.'
|
||||
description: 'Path to the go.mod, .tool-versions, or go.work file.'
|
||||
check-latest:
|
||||
description: 'Set this option to true if you want the action to always check for the latest available version that satisfies the version spec'
|
||||
default: false
|
||||
|
|
|
|||
6
dist/setup/index.js
vendored
6
dist/setup/index.js
vendored
|
|
@ -94583,7 +94583,7 @@ function getInfoFromDist(versionSpec, arch) {
|
|||
if (!version) {
|
||||
return null;
|
||||
}
|
||||
const downloadUrl = `https://storage.googleapis.com/golang/${version.files[0].filename}`;
|
||||
const downloadUrl = `https://go.dev/dl/${version.files[0].filename}`;
|
||||
return {
|
||||
type: 'dist',
|
||||
downloadUrl: downloadUrl,
|
||||
|
|
@ -94679,6 +94679,10 @@ function parseGoVersionFile(versionFilePath) {
|
|||
const matchGo = contents.match(/^go (\d+(\.\d+)*)/m);
|
||||
return matchGo ? matchGo[1] : '';
|
||||
}
|
||||
else if (path.basename(versionFilePath) === '.tool-versions') {
|
||||
const match = contents.match(/^golang\s+([^\n#]+)/m);
|
||||
return match ? match[1].trim() : '';
|
||||
}
|
||||
return contents.trim();
|
||||
}
|
||||
function resolveStableVersionDist(versionSpec, arch) {
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ process.on('uncaughtException', e => {
|
|||
// Added early exit to resolve issue with slow post action step:
|
||||
// - https://github.com/actions/setup-node/issues/878
|
||||
// https://github.com/actions/cache/pull/1217
|
||||
|
||||
export async function run(earlyExit?: boolean) {
|
||||
try {
|
||||
const cacheInput = core.getBooleanInput('cache');
|
||||
|
|
|
|||
|
|
@ -389,7 +389,7 @@ async function getInfoFromDist(
|
|||
return null;
|
||||
}
|
||||
|
||||
const downloadUrl = `https://storage.googleapis.com/golang/${version.files[0].filename}`;
|
||||
const downloadUrl = `https://go.dev/dl/${version.files[0].filename}`;
|
||||
|
||||
return <IGoVersionInfo>{
|
||||
type: 'dist',
|
||||
|
|
@ -513,6 +513,9 @@ export function parseGoVersionFile(versionFilePath: string): string {
|
|||
// go directive: https://go.dev/ref/mod#go-mod-file-go
|
||||
const matchGo = contents.match(/^go (\d+(\.\d+)*)/m);
|
||||
return matchGo ? matchGo[1] : '';
|
||||
} else if (path.basename(versionFilePath) === '.tool-versions') {
|
||||
const match = contents.match(/^golang\s+([^\n#]+)/m);
|
||||
return match ? match[1].trim() : '';
|
||||
}
|
||||
|
||||
return contents.trim();
|
||||
|
|
|
|||
Loading…
Reference in a new issue