Compare commits
51 Commits
1.19.2-319
...
main
Author | SHA1 | Date |
---|---|---|
gitea-actions[bot] | d59ac60c2b | |
github-actions[bot] | 070c2a1b84 | |
github-actions[bot] | 06b75e6f50 | |
gowridurgad | 435e8c8778 | |
aparnajyothi-y | ef611dd539 | |
github-actions[bot] | b1013e0081 | |
github-actions[bot] | 3707979bc0 | |
github-actions[bot] | 74d3ad35e2 | |
github-actions[bot] | 497900d985 | |
github-actions[bot] | 5250a133e2 | |
github-actions[bot] | c0555276f6 | |
HarithaVattikuti | de9a0fc11e | |
Service account | 2344cc872a | |
github-actions[bot] | 1635b75524 | |
github-actions[bot] | 2935e07892 | |
github-actions[bot] | 8196b0fc6b | |
Dmitry Shibanov | 6de71f133a | |
github-actions[bot] | efc7cf9b98 | |
github-actions[bot] | 2965f72cec | |
github-actions[bot] | 6c844dd698 | |
github-actions[bot] | 54362b0923 | |
Dmitry Shibanov | 278f715aec | |
Marko Zivic | 873008f3a4 | |
Dusan Trickovic | 9950b4c24d | |
github-actions[bot] | 1871e111e3 | |
github-actions[bot] | 6461f1df09 | |
github-actions[bot] | 05b161f8b7 | |
Dmitry Shibanov | 0e4e5019c1 | |
github-actions[bot] | a42239e7a9 | |
github-actions[bot] | e0a0673ca1 | |
github-actions[bot] | f436eb1900 | |
Dmitry Shibanov | c2d6080d9a | |
Marko Zivic | 55fda57e98 | |
Service account | dd670b40fc | |
github-actions[bot] | c860efc7e5 | |
github-actions[bot] | 797449dd8e | |
github-actions[bot] | b27d67b686 | |
github-actions[bot] | 476ac2a1cb | |
github-actions[bot] | 4fbaddfe63 | |
github-actions[bot] | 244f8fdaff | |
Ivan | f999e556e9 | |
github-actions[bot] | 2f4bcf5e73 | |
Marko Zivic | 8666f92fad | |
Evgenii Korolevskii | 9ea2b986ed | |
Marko Zivic | 1a111f3e5c | |
MaksimZhukov | 1e50d2d968 | |
github-actions[bot] | c9ed2f9d11 | |
MaksimZhukov | e997e9e934 | |
github-actions[bot] | dca364fcdb | |
Marko Zivic | 8b01adb6c0 | |
Service account | 4c9c326cab |
|
@ -1 +1 @@
|
||||||
* @actions/virtual-environments-owners
|
* @actions/setup-actions-team
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
name: Generate Go package
|
name: Generate Go package
|
||||||
|
run-name: Generate Go ${{ inputs.VERSION || '1.19.0' }}
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
VERSION:
|
VERSION:
|
||||||
description: 'Go version to build and upload'
|
description: 'Go version to build and upload'
|
||||||
required: true
|
required: true
|
||||||
default: '1.15.0'
|
default: '1.19.0'
|
||||||
PUBLISH_RELEASES:
|
PUBLISH_RELEASES:
|
||||||
description: 'Whether to publish releases'
|
description: 'Whether to publish releases'
|
||||||
|
type: boolean
|
||||||
required: true
|
required: true
|
||||||
default: 'false'
|
default: false
|
||||||
pull_request:
|
pull_request:
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- 'versions-manifest.json'
|
- 'versions-manifest.json'
|
||||||
|
@ -18,153 +20,12 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- 'main'
|
- 'main'
|
||||||
|
|
||||||
env:
|
|
||||||
VERSION: ${{ github.event.inputs.VERSION || '1.15.3' }}
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: pwsh
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build_go:
|
go:
|
||||||
name: Build Go ${{ github.event.inputs.VERSION || '1.15.3' }} [${{ matrix.platform }}]
|
name: Go
|
||||||
runs-on: ubuntu-latest
|
uses: actions/versions-package-tools/.github/workflows/build-tool-packages.yml@main
|
||||||
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
|
|
||||||
with:
|
with:
|
||||||
submodules: true
|
tool-name: "go"
|
||||||
|
tool-version: ${{ inputs.VERSION || '1.19.0' }}
|
||||||
- name: Build Go ${{ env.VERSION }}
|
publish-release: ${{ inputs.PUBLISH_RELEASES || false }}
|
||||||
run: |
|
secrets: inherit
|
||||||
./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'
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,70 +1,16 @@
|
||||||
# For most projects, this workflow file will not need changing; you simply need
|
name: CodeQL analysis
|
||||||
# to commit it to your repository.
|
|
||||||
#
|
|
||||||
# You may wish to alter this file to override the set of languages analyzed,
|
|
||||||
# or to provide custom queries or build logic.
|
|
||||||
#
|
|
||||||
# ******** NOTE ********
|
|
||||||
# We have attempted to detect the languages in your repository. Please check
|
|
||||||
# the `language` matrix defined below to confirm you have the correct set of
|
|
||||||
# supported CodeQL languages.
|
|
||||||
#
|
|
||||||
name: "CodeQL"
|
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ main ]
|
branches: [ main ]
|
||||||
pull_request:
|
pull_request:
|
||||||
# The branches below must be a subset of the branches above
|
|
||||||
branches: [ main ]
|
branches: [ main ]
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '25 17 * * 1'
|
- cron: '0 3 * * 0'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
analyze:
|
call-codeQL-analysis:
|
||||||
name: Analyze
|
name: CodeQL analysis
|
||||||
runs-on: ubuntu-latest
|
uses: actions/reusable-workflows/.github/workflows/codeql-analysis.yml@main
|
||||||
permissions:
|
|
||||||
actions: read
|
|
||||||
contents: read
|
|
||||||
security-events: write
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
language: [ 'go' ]
|
|
||||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
|
||||||
# Learn more about CodeQL language support at https://git.io/codeql-language-support
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
|
||||||
- name: Initialize CodeQL
|
|
||||||
uses: github/codeql-action/init@v1
|
|
||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: '["go"]'
|
||||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
||||||
# By default, queries listed here will override any specified in a config file.
|
|
||||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
|
||||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
|
||||||
|
|
||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
|
||||||
- name: Autobuild
|
|
||||||
uses: github/codeql-action/autobuild@v1
|
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
|
||||||
# 📚 https://git.io/JvXDl
|
|
||||||
|
|
||||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
|
||||||
# and modify them (or add more) to build your code if your project
|
|
||||||
# uses a compiled language
|
|
||||||
|
|
||||||
#- run: |
|
|
||||||
# make bootstrap
|
|
||||||
# make release
|
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@v1
|
|
||||||
|
|
|
@ -2,32 +2,9 @@ name: Create Pull Request
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: pwsh
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
create_pr:
|
create-pr:
|
||||||
name: Create Pull Request
|
uses: actions/versions-package-tools/.github/workflows/create-pr-to-update-manifest.yml@main
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
with:
|
||||||
submodules: true
|
tool-name: "go"
|
||||||
|
secrets: inherit
|
||||||
- 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}"
|
|
|
@ -4,94 +4,10 @@ on:
|
||||||
- cron: '0 3,15 * * *'
|
- cron: '0 3,15 * * *'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
|
||||||
TOOL_NAME: "Go"
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: pwsh
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
find_new_versions:
|
get-new-go-versions:
|
||||||
name: Find new versions
|
uses: actions/versions-package-tools/.github/workflows/get-new-tool-versions.yml@main
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
versions_output: ${{ steps.Get_new_versions.outputs.TOOL_VERSIONS }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
with:
|
||||||
submodules: true
|
tool-name: "Go"
|
||||||
|
image-url: "https://go.dev/images/gopher-footer.jpg"
|
||||||
- id: Get_new_versions
|
secrets: inherit
|
||||||
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"
|
|
|
@ -1,48 +1,21 @@
|
||||||
name: Validate manifest
|
name: Validate manifest
|
||||||
|
|
||||||
on:
|
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:
|
schedule:
|
||||||
- cron: '0 8,20 * * *'
|
- cron: '0 8,20 * * *'
|
||||||
|
workflow_dispatch:
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
paths:
|
paths:
|
||||||
- 'versions-manifest.json'
|
- 'versions-manifest.json'
|
||||||
|
|
||||||
env:
|
|
||||||
TOOL_NAME: "Go"
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: pwsh
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
validation:
|
manifest:
|
||||||
runs-on: ubuntu-latest
|
uses: actions/versions-package-tools/.github/workflows/validate-manifest.yml@main
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
with:
|
||||||
submodules: true
|
tool-name: "Go"
|
||||||
|
image-url: "https://go.dev/images/gopher-footer.jpg"
|
||||||
- name: Validate python-versions manifest
|
secrets: inherit
|
||||||
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"
|
|
11
README.md
11
README.md
|
@ -1,15 +1,18 @@
|
||||||
# Go for Actions
|
# 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.
|
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.
|
**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
|
## 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
|
## Contribution
|
||||||
Contributions are welcome! See [Contributor's Guide](./CONTRIBUTING.md) for more details about contribution process and code structure
|
Contributions are welcome! See [Contributor's Guide](./CONTRIBUTING.md) for more details about contribution process and code structure
|
||||||
|
|
|
@ -58,7 +58,7 @@ class GoBuilder {
|
||||||
$arch = ($this.Architecture -eq "x64") ? "amd64" : $this.Architecture
|
$arch = ($this.Architecture -eq "x64") ? "amd64" : $this.Architecture
|
||||||
$goPlatform = ($this.Platform -Match "win32") ? "windows" : $this.Platform
|
$goPlatform = ($this.Platform -Match "win32") ? "windows" : $this.Platform
|
||||||
$ArchiveType = ($this.Platform -Match "win32") ? "zip" : "tar.gz"
|
$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))"
|
$goVersion = "go$($this.Version.ToString(2))"
|
||||||
} else {
|
} else {
|
||||||
$goVersion = "go$($this.Version.ToString(3))"
|
$goVersion = "go$($this.Version.ToString(3))"
|
||||||
|
|
|
@ -44,7 +44,7 @@ class NixGoBuilder : GoBuilder {
|
||||||
$installationTemplateLocation = Join-Path -Path $this.InstallationTemplatesLocation -ChildPath $this.InstallationTemplateName
|
$installationTemplateLocation = Join-Path -Path $this.InstallationTemplatesLocation -ChildPath $this.InstallationTemplateName
|
||||||
|
|
||||||
$installationTemplateContent = Get-Content -Path $installationTemplateLocation -Raw
|
$installationTemplateContent = Get-Content -Path $installationTemplateLocation -Raw
|
||||||
$installationTemplateContent = $installationTemplateContent -f $this.Version.ToString(3)
|
$installationTemplateContent = $installationTemplateContent -f $this.Version.ToString(3), $this.Architecture
|
||||||
$installationTemplateContent | Out-File -FilePath $installationScriptLocation
|
$installationTemplateContent | Out-File -FilePath $installationScriptLocation
|
||||||
|
|
||||||
Write-Debug "Done; Installation script location: $installationScriptLocation)"
|
Write-Debug "Done; Installation script location: $installationScriptLocation)"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"regex": "go-\\d+\\.\\d+\\.\\d+-(\\w+)-(x\\d+)",
|
"regex": "go-\\d+\\.\\d+\\.\\d+-(\\w+)-((x|arm)\\d+)",
|
||||||
"groups": {
|
"groups": {
|
||||||
"arch": 2,
|
"arch": 2,
|
||||||
"platform": 1
|
"platform": 1
|
||||||
|
|
2
helpers
2
helpers
|
@ -1 +1 @@
|
||||||
Subproject commit 6f1aa3ce73ce0ea4b58995a63b56a8677607762a
|
Subproject commit 6fbb1f0f2098254142702dba05fe75cd8e77c4ae
|
|
@ -1,10 +1,11 @@
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
GO_VERSION={0}
|
GO_VERSION={0}
|
||||||
|
ARCH={1}
|
||||||
|
|
||||||
GO_TOOLCACHE_PATH=$AGENT_TOOLSDIRECTORY/go
|
GO_TOOLCACHE_PATH=$AGENT_TOOLSDIRECTORY/go
|
||||||
GO_TOOLCACHE_VERSION_PATH=$GO_TOOLCACHE_PATH/$GO_VERSION
|
GO_TOOLCACHE_VERSION_PATH=$GO_TOOLCACHE_PATH/$GO_VERSION
|
||||||
GO_TOOLCACHE_VERSION_ARCH_PATH=$GO_TOOLCACHE_VERSION_PATH/x64
|
GO_TOOLCACHE_VERSION_ARCH_PATH=$GO_TOOLCACHE_VERSION_PATH/$ARCH
|
||||||
|
|
||||||
echo "Check if Go hostedtoolcache folder exist..."
|
echo "Check if Go hostedtoolcache folder exist..."
|
||||||
if [ ! -d $GO_TOOLCACHE_PATH ]; then
|
if [ ! -d $GO_TOOLCACHE_PATH ]; then
|
||||||
|
@ -22,4 +23,4 @@ cp -R ./* $GO_TOOLCACHE_VERSION_ARCH_PATH
|
||||||
rm $GO_TOOLCACHE_VERSION_ARCH_PATH/setup.sh
|
rm $GO_TOOLCACHE_VERSION_ARCH_PATH/setup.sh
|
||||||
|
|
||||||
echo "Create complete file"
|
echo "Create complete file"
|
||||||
touch $GO_TOOLCACHE_VERSION_PATH/x64.complete
|
touch $GO_TOOLCACHE_VERSION_PATH/$ARCH.complete
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
Import-Module (Join-Path $PSScriptRoot "../helpers/pester-extensions.psm1")
|
Import-Module (Join-Path $PSScriptRoot "../helpers/pester-extensions.psm1")
|
||||||
Import-Module (Join-Path $PSScriptRoot "../helpers/common-helpers.psm1")
|
Import-Module (Join-Path $PSScriptRoot "../helpers/common-helpers.psm1")
|
||||||
|
|
||||||
|
Describe "Go" {
|
||||||
|
|
||||||
BeforeAll {
|
BeforeAll {
|
||||||
Set-Location -Path "source"
|
Set-Location -Path "source"
|
||||||
$sourceLocation = Get-Location
|
$sourceLocation = Get-Location
|
||||||
|
@ -18,7 +20,6 @@ BeforeAll {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Describe "Go" {
|
|
||||||
It "is available" {
|
It "is available" {
|
||||||
"go version" | Should -ReturnZeroExitCode
|
"go version" | Should -ReturnZeroExitCode
|
||||||
}
|
}
|
||||||
|
@ -44,12 +45,25 @@ Describe "Go" {
|
||||||
}
|
}
|
||||||
|
|
||||||
It "cached version is used without downloading" {
|
It "cached version is used without downloading" {
|
||||||
|
|
||||||
|
if ($env:RUNNER_TYPE -eq "self-hosted") {
|
||||||
|
# Get the installed version of Go
|
||||||
|
$goVersion = Invoke-Expression "go version"
|
||||||
|
# Check if Go is installed
|
||||||
|
$goVersion | Should -Not -BeNullOrEmpty
|
||||||
|
# Check if the installed version of Go is the expected version
|
||||||
|
$installedVersion = $goVersion -split " " | Select-Object -Index 2
|
||||||
|
$installedVersion = $installedVersion -replace "go", "" -replace "v", ""
|
||||||
|
$expectedVersion = $env:VERSION -replace ".0", ""
|
||||||
|
$installedVersion | Should -BeLike "$expectedVersion*"
|
||||||
|
}else {
|
||||||
# Analyze output of previous steps to check if Go was consumed from cache or downloaded
|
# Analyze output of previous steps to check if Go was consumed from cache or downloaded
|
||||||
$useGoLogFile = Get-UseGoLogs
|
$useGoLogFile = Get-UseGoLogs
|
||||||
$useGoLogFile | Should -Exist
|
$useGoLogFile | Should -Exist
|
||||||
$useGoLogContent = Get-Content $useGoLogFile -Raw
|
$useGoLogContent = Get-Content $useGoLogFile -Raw
|
||||||
$useGoLogContent | Should -Match "Found in cache"
|
$useGoLogContent | Should -Match "Found in cache"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
It "Run simple code" {
|
It "Run simple code" {
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue