Compare commits
No commits in common. "main" and "1.12.0-20200616.4" have entirely different histories.
main
...
1.12.0-202
|
@ -1 +0,0 @@
|
|||
* @actions/setup-actions-team
|
|
@ -1,31 +0,0 @@
|
|||
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.19.0'
|
||||
PUBLISH_RELEASES:
|
||||
description: 'Whether to publish releases'
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- 'versions-manifest.json'
|
||||
- 'LICENSE'
|
||||
- '**.md'
|
||||
branches:
|
||||
- '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
|
|
@ -1,16 +0,0 @@
|
|||
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"]'
|
|
@ -1,10 +0,0 @@
|
|||
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
|
|
@ -1,13 +0,0 @@
|
|||
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
|
|
@ -1,21 +0,0 @@
|
|||
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
|
|
@ -1,4 +1,4 @@
|
|||
[submodule "helpers"]
|
||||
path = helpers
|
||||
url = https://github.com/actions/versions-package-tools
|
||||
branch = main
|
||||
branch = master
|
||||
|
|
|
@ -29,20 +29,22 @@ Here are a few things you can do that will increase the likelihood of your pull
|
|||
### Directory structure
|
||||
```
|
||||
|
||||
├── .github/
|
||||
| └──workflows/
|
||||
├── azure-pipelines/
|
||||
| └──templates/
|
||||
├── builders/
|
||||
├── helpers/
|
||||
├── installers/
|
||||
└── tests/
|
||||
└──sources/
|
||||
```
|
||||
- `.github/workflows` - contains repository workflow files.
|
||||
- `azure-pipelines*` - contains global YAML definitions for build pipelines. Reusable templates for specific jobs are located in `templates` subfolder.
|
||||
- `builders` - contains Go builder classes and functions.
|
||||
- `helpers` - contains global helper classes and functions.
|
||||
- `helpers` - contains global helper functions and functions.
|
||||
- `installers` - contains installation script templates.
|
||||
- `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
|
||||
|
||||
- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
|
||||
|
|
11
README.md
11
README.md
|
@ -1,18 +1,15 @@
|
|||
# Go for Actions
|
||||
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.
|
||||
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.
|
||||
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 `runner-images` and `setup-go` action.
|
||||
> Caution: this is prepared for and only permitted for use by actions `virtual-environments` 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 [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.
|
||||
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.
|
||||
|
||||
## 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/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.
|
||||
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.
|
||||
|
||||
## Contribution
|
||||
Contributions are welcome! See [Contributor's Guide](./CONTRIBUTING.md) for more details about contribution process and code structure
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
name: $(date:yyyyMMdd)$(rev:.r)-Go-$(VERSION)
|
||||
trigger: none
|
||||
pr:
|
||||
autoCancel: true
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
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
|
|
@ -0,0 +1,21 @@
|
|||
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)'
|
|
@ -0,0 +1,75 @@
|
|||
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 "./win-go-builder.psm1"
|
||||
using module "./nix-go-builder.psm1"
|
||||
using module "./builders/win-go-builder.psm1"
|
||||
using module "./builders/nix-go-builder.psm1"
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
|
|
|
@ -16,13 +16,10 @@ class GoBuilder {
|
|||
The architecture with which Go should be built.
|
||||
|
||||
.PARAMETER TempFolderLocation
|
||||
The location of temporary files that will be used during Go package generation.
|
||||
The location of temporary files that will be used during Go package generation. Using system BUILD_STAGINGDIRECTORY variable value.
|
||||
|
||||
.PARAMETER WorkFolderLocation
|
||||
The location of installation files.
|
||||
|
||||
.PARAMETER ArtifactFolderLocation
|
||||
The location of generated Go artifact.
|
||||
.PARAMETER ArtifactLocation
|
||||
The location of generated Go artifact. Using system environment BUILD_BINARIESDIRECTORY variable value.
|
||||
|
||||
.PARAMETER InstallationTemplatesLocation
|
||||
The location of installation script template. Using "installers" folder from current repository.
|
||||
|
@ -43,8 +40,9 @@ class GoBuilder {
|
|||
$this.Architecture = $architecture
|
||||
|
||||
$this.TempFolderLocation = [IO.Path]::GetTempPath()
|
||||
$this.WorkFolderLocation = Join-Path $env:RUNNER_TEMP "binaries"
|
||||
$this.ArtifactFolderLocation = Join-Path $env:RUNNER_TEMP "artifact"
|
||||
$this.WorkFolderLocation = $env:BUILD_BINARIESDIRECTORY
|
||||
$this.ArtifactFolderLocation = $env:BUILD_STAGINGDIRECTORY
|
||||
|
||||
|
||||
$this.InstallationTemplatesLocation = Join-Path -Path $PSScriptRoot -ChildPath "../installers"
|
||||
}
|
||||
|
@ -58,7 +56,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" -and $this.Version -lt "1.21.0") {
|
||||
If ($this.Version.Build -eq "0") {
|
||||
$goVersion = "go$($this.Version.ToString(2))"
|
||||
} else {
|
||||
$goVersion = "go$($this.Version.ToString(3))"
|
||||
|
@ -97,10 +95,6 @@ class GoBuilder {
|
|||
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..."
|
||||
$binariesArchivePath = $this.Download()
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using module "./go-builder.psm1"
|
||||
using module "./builders/go-builder.psm1"
|
||||
|
||||
class NixGoBuilder : GoBuilder {
|
||||
<#
|
||||
|
@ -44,7 +44,7 @@ class NixGoBuilder : GoBuilder {
|
|||
$installationTemplateLocation = Join-Path -Path $this.InstallationTemplatesLocation -ChildPath $this.InstallationTemplateName
|
||||
|
||||
$installationTemplateContent = Get-Content -Path $installationTemplateLocation -Raw
|
||||
$installationTemplateContent = $installationTemplateContent -f $this.Version.ToString(3), $this.Architecture
|
||||
$installationTemplateContent = $installationTemplateContent -f $this.Version.ToString(3)
|
||||
$installationTemplateContent | Out-File -FilePath $installationScriptLocation
|
||||
|
||||
Write-Debug "Done; Installation script location: $installationScriptLocation)"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using module "./go-builder.psm1"
|
||||
using module "./builders/go-builder.psm1"
|
||||
|
||||
class WinGoBuilder : GoBuilder {
|
||||
<#
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"regex": "go-\\d+\\.\\d+\\.\\d+-(\\w+)-((x|arm)\\d+)",
|
||||
"regex": "go-\\d+\\.\\d+\\.\\d+-(\\w+)-(x\\d+)",
|
||||
"groups": {
|
||||
"arch": 2,
|
||||
"platform": 1
|
||||
|
|
2
helpers
2
helpers
|
@ -1 +1 @@
|
|||
Subproject commit 6fbb1f0f2098254142702dba05fe75cd8e77c4ae
|
||||
Subproject commit 350e2888aa8ba786f16e7e37479c41551326d25c
|
|
@ -1,11 +1,10 @@
|
|||
set -e
|
||||
|
||||
GO_VERSION={0}
|
||||
ARCH={1}
|
||||
|
||||
GO_TOOLCACHE_PATH=$AGENT_TOOLSDIRECTORY/go
|
||||
GO_TOOLCACHE_VERSION_PATH=$GO_TOOLCACHE_PATH/$GO_VERSION
|
||||
GO_TOOLCACHE_VERSION_ARCH_PATH=$GO_TOOLCACHE_VERSION_PATH/$ARCH
|
||||
GO_TOOLCACHE_VERSION_ARCH_PATH=$GO_TOOLCACHE_VERSION_PATH/x64
|
||||
|
||||
echo "Check if Go hostedtoolcache folder exist..."
|
||||
if [ ! -d $GO_TOOLCACHE_PATH ]; then
|
||||
|
@ -23,4 +22,4 @@ cp -R ./* $GO_TOOLCACHE_VERSION_ARCH_PATH
|
|||
rm $GO_TOOLCACHE_VERSION_ARCH_PATH/setup.sh
|
||||
|
||||
echo "Create complete file"
|
||||
touch $GO_TOOLCACHE_VERSION_PATH/$ARCH.complete
|
||||
touch $GO_TOOLCACHE_VERSION_PATH/x64.complete
|
||||
|
|
|
@ -1,31 +1,27 @@
|
|||
param (
|
||||
[version] [Parameter (Mandatory = $true)] [ValidateNotNullOrEmpty()]
|
||||
$Version
|
||||
)
|
||||
|
||||
Import-Module (Join-Path $PSScriptRoot "../helpers/pester-extensions.psm1")
|
||||
Import-Module (Join-Path $PSScriptRoot "../helpers/common-helpers.psm1")
|
||||
|
||||
Describe "Go" {
|
||||
function Get-UseGoLogs {
|
||||
$logsFolderPath = Join-Path -Path $env:AGENT_HOMEDIRECTORY -ChildPath "_diag" | Join-Path -ChildPath "pages"
|
||||
|
||||
BeforeAll {
|
||||
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 {
|
||||
$logContent = Get-Content $_.Fullname -Raw
|
||||
return $logContent -match "setup-go@v"
|
||||
} | Select-Object -First 1
|
||||
return $useGoLogFile.Fullname
|
||||
}
|
||||
$useGoLogFile = Get-ChildItem -Path $logsFolderPath | Where-Object {
|
||||
$logContent = Get-Content $_.Fullname -Raw
|
||||
return $logContent -match "GoTool"
|
||||
} | Select-Object -First 1
|
||||
return $useGoLogFile.Fullname
|
||||
}
|
||||
|
||||
Describe "Go" {
|
||||
It "is available" {
|
||||
"go version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "version is correct" {
|
||||
[version]$Version = $env:VERSION
|
||||
$versionOutput = Invoke-Expression -Command "go version"
|
||||
$finalVersion = $Version.ToString(3)
|
||||
If ($Version.Build -eq "0"){
|
||||
|
@ -37,43 +33,27 @@ Describe "Go" {
|
|||
It "is used from tool-cache" {
|
||||
$goPath = (Get-Command "go").Path
|
||||
$goPath | Should -Not -BeNullOrEmpty
|
||||
|
||||
# GitHub Windows images don't have `AGENT_TOOLSDIRECTORY` variable
|
||||
$toolcacheDir = $env:AGENT_TOOLSDIRECTORY ?? $env:RUNNER_TOOL_CACHE
|
||||
$expectedPath = Join-Path -Path $toolcacheDir -ChildPath "go"
|
||||
$expectedPath = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath "go"
|
||||
$goPath.startsWith($expectedPath) | Should -BeTrue -Because "'$goPath' is not started with '$expectedPath'"
|
||||
}
|
||||
|
||||
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
|
||||
$useGoLogFile = Get-UseGoLogs
|
||||
$useGoLogFile | Should -Exist
|
||||
$useGoLogContent = Get-Content $useGoLogFile -Raw
|
||||
$useGoLogContent | Should -Match "Found in cache"
|
||||
}
|
||||
}
|
||||
$useGoLogContent | Should -Match "Found tool in cache"
|
||||
}
|
||||
|
||||
Set-Location -Path "source"
|
||||
$sourceLocation = Get-Location
|
||||
|
||||
It "Run simple code" {
|
||||
$simpleLocation = Join-Path -Path $sourceLocation -ChildPath "simple"
|
||||
Set-Location -Path $simpleLocation
|
||||
"go run simple.go" | Should -ReturnZeroExitCode
|
||||
"go build simple.go" | Should -ReturnZeroExitCode
|
||||
$compiledPackageName = "simple"
|
||||
if ($IsWindows) { $compiledPackageName += ".exe" }
|
||||
(Resolve-Path "./$compiledPackageName").Path | Should -ReturnZeroExitCode
|
||||
"./simple" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "Run maps code" {
|
||||
|
@ -81,9 +61,7 @@ Describe "Go" {
|
|||
Set-Location -Path $mapsLocation
|
||||
"go run maps.go" | Should -ReturnZeroExitCode
|
||||
"go build maps.go" | Should -ReturnZeroExitCode
|
||||
$compiledPackageName = "maps"
|
||||
if ($IsWindows) { $compiledPackageName += ".exe" }
|
||||
(Resolve-Path "./$compiledPackageName").Path | Should -ReturnZeroExitCode
|
||||
"./maps" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "Run methods code" {
|
||||
|
@ -91,8 +69,6 @@ Describe "Go" {
|
|||
Set-Location -Path $methodsLocation
|
||||
"go run methods.go" | Should -ReturnZeroExitCode
|
||||
"go build methods.go" | Should -ReturnZeroExitCode
|
||||
$compiledPackageName = "methods"
|
||||
if ($IsWindows) { $compiledPackageName += ".exe" }
|
||||
(Resolve-Path "./$compiledPackageName").Path | Should -ReturnZeroExitCode
|
||||
"./methods" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue