Compare commits

..

118 Commits
master ... main

Author SHA1 Message Date
wyang b45ec15d40 修改脚本测试
Go Details
2 years ago
yangwang 719fde58e3 更新 '.github/workflows/build-go-packages.yml' 2 years ago
yangwang 686ecfacea 更新 'README.md' 2 years ago
github-actions[bot] 797449dd8e
Update versions-manifest (#73)
Co-authored-by: Service account <no-reply@microsoft.com>
2 years ago
github-actions[bot] b27d67b686
Update versions-manifest (#72)
Co-authored-by: Service account <no-reply@microsoft.com>
2 years ago
github-actions[bot] 476ac2a1cb
Update versions-manifest (#71)
Co-authored-by: Service account <no-reply@microsoft.com>
2 years ago
github-actions[bot] 4fbaddfe63
Update versions-manifest (#70)
Co-authored-by: Service account <no-reply@microsoft.com>
2 years ago
github-actions[bot] 244f8fdaff
Update versions-manifest (#69)
Co-authored-by: Service account <no-reply@microsoft.com>
2 years ago
Ivan f999e556e9
Update codeql action to use reusable workflow (#68) 2 years ago
github-actions[bot] 2f4bcf5e73
Update versions-manifest (#67)
Co-authored-by: Service account <no-reply@microsoft.com>
2 years ago
Marko Zivic 8666f92fad
Merge pull request #66 from actions/update-codeowners
Update CODEOWNERS
2 years ago
Evgenii Korolevskii 9ea2b986ed
Update CODEOWNERS 2 years ago
Marko Zivic 1a111f3e5c
Merge pull request #64 from MaksimZhukov/introduce-reusable-workflows
Update workflows to use reusable ones
2 years ago
MaksimZhukov 1e50d2d968
Replaced the virtual-environments with the runner-images 2 years ago
github-actions[bot] c9ed2f9d11
Update versions-manifest (#65)
Co-authored-by: Service account <no-reply@microsoft.com>
2 years ago
MaksimZhukov e997e9e934 Update workflows to use reusable ones 2 years ago
github-actions[bot] dca364fcdb
Update versions-manifest (#63) 2 years ago
Marko Zivic 8b01adb6c0
Merge pull request #60 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 10/07/2022
2 years ago
Service account 4c9c326cab Update versions-manifest 2 years ago
github-actions[bot] 7fbc001811
Update versions-manifest (#59)
Co-authored-by: Service account <no-reply@microsoft.com>
2 years ago
Marko Zivic acce0a295a
Merge pull request #52 from actions/aloviedo-patch-1
Create codeql-analysis.yml
2 years ago
github-actions[bot] db588f6323
Update versions-manifest (#58)
Co-authored-by: Service account <no-reply@microsoft.com>
2 years ago
github-actions[bot] c3a220ac09
Update versions-manifest (#57)
Co-authored-by: Service account <no-reply@microsoft.com>
2 years ago
github-actions[bot] 58362e99d6
Update versions-manifest (#56)
Co-authored-by: Service account <no-reply@microsoft.com>
2 years ago
github-actions[bot] 82e37a11c9
Update versions-manifest (#55)
Co-authored-by: Service account <no-reply@microsoft.com>
3 years ago
github-actions[bot] 57ea5543a0
Update versions-manifest (#54) 3 years ago
Marko Zivic 6ac541a152
Merge pull request #53 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 04/15/2022
3 years ago
Service account 710d16ce77 Update versions-manifest 3 years ago
aloviedo a9a1e21f04
Create codeql-analysis.yml 3 years ago
Ethan Chiu b591576203
Merge pull request #51 from actions/ethanchewy/add-slack
Add back slack notification
3 years ago
Ethan Chiu b97793e13e
Add back slack notification 3 years ago
Brian Cristante b844ed6c6d
Merge pull request #50 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 03/15/2022
3 years ago
Service account 8a0545cb70 Update versions-manifest 3 years ago
Brian Cristante 34306dce78
Merge pull request #49 from ethanchewy/patch-1
Comment out slack channel posting
3 years ago
Ethan Chiu 2e49d3e53d
add logging for `message` contents 3 years ago
Ethan Chiu c18c2ac1ac
Comment out slack channel posting
To unblock future go builds immediately
3 years ago
github-actions[bot] b2fe27c0b9
Update versions-manifest (#47)
Co-authored-by: Service account <no-reply@microsoft.com>
3 years ago
github-actions[bot] c27e49f619
Update versions-manifest (#46)
Co-authored-by: Service account <no-reply@microsoft.com>
3 years ago
github-actions[bot] 9d9bd2c789
Update versions-manifest (#45)
Co-authored-by: Service account <no-reply@microsoft.com>
3 years ago
github-actions[bot] 017e64abe3
Update versions-manifest (#43) 3 years ago
github-actions[bot] dfb38cff48
Update versions-manifest (#42)
Co-authored-by: Service account <no-reply@microsoft.com>
3 years ago
Nikolay Frolov 4e55ba98df
Uptake of the latest changes for helpers submodule (#41) 3 years ago
MaksimZhukov 6e78c4b835
Merge pull request #40 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 10/08/2021
3 years ago
Service account 6ab1ee80cb Update versions-manifest 3 years ago
MaksimZhukov 6712407a7f
Merge pull request #39 from nikolai-frolov/helpers-update
Uptake of the latest changes for helpers submodule
3 years ago
Nikolay Frolov 91c89f70d1 Uptake of the latest changes for helpers submodule 3 years ago
MaksimZhukov 13c5817e5c
Merge pull request #37 from Yuriy-Kukushkin/main
Move manifest validation pipeline from Azure DevOps
3 years ago
Yuriy-Kukushkin 38f14f667d
Updated event 3 years ago
Yuriy-Kukushkin 5735a29e98 Updated submodule 3 years ago
MaksimZhukov 25beb00b9f
Merge pull request #38 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 09/10/2021
3 years ago
Service account 260b2b7fbc Update versions-manifest 3 years ago
Yuriy-Kukushkin 187f998b00
Added token 3 years ago
Yuriy-Kukushkin 7dad0a857d
Removed event 3 years ago
Yuriy-Kukushkin bf5a404e5b
Changed test data 3 years ago
Yuriy-Kukushkin 307dc6197a
Added validate-manifest.yml 3 years ago
MaksimZhukov 868a8c05e8
Merge pull request #36 from nikita-bykov/move-get-go-versions-workflow
Move get-go-versions pipeline from Azure DevOps
3 years ago
Nikita Bykov df37e8bf8f Update helpers 3 years ago
Nikita Bykov b895c36713 Update Send Slack notification step to send a custom message 3 years ago
Nikita Bykov d0f2864c56 Update get-go-versions forkflow 3 years ago
Nikita Bykov c8892db080 Add the job to check build for failures in get-go-versions.yml 3 years ago
Nikita Bykov dc914fd71a Move get-go-versions from Azure DevOps 3 years ago
github-actions[bot] 293cbf311d
Update versions-manifest (#35)
Co-authored-by: Service account <no-reply@microsoft.com>
3 years ago
MaksimZhukov 090a19ca59
Merge pull request #34 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 08/06/2021
3 years ago
Service account 00a50d6501 Update versions-manifest 3 years ago
github-actions[bot] 562bf9fcb9
Add 1.16.6 & 1.15.14 (#33) 3 years ago
Alena Sviridenko 8ad5091061
Merge pull request #32 from actions/update-versions-manifest-file 4 years ago
Service account f18d1622a0 Update versions-manifest 4 years ago
Alena Sviridenko e891add10b
Merge pull request #31 from actions/update-versions-manifest-file 4 years ago
Service account 2021212951 Update versions-manifest 4 years ago
Alena Sviridenko 814ab7ec6d
Merge pull request #30 from actions/update-versions-manifest-file 4 years ago
Service account 68009643bb Update versions-manifest 4 years ago
MaksimZhukov 9291170abe
Merge pull request #29 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 03/12/2021
4 years ago
Service account ed61881ea7 Update versions-manifest 4 years ago
Maxim Lobanov 15cbc5916e
Merge pull request #28 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 03/11/2021
4 years ago
Service account 0e28055e56 Update versions-manifest 4 years ago
MaksimZhukov d3edc80ad6
Merge pull request #27 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 02/17/2021
4 years ago
Service account 2689509c1b Update versions-manifest 4 years ago
MaksimZhukov aa3776fc05
Merge pull request #25 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 02/05/2021
4 years ago
Service account f1bfe9ec2a Update versions-manifest 4 years ago
MaksimZhukov 426f431301
Merge pull request #24 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 01/20/2021
4 years ago
Maxim Lobanov cf20b665a4
Merge pull request #23 from actions/add-codeowners
Create CODEOWNERS
4 years ago
Service account 0783ef2ad9 Update versions-manifest 4 years ago
Maxim Lobanov 7b21874c08
Update CODEOWNERS 4 years ago
Maxim Lobanov 98429fb586
Create CODEOWNERS 4 years ago
Maxim Lobanov ce802984c0
Merge pull request #22 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 12/04/2020
4 years ago
Service account abba187441 Update versions-manifest 4 years ago
MaksimZhukov eab7225c23
Merge pull request #21 from MaksimZhukov/v-mazhuk/fix-powerhell-issue-with-paths
Fix PowerShell issue with relative paths
4 years ago
MaksimZhukov ba4d1dead0 Fix PowerShell issue with relative paths 4 years ago
MaksimZhukov bbbdbbf479
Merge pull request #20 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 11/13/2020
4 years ago
Service account 078e4a8546 Update versions-manifest 4 years ago
MaksimZhukov 690124df27
Merge pull request #19 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 11/06/2020
4 years ago
Service account 5d20670749 Update versions-manifest 4 years ago
MaksimZhukov e89bc70e56
Merge pull request #18 from MaksimZhukov/v-mazhuk/add-pull-request-event-trigger
Add ability to trigger packages generation on PRs
4 years ago
MaksimZhukov 889792e4fa Add ability to trigger packages generation on PRs 4 years ago
Maxim Lobanov eba638186e
Merge pull request #17 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 10/15/2020
4 years ago
Service account 808755602f Update versions-manifest 4 years ago
MaksimZhukov 72a65bfa06
Merge pull request #16 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 09/10/2020
4 years ago
MaksimZhukov 37c1fbd5d5
Merge pull request #15 from actions/v-mazhuk/fix-tests
Update git modules and fix tests
4 years ago
Service account f7ed56c974 Update versions-manifest 4 years ago
MaksimZhukov 19f60e7cf5 Fix coments 4 years ago
MaksimZhukov 333033608c Update helpers and fix tests 4 years ago
MaksimZhukov 7cea0f8549
Merge pull request #14 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 09/02/2020
4 years ago
Service account 817f326783 Update versions-manifest 4 years ago
MaksimZhukov 5b3b061dd1
Merge pull request #13 from actions/v-nibyko/move-go-ci
Migrate go-versions CI to GitHub Actions
4 years ago
Nikita Bykov e33ef4429e resolved comments 4 years ago
Nikita Bykov c455148af9
Migrate go-versions CI to GitHub Actions (#12)
* migrated Go to GA

* commented tests

* commented tests

* fixed upload

* fixed trigger_pr

* fixed trigger_pr

* fixed tests

* removed comment

* updated build-go-packages and create-pr

* update

* updated helpers

* fixed build-go-packages

* updated build-go-packages.yml

* updated build-go.ps1

* updated Go.Tests.ps1

* fixed tests

* fixed go tests

* fixed go tests

* fixed tests

* fixed "version is correct" test

* updated "version is correct" test

* fixed Invoke-Expression

* Remove Create-ArtifactDirectories function

* fixed tests

* fixed tests

* fix test

* fixed trigger_pr

* Update to Pester 5

* update

* updated

* fixed test

* fixed tests

* fixed tests

Co-authored-by: Nikita Bykov <v-nibyko@microsoft.com>
4 years ago
Maxim Lobanov 2873528ad9
Add Go 1.15.0
[versions-manifest] Update for release from 08/12/2020
4 years ago
Service account 772e7814a5 Update versions-manifest based on build from 20200812.1 4 years ago
Maxim Lobanov 12335a5b75
Merge pull request #8 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 08/06/2020
4 years ago
Service account a4d6b93b68 Update versions-manifest based on build from 20200806.3 4 years ago
Maxim Lobanov 41e5fabc82
Merge pull request #7 from actions/v-mazhuk/update-module
Update Git submodule
4 years ago
MaksimZhukov af49bddae7 Update Git submodule 4 years ago
Maxim Lobanov dffccd4e4d
Merge pull request #6 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 07/17/2020
5 years ago
Service account 02bb9f8abe Update versions-manifest based on build from 20200717.1 5 years ago
Maxim Lobanov 83c2976bd0 Update README.md 5 years ago
Maxim Lobanov 2d148b3dfc
Upload 1.13.13, 1.14.5
[versions-manifest] Update for release from 07/15/2020
5 years ago
Service account 773e210944 Update versions-manifest based on build from 20200715.2 5 years ago
Maxim Lobanov 149df221c7
Merge pull request #4 from actions/master
Integrate master changes to main branch
5 years ago

@ -0,0 +1 @@
* @actions/setup-actions-team

@ -0,0 +1,18 @@
name: Generate Go package
run-name: Generate Go ${{ inputs.VERSION || '1.19.0' }}
on:
push:
branches:
- 'releases/1.17.4.1'
- 'releases/**'
- main
jobs:
go:
name: Go
uses: actions/versions-package-tools/.github/workflows/build-tool-packages.yml@main
with:
tool-name: "go"
tool-version: ${{ inputs.VERSION || '1.19.0' }}
publish-release: ${{ inputs.PUBLISH_RELEASES || false }}
secrets: inherit

@ -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']"

@ -0,0 +1,10 @@
name: Create Pull Request
on:
workflow_dispatch:
jobs:
create-pr:
uses: actions/versions-package-tools/.github/workflows/create-pr-to-update-manifest.yml@main
with:
tool-name: "go"
secrets: inherit

@ -0,0 +1,13 @@
name: Get Go versions
on:
schedule:
- cron: '0 3,15 * * *'
workflow_dispatch:
jobs:
get-new-go-versions:
uses: actions/versions-package-tools/.github/workflows/get-new-tool-versions.yml@main
with:
tool-name: "Go"
image-url: "https://go.dev/images/gopher-footer.jpg"
secrets: inherit

@ -0,0 +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'
jobs:
manifest:
uses: actions/versions-package-tools/.github/workflows/validate-manifest.yml@main
with:
tool-name: "Go"
image-url: "https://go.dev/images/gopher-footer.jpg"
secrets: inherit

@ -29,22 +29,20 @@ Here are a few things you can do that will increase the likelihood of your pull
### Directory structure ### Directory structure
``` ```
├── azure-pipelines/ ├── .github/
| └──templates/ | └──workflows/
├── builders/ ├── builders/
├── helpers/ ├── helpers/
├── installers/ ├── installers/
└── tests/ └── tests/
└──sources/ └──sources/
``` ```
- `azure-pipelines*` - contains global YAML definitions for build pipelines. Reusable templates for specific jobs are located in `templates` subfolder. - `.github/workflows` - contains repository workflow files.
- `builders` - contains Go builder classes and functions. - `builders` - contains Go builder classes and functions.
- `helpers` - contains global helper functions and functions. - `helpers` - contains global helper classes and functions.
- `installers` - contains installation script templates. - `installers` - contains installation script templates.
- `tests` - contains test scripts. Required tests sources are located in `sources` subfolder. - `tests` - contains test scripts. Required tests sources are located in `sources` subfolder.
\* _We use Azure Pipelines because there are a few features that Actions is still missing, we'll move to Actions as soon as possible_.
## Resources ## Resources
- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)

@ -1,15 +1,17 @@
# 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 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.
## 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
## mirror from github

@ -1,65 +0,0 @@
name: $(date:yyyyMMdd)$(rev:.r)-Go-$(VERSION)
trigger: none
pr:
autoCancel: true
branches:
include:
- main
paths:
exclude:
- versions-manifest.json
stages:
- stage: Build_Go_Darwin
dependsOn: []
variables:
Platform: darwin
Architecture: x64
jobs:
- template: /azure-pipelines/templates/build-job.yml
- stage: Test_Go_Darwin
condition: succeeded()
dependsOn: Build_Go_Darwin
variables:
VmImage: macOS-latest
Platform: darwin
Architecture: x64
jobs:
- template: /azure-pipelines/templates/test-job.yml
- stage: Build_Go_Linux
dependsOn: []
variables:
Platform: linux
Architecture: x64
jobs:
- template: /azure-pipelines/templates/build-job.yml
- stage: Test_Go_Linux
condition: succeeded()
dependsOn: Build_Go_Linux
variables:
VmImage: ubuntu-latest
Platform: linux
Architecture: x64
jobs:
- template: /azure-pipelines/templates/test-job.yml
- stage: Build_Go_Windows
dependsOn: []
variables:
Platform: win32
Architecture: x64
jobs:
- template: /azure-pipelines/templates/build-job.yml
- stage: Test_Go_Windows
condition: succeeded()
dependsOn: Build_Go_Windows
variables:
VmImage: windows-latest
Platform: win32
Architecture: x64
jobs:
- template: /azure-pipelines/templates/test-job.yml

@ -1,21 +0,0 @@
jobs:
- job: Build_Go
timeoutInMinutes: 90
pool:
name: Azure Pipelines
vmImage: ubuntu-latest
steps:
- checkout: self
- task: PowerShell@2
displayName: 'Build Go $(Version)'
inputs:
targetType: filePath
filePath: './builders/build-go.ps1'
arguments: '-Version $(Version) -Platform $(Platform) -Architecture $(Architecture)'
- task: PublishPipelineArtifact@1
displayName: 'Publish Artifact: Go $(Version)'
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)'
artifactName: 'go-$(Version)-$(Platform)-$(Architecture)'

@ -1,75 +0,0 @@
jobs:
- job: Test_Go
pool:
name: Azure Pipelines
vmImage: $(VmImage)
steps:
- checkout: self
submodules: true
- task: PowerShell@2
displayName: Fully cleanup the toolcache directory before testing
inputs:
targetType: filePath
filePath: helpers/clean-toolcache.ps1
arguments: -ToolName "go"
- task: DownloadPipelineArtifact@2
inputs:
source: 'current'
artifact: 'go-$(Version)-$(Platform)-$(Architecture)'
path: $(Build.ArtifactStagingDirectory)
- task: ExtractFiles@1
inputs:
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/go-$(Version)-$(Platform)-$(Architecture).*'
destinationFolder: $(Build.BinariesDirectory)
cleanDestinationFolder: false
- task: PowerShell@2
displayName: 'Apply build artifact to the local machines'
inputs:
targetType: inline
script: |
if ("$(Platform)" -match 'win32') { powershell ./setup.ps1 } else { sh ./setup.sh }
workingDirectory: '$(Build.BinariesDirectory)'
- task: GoTool@0
inputs:
version: '$(Version)'
- task: PowerShell@2
displayName: 'Wait for the logs'
inputs:
targetType: inline
script: |
Write-Host "Fake step that do nothing"
Write-Host "We need it because log of previous step 'Use Go' is not available here yet."
Write-Host "In testing step (Go.Tests.ps1) we analyze build log of 'GoTool' task"
Write-Host "to determine if Go version was consumed from cache and was downloaded"
- task: PowerShell@2
displayName: 'Run tests'
inputs:
TargetType: inline
script: |
Install-Module Pester -Force -Scope CurrentUser -RequiredVersion 4.10.1
Import-Module Pester
$pesterParams = @{
Path="./Go.Tests.ps1";
Parameters=@{
Version="$(Version)";
}
}
Invoke-Pester -Script $pesterParams -OutputFile "$(Build.SourcesDirectory)/tests/test_results.xml" -OutputFormat NUnitXml
workingDirectory: '$(Build.SourcesDirectory)/tests'
- task: PublishTestResults@2
displayName: 'Publish test results'
inputs:
testResultsFiles: '*.xml'
testResultsFormat: NUnit
searchFolder: 'tests'
failTaskOnFailedTests: true
testRunTitle: "Go $(Version)-$(Platform)"
condition: always()

@ -1,5 +1,5 @@
using module "./builders/win-go-builder.psm1" using module "./win-go-builder.psm1"
using module "./builders/nix-go-builder.psm1" using module "./nix-go-builder.psm1"
<# <#
.SYNOPSIS .SYNOPSIS

@ -16,10 +16,13 @@ class GoBuilder {
The architecture with which Go should be built. The architecture with which Go should be built.
.PARAMETER TempFolderLocation .PARAMETER TempFolderLocation
The location of temporary files that will be used during Go package generation. Using system BUILD_STAGINGDIRECTORY variable value. The location of temporary files that will be used during Go package generation.
.PARAMETER ArtifactLocation .PARAMETER WorkFolderLocation
The location of generated Go artifact. Using system environment BUILD_BINARIESDIRECTORY variable value. The location of installation files.
.PARAMETER ArtifactFolderLocation
The location of generated Go artifact.
.PARAMETER InstallationTemplatesLocation .PARAMETER InstallationTemplatesLocation
The location of installation script template. Using "installers" folder from current repository. The location of installation script template. Using "installers" folder from current repository.
@ -40,9 +43,8 @@ class GoBuilder {
$this.Architecture = $architecture $this.Architecture = $architecture
$this.TempFolderLocation = [IO.Path]::GetTempPath() $this.TempFolderLocation = [IO.Path]::GetTempPath()
$this.WorkFolderLocation = $env:BUILD_BINARIESDIRECTORY $this.WorkFolderLocation = Join-Path $env:RUNNER_TEMP "binaries"
$this.ArtifactFolderLocation = $env:BUILD_STAGINGDIRECTORY $this.ArtifactFolderLocation = Join-Path $env:RUNNER_TEMP "artifact"
$this.InstallationTemplatesLocation = Join-Path -Path $PSScriptRoot -ChildPath "../installers" $this.InstallationTemplatesLocation = Join-Path -Path $PSScriptRoot -ChildPath "../installers"
} }
@ -95,6 +97,10 @@ class GoBuilder {
Generates Go artifact from downloaded binaries. Generates Go artifact from downloaded binaries.
#> #>
Write-Host "Create WorkFolderLocation and ArtifactFolderLocation folders"
New-Item -Path $this.WorkFolderLocation -ItemType "directory"
New-Item -Path $this.ArtifactFolderLocation -ItemType "directory"
Write-Host "Download Go $($this.Version) [$($this.Architecture)] executable..." Write-Host "Download Go $($this.Version) [$($this.Architecture)] executable..."
$binariesArchivePath = $this.Download() $binariesArchivePath = $this.Download()

@ -1,4 +1,4 @@
using module "./builders/go-builder.psm1" using module "./go-builder.psm1"
class NixGoBuilder : GoBuilder { class NixGoBuilder : GoBuilder {
<# <#

@ -1,4 +1,4 @@
using module "./builders/go-builder.psm1" using module "./go-builder.psm1"
class WinGoBuilder : GoBuilder { class WinGoBuilder : GoBuilder {
<# <#

@ -1 +1 @@
Subproject commit 1069e7a4ece355bd321909454fc1f9f7244eb03b Subproject commit 6f1aa3ce73ce0ea4b58995a63b56a8677607762a

@ -1,19 +1,21 @@
param (
[version] [Parameter (Mandatory = $true)] [ValidateNotNullOrEmpty()]
$Version
)
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")
function Get-UseGoLogs { BeforeAll {
$logsFolderPath = Join-Path -Path $env:AGENT_HOMEDIRECTORY -ChildPath "_diag" | Join-Path -ChildPath "pages" Set-Location -Path "source"
$sourceLocation = Get-Location
function Get-UseGoLogs {
# GitHub Windows images don't have `HOME` variable
$homeDir = $env:HOME ?? $env:HOMEDRIVE
$logsFolderPath = Join-Path -Path $homeDir -ChildPath "runners/*/_diag/pages" -Resolve
$useGoLogFile = Get-ChildItem -Path $logsFolderPath | Where-Object { $useGoLogFile = Get-ChildItem -Path $logsFolderPath | Where-Object {
$logContent = Get-Content $_.Fullname -Raw $logContent = Get-Content $_.Fullname -Raw
return $logContent -match "GoTool" return $logContent -match "setup-go@v"
} | Select-Object -First 1 } | Select-Object -First 1
return $useGoLogFile.Fullname return $useGoLogFile.Fullname
}
} }
Describe "Go" { Describe "Go" {
@ -22,6 +24,7 @@ Describe "Go" {
} }
It "version is correct" { It "version is correct" {
[version]$Version = $env:VERSION
$versionOutput = Invoke-Expression -Command "go version" $versionOutput = Invoke-Expression -Command "go version"
$finalVersion = $Version.ToString(3) $finalVersion = $Version.ToString(3)
If ($Version.Build -eq "0"){ If ($Version.Build -eq "0"){
@ -33,7 +36,10 @@ Describe "Go" {
It "is used from tool-cache" { It "is used from tool-cache" {
$goPath = (Get-Command "go").Path $goPath = (Get-Command "go").Path
$goPath | Should -Not -BeNullOrEmpty $goPath | Should -Not -BeNullOrEmpty
$expectedPath = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath "go"
# GitHub Windows images don't have `AGENT_TOOLSDIRECTORY` variable
$toolcacheDir = $env:AGENT_TOOLSDIRECTORY ?? $env:RUNNER_TOOL_CACHE
$expectedPath = Join-Path -Path $toolcacheDir -ChildPath "go"
$goPath.startsWith($expectedPath) | Should -BeTrue -Because "'$goPath' is not started with '$expectedPath'" $goPath.startsWith($expectedPath) | Should -BeTrue -Because "'$goPath' is not started with '$expectedPath'"
} }
@ -42,18 +48,18 @@ Describe "Go" {
$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 tool in cache" $useGoLogContent | Should -Match "Found in cache"
} }
Set-Location -Path "source"
$sourceLocation = Get-Location
It "Run simple code" { It "Run simple code" {
$simpleLocation = Join-Path -Path $sourceLocation -ChildPath "simple" $simpleLocation = Join-Path -Path $sourceLocation -ChildPath "simple"
Set-Location -Path $simpleLocation Set-Location -Path $simpleLocation
"go run simple.go" | Should -ReturnZeroExitCode "go run simple.go" | Should -ReturnZeroExitCode
"go build simple.go" | Should -ReturnZeroExitCode "go build simple.go" | Should -ReturnZeroExitCode
"./simple" | Should -ReturnZeroExitCode $compiledPackageName = "simple"
if ($IsWindows) { $compiledPackageName += ".exe" }
(Resolve-Path "./$compiledPackageName").Path | Should -ReturnZeroExitCode
} }
It "Run maps code" { It "Run maps code" {
@ -61,7 +67,9 @@ Describe "Go" {
Set-Location -Path $mapsLocation Set-Location -Path $mapsLocation
"go run maps.go" | Should -ReturnZeroExitCode "go run maps.go" | Should -ReturnZeroExitCode
"go build maps.go" | Should -ReturnZeroExitCode "go build maps.go" | Should -ReturnZeroExitCode
"./maps" | Should -ReturnZeroExitCode $compiledPackageName = "maps"
if ($IsWindows) { $compiledPackageName += ".exe" }
(Resolve-Path "./$compiledPackageName").Path | Should -ReturnZeroExitCode
} }
It "Run methods code" { It "Run methods code" {
@ -69,6 +77,8 @@ Describe "Go" {
Set-Location -Path $methodsLocation Set-Location -Path $methodsLocation
"go run methods.go" | Should -ReturnZeroExitCode "go run methods.go" | Should -ReturnZeroExitCode
"go build methods.go" | Should -ReturnZeroExitCode "go build methods.go" | Should -ReturnZeroExitCode
"./methods" | Should -ReturnZeroExitCode $compiledPackageName = "methods"
if ($IsWindows) { $compiledPackageName += ".exe" }
(Resolve-Path "./$compiledPackageName").Path | Should -ReturnZeroExitCode
} }
} }

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save