Compare commits

...

40 Commits

Author SHA1 Message Date
github-actions[bot]
2965f72cec Update versions-manifest (#89)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-10-11 17:06:59 +02:00
github-actions[bot]
6c844dd698 Update versions-manifest (#88)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-10-10 12:26:06 +02:00
github-actions[bot]
54362b0923 Update versions-manifest (#87)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-09-22 14:01:04 +02:00
Dmitry Shibanov
278f715aec update submodule (#86) 2023-09-22 11:15:17 +02:00
Marko Zivic
873008f3a4 Merge pull request #85 from actions/deprecation-policy
Add Support Notification Policy
2023-09-20 14:01:38 +02:00
Dusan Trickovic
9950b4c24d Update README.md and Add Support Notification Policy 2023-09-20 12:50:15 +02:00
github-actions[bot]
1871e111e3 Update versions-manifest (#84)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-09-19 18:26:16 +02:00
github-actions[bot]
6461f1df09 Update versions-manifest (#83)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-09-07 10:40:39 +02:00
github-actions[bot]
05b161f8b7 Update versions-manifest (#82)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-08-09 13:03:21 +02:00
Dmitry Shibanov
0e4e5019c1 add minor fix (#81) 2023-08-09 12:48:08 +02:00
github-actions[bot]
a42239e7a9 Update versions-manifest (#80) 2023-08-03 09:54:41 +02:00
github-actions[bot]
e0a0673ca1 Update versions-manifest (#78) 2023-07-12 10:44:27 +02:00
github-actions[bot]
f436eb1900 Update versions-manifest (#77)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-06-30 18:09:53 +02:00
Dmitry Shibanov
c2d6080d9a add arm for regex (#76) 2023-06-30 17:44:16 +02:00
Marko Zivic
55fda57e98 Merge pull request #75 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 06/09/2023
2023-06-09 10:26:04 +02:00
Service account
dd670b40fc Update versions-manifest 2023-06-09 05:51:11 +00:00
github-actions[bot]
c860efc7e5 Update versions-manifest (#74)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-05-03 12:11:21 +02:00
github-actions[bot]
797449dd8e Update versions-manifest (#73)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-04-06 10:06:10 +02:00
github-actions[bot]
b27d67b686 Update versions-manifest (#72)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-03-08 12:25:40 +01:00
github-actions[bot]
476ac2a1cb Update versions-manifest (#71)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-02-20 14:30:36 +01:00
github-actions[bot]
4fbaddfe63 Update versions-manifest (#70)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-02-17 11:44:16 +01:00
github-actions[bot]
244f8fdaff Update versions-manifest (#69)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-02-02 09:29:09 +01:00
Ivan
f999e556e9 Update codeql action to use reusable workflow (#68) 2023-01-19 12:35:56 +01:00
github-actions[bot]
2f4bcf5e73 Update versions-manifest (#67)
Co-authored-by: Service account <no-reply@microsoft.com>
2023-01-11 11:32:19 +01:00
Marko Zivic
8666f92fad Merge pull request #66 from actions/update-codeowners
Update CODEOWNERS
2022-12-27 09:26:45 +01:00
Evgenii Korolevskii
9ea2b986ed Update CODEOWNERS 2022-12-26 09:50:41 +01:00
Marko Zivic
1a111f3e5c Merge pull request #64 from MaksimZhukov/introduce-reusable-workflows
Update workflows to use reusable ones
2022-12-14 09:43:52 +01:00
MaksimZhukov
1e50d2d968 Replaced the virtual-environments with the runner-images 2022-12-09 09:27:18 +01:00
github-actions[bot]
c9ed2f9d11 Update versions-manifest (#65)
Co-authored-by: Service account <no-reply@microsoft.com>
2022-12-07 11:52:31 +01:00
MaksimZhukov
e997e9e934 Update workflows to use reusable ones 2022-12-06 18:59:40 +01:00
github-actions[bot]
dca364fcdb Update versions-manifest (#63) 2022-11-02 12:19:14 +01:00
Marko Zivic
8b01adb6c0 Merge pull request #60 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 10/07/2022
2022-10-07 08:18:49 +02:00
Service account
4c9c326cab Update versions-manifest 2022-10-07 05:43:16 +00:00
github-actions[bot]
7fbc001811 Update versions-manifest (#59)
Co-authored-by: Service account <no-reply@microsoft.com>
2022-09-07 08:19:43 +03:00
Marko Zivic
acce0a295a Merge pull request #52 from actions/aloviedo-patch-1
Create codeql-analysis.yml
2022-08-03 09:27:23 +02:00
github-actions[bot]
db588f6323 Update versions-manifest (#58)
Co-authored-by: Service account <no-reply@microsoft.com>
2022-08-03 08:23:44 +03:00
github-actions[bot]
c3a220ac09 Update versions-manifest (#57)
Co-authored-by: Service account <no-reply@microsoft.com>
2022-08-02 08:26:14 +03:00
github-actions[bot]
58362e99d6 Update versions-manifest (#56)
Co-authored-by: Service account <no-reply@microsoft.com>
2022-07-13 14:42:59 +03:00
github-actions[bot]
82e37a11c9 Update versions-manifest (#55)
Co-authored-by: Service account <no-reply@microsoft.com>
2022-06-02 09:30:33 +03:00
aloviedo
a9a1e21f04 Create codeql-analysis.yml 2022-03-30 06:51:56 -07:00
11 changed files with 1090 additions and 314 deletions

2
.github/CODEOWNERS vendored
View File

@@ -1 +1 @@
* @actions/virtual-environments-owners
* @actions/setup-actions-team

View File

@@ -1,15 +1,17 @@
name: Generate Go package
run-name: Generate Go ${{ inputs.VERSION || '1.19.0' }}
on:
workflow_dispatch:
inputs:
VERSION:
description: 'Go version to build and upload'
required: true
default: '1.15.0'
default: '1.19.0'
PUBLISH_RELEASES:
description: 'Whether to publish releases'
type: boolean
required: true
default: 'false'
default: false
pull_request:
paths-ignore:
- 'versions-manifest.json'
@@ -18,153 +20,12 @@ on:
branches:
- 'main'
env:
VERSION: ${{ github.event.inputs.VERSION || '1.15.3' }}
defaults:
run:
shell: pwsh
jobs:
build_go:
name: Build Go ${{ github.event.inputs.VERSION || '1.15.3' }} [${{ matrix.platform }}]
runs-on: ubuntu-latest
env:
ARTIFACT_NAME: go-${{ github.event.inputs.VERSION || '1.15.3' }}-${{ matrix.platform }}-x64
strategy:
fail-fast: false
matrix:
platform: [linux, darwin, win32]
steps:
- uses: actions/checkout@v2
go:
name: Go
uses: actions/versions-package-tools/.github/workflows/build-tool-packages.yml@main
with:
submodules: true
- name: Build Go ${{ env.VERSION }}
run: |
./builders/build-go.ps1 -Version $env:VERSION `
-Platform ${{ matrix.platform }}
- name: Publish artifact
uses: actions/upload-artifact@v2
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ runner.temp }}/artifact
test_go:
name: Test Go ${{ github.event.inputs.VERSION || '1.15.3' }} [${{ matrix.platform }}]
needs: build_go
runs-on: ${{ matrix.os }}
env:
ARTIFACT_NAME: go-${{ github.event.inputs.VERSION || '1.15.3' }}-${{ matrix.platform }}-x64
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
platform: linux
- os: macos-latest
platform: darwin
- os: windows-latest
platform: win32
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Fully cleanup the toolcache directory before testing
run: ./helpers/clean-toolcache.ps1 -ToolName "go"
- name: Download artifact
uses: actions/download-artifact@v2
with:
path: ${{ runner.temp }}
- name: Extract files
run: |
if ('${{ matrix.platform }}' -eq 'win32') {
$artifactName = "${{ env.ARTIFACT_NAME }}.zip"
7z.exe x "$artifactName" -y | Out-Null
} else {
$artifactName = "${{ env.ARTIFACT_NAME }}.tar.gz"
tar -xzf $artifactName
}
working-directory: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
- name: Apply build artifact to the local machine
run: |
if ('${{ matrix.platform }}' -eq 'win32') { powershell ./setup.ps1 } else { sh ./setup.sh }
working-directory: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
- name: Setup Go ${{ env.VERSION }}
uses: actions/setup-go@v2.1.3
with:
go-version: ${{ env.VERSION }}
- name: Wait for the logs
run: |
Write-Host "Fake step that do nothing"
Write-Host "We need it because log of previous step 'Setup Go' is not available here yet."
Write-Host "In testing step (Go.Tests.ps1) we analyze build log of 'Setup Go' task"
Write-Host "to determine if Go.js version was consumed from cache and was downloaded"
for ($i = 0; $i -lt 200; $i++) { Get-Random }
- name: Run tests
run: |
Install-Module Pester -Force -Scope CurrentUser
Import-Module Pester
Invoke-Pester -Script ./Go.Tests.ps1 -EnableExit
working-directory: ./tests
publish_release:
name: Publish release
if: github.event_name == 'workflow_dispatch' && github.event.inputs.PUBLISH_RELEASES == 'true'
needs: test_go
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v2
- name: Publish Release ${{ env.VERSION }}
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.VERSION }}-${{ github.run_id }}
release_name: ${{ env.VERSION }}
body: |
Go ${{ env.VERSION }}
- name: Upload release assets
uses: actions/github-script@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const fs = require('fs');
for (let artifactDir of fs.readdirSync('.')) {
let artifactName = fs.readdirSync(`${artifactDir}`)[0];
console.log(`Upload ${artifactName} asset`);
github.repos.uploadReleaseAsset({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: ${{ steps.create_release.outputs.id }},
name: artifactName,
data: fs.readFileSync(`./${artifactDir}/${artifactName}`)
});
}
trigger_pr:
name: Trigger "Create Pull Request" workflow
needs: publish_release
runs-on: ubuntu-latest
steps:
- name: Trigger "Create Pull Request" workflow
uses: actions/github-script@v3
with:
github-token: ${{ secrets.PERSONAL_TOKEN }}
script: |
github.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: 'create-pr.yml',
ref: 'main'
});
tool-name: "go"
tool-version: ${{ inputs.VERSION || '1.19.0' }}
publish-release: ${{ inputs.PUBLISH_RELEASES || false }}
secrets: inherit

16
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
name: CodeQL analysis
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
- cron: '0 3 * * 0'
jobs:
call-codeQL-analysis:
name: CodeQL analysis
uses: actions/reusable-workflows/.github/workflows/codeql-analysis.yml@main
with:
languages: "['go']"

View File

@@ -2,32 +2,9 @@ name: Create Pull Request
on:
workflow_dispatch:
defaults:
run:
shell: pwsh
jobs:
create_pr:
name: Create Pull Request
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
create-pr:
uses: actions/versions-package-tools/.github/workflows/create-pr-to-update-manifest.yml@main
with:
submodules: true
- name: Create versions-manifest.json
run: |
./helpers/packages-generation/manifest-generator.ps1 -RepositoryFullName "$env:GITHUB_REPOSITORY" `
-GitHubAccessToken "${{secrets.GITHUB_TOKEN}}" `
-OutputFile "./versions-manifest.json" `
-ConfigurationFile "./config/go-manifest-config.json"
- name: Create GitHub PR
run: |
$formattedDate = Get-Date -Format "MM/dd/yyyy"
./helpers/github/create-pull-request.ps1 `
-RepositoryFullName "$env:GITHUB_REPOSITORY" `
-AccessToken "${{secrets.GITHUB_TOKEN}}" `
-BranchName "update-versions-manifest-file" `
-CommitMessage "Update versions-manifest" `
-PullRequestTitle "[versions-manifest] Update for release from ${formattedDate}" `
-PullRequestBody "Update versions-manifest.json for release from ${formattedDate}"
tool-name: "go"
secrets: inherit

View File

@@ -4,94 +4,10 @@ on:
- cron: '0 3,15 * * *'
workflow_dispatch:
env:
TOOL_NAME: "Go"
defaults:
run:
shell: pwsh
jobs:
find_new_versions:
name: Find new versions
runs-on: ubuntu-latest
outputs:
versions_output: ${{ steps.Get_new_versions.outputs.TOOL_VERSIONS }}
steps:
- uses: actions/checkout@v2
get-new-go-versions:
uses: actions/versions-package-tools/.github/workflows/get-new-tool-versions.yml@main
with:
submodules: true
- id: Get_new_versions
name: Get new versions
run: ./helpers/get-new-tool-versions/get-new-tool-versions.ps1 -ToolName ${{ env.TOOL_NAME }}
check_new_versions:
name: Check new versions
runs-on: ubuntu-latest
needs: find_new_versions
env:
TOOL_VERSIONS: ${{needs.find_new_versions.outputs.versions_output}}
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Check Versions
if: env.TOOL_VERSIONS == ''
run: |
Write-Host "No new versions were found"
Import-Module "./helpers/github/github-api.psm1"
$gitHubApi = Get-GitHubApi -RepositoryFullName "$env:GITHUB_REPOSITORY" `
-AccessToken "${{ secrets.PERSONAL_TOKEN }}"
$gitHubApi.CancelWorkflow("$env:GITHUB_RUN_ID")
Start-Sleep -Seconds 60
- name: Send Slack notification
run: |
$pipelineUrl = "$env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY/actions/runs/$env:GITHUB_RUN_ID"
$message = "The following versions of '${{ env.TOOL_NAME }}' are available to upload: ${{ env.TOOL_VERSIONS }}\nLink to the pipeline: $pipelineUrl"
./helpers/get-new-tool-versions/send-slack-notification.ps1 -Url "${{ secrets.SLACK_CHANNEL_URL }}" `
-ToolName "${{ env.TOOL_NAME }}" `
-ImageUrl "https://golang.org/lib/godoc/images/footer-gopher.jpg" `
-Text "$message"
trigger_builds:
name: Trigger builds
runs-on: ubuntu-latest
needs: [find_new_versions, check_new_versions]
env:
TOOL_VERSIONS: ${{needs.find_new_versions.outputs.versions_output}}
environment: Get Available Tools Versions - Publishing Approval
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Trigger "Build go packages" workflow
run:
./helpers/github/run-ci-builds.ps1 -RepositoryFullName "$env:GITHUB_REPOSITORY" `
-AccessToken "${{ secrets.PERSONAL_TOKEN }}" `
-WorkflowFileName "build-go-packages.yml" `
-WorkflowDispatchRef "main" `
-ToolVersions "${{ env.TOOL_VERSIONS }}" `
-PublishReleases "true"
check_build:
name: Check build for failures
runs-on: ubuntu-latest
needs: [find_new_versions, check_new_versions, trigger_builds]
if: failure()
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Send Slack notification if build fails
run: |
$pipelineUrl = "$env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY/actions/runs/$env:GITHUB_RUN_ID"
$message = "The build of the '${{ env.TOOL_NAME }}' detection pipeline failed :progress-error:\nLink to the pipeline: $pipelineUrl"
./helpers/get-new-tool-versions/send-slack-notification.ps1 -Url "${{ secrets.SLACK_CHANNEL_URL }}" `
-ToolName "${{ env.TOOL_NAME }}" `
-Text "$message" `
-ImageUrl "https://golang.org/lib/godoc/images/footer-gopher.jpg"
tool-name: "Go"
image-url: "https://go.dev/images/gopher-footer.jpg"
secrets: inherit

View File

@@ -1,48 +1,21 @@
name: Validate manifest
on:
# The GITHUB_TOKEN secret is used to create a PR
# The pull_request event will not be triggered by it
# That's one of the reasons we need the schedule to validate the versions-manifest.json file
schedule:
- cron: '0 8,20 * * *'
workflow_dispatch:
pull_request:
branches:
- main
paths:
- 'versions-manifest.json'
env:
TOOL_NAME: "Go"
defaults:
run:
shell: pwsh
jobs:
validation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
manifest:
uses: actions/versions-package-tools/.github/workflows/validate-manifest.yml@main
with:
submodules: true
- name: Validate python-versions manifest
run: .\helpers\packages-generation\manifest-validator.ps1 -ManifestPath '.\versions-manifest.json'
check_build:
name: Check validation for failures
runs-on: ubuntu-latest
needs: [validation]
if: failure()
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Send Slack notification if validation fails
run: |
$pipelineUrl = "$env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY/actions/runs/$env:GITHUB_RUN_ID"
$message = "The validation of go-versions manifest failed. \nLink to the pipeline: $pipelineUrl"
.\helpers\get-new-tool-versions\send-slack-notification.ps1 -Url "${{ secrets.SLACK_CHANNEL_URL }}" `
-ToolName "${{ env.TOOL_NAME }}" `
-Text "$message" `
-ImageUrl "https://golang.org/lib/godoc/images/footer-gopher.jpg"
tool-name: "Go"
image-url: "https://go.dev/images/gopher-footer.jpg"
secrets: inherit

View File

@@ -1,15 +1,18 @@
# Go for Actions
This repository contains the code and scripts that we use to prepare Go packages used in [virtual-environments](https://github.com/actions/virtual-environments) and accessible through the [setup-go](https://github.com/actions/setup-go) Action.
This repository contains the code and scripts that we use to prepare Go packages used in [runner-images](https://github.com/actions/runner-images) and accessible through the [setup-go](https://github.com/actions/setup-go) Action.
The file [versions-manifest.json](./versions-manifest.json) contains the list of available and released versions.
> Caution: this is prepared for and only permitted for use by actions `virtual-environments` and `setup-go` action.
> Caution: this is prepared for and only permitted for use by actions `runner-images` and `setup-go` action.
**Status**: Currently under development and in use for beta and preview actions. This repo is undergoing rapid changes.
Latest of LTS versions will be installed on the [virtual-environments](https://github.com/actions/virtual-environments) images. Other versions will be pulled JIT using the [`setup-go`](https://github.com/actions/setup-go) action.
Latest of LTS versions will be installed on the [runner-images](https://github.com/actions/runner-images) images. Other versions will be pulled JIT using the [`setup-go`](https://github.com/actions/setup-go) action.
## Adding new versions
We are trying to prepare packages for new versions of Go as soon as they are released. Please open an issue in [actions/virtual-environments](https://github.com/actions/virtual-environments) if any versions are missing.
We are trying to prepare packages for new versions of Go as soon as they are released. Please open an issue in [actions/runner-images](https://github.com/actions/runner-images) if any versions are missing.
## Support Notification Policy
Beginning **approximately six months prior** to the removal of a Go version from the [versions-manifest.json](https://github.com/actions/go-versions/blob/main/versions-manifest.json) file, a pinned issue will be created in the [setup-go](https://github.com/actions/setup-go) repository. This pinned issue will provide important details about the upcoming end of support, including the specific date, as well as any other notes, relevant updates or alternatives. We encourage users to regularly check pinned issues for updates on tool versions they are using for maximum transparency, security, performance and overall compatibility with their projects.
## Contribution
Contributions are welcome! See [Contributor's Guide](./CONTRIBUTING.md) for more details about contribution process and code structure

View File

@@ -58,7 +58,7 @@ class GoBuilder {
$arch = ($this.Architecture -eq "x64") ? "amd64" : $this.Architecture
$goPlatform = ($this.Platform -Match "win32") ? "windows" : $this.Platform
$ArchiveType = ($this.Platform -Match "win32") ? "zip" : "tar.gz"
If ($this.Version.Build -eq "0") {
If ($this.Version.Build -eq "0" -and $this.Version -lt "1.21.0") {
$goVersion = "go$($this.Version.ToString(2))"
} else {
$goVersion = "go$($this.Version.ToString(3))"

View File

@@ -1,5 +1,5 @@
{
"regex": "go-\\d+\\.\\d+\\.\\d+-(\\w+)-(x\\d+)",
"regex": "go-\\d+\\.\\d+\\.\\d+-(\\w+)-((x|arm)\\d+)",
"groups": {
"arch": 2,
"platform": 1

Submodule helpers updated: 6f1aa3ce73...6fbb1f0f20

File diff suppressed because it is too large Load Diff