Compare commits

..

7 Commits

Author SHA1 Message Date
aparnajyothi-y
de2c2ba36e Update Go.Tests.ps1 2024-06-28 16:44:00 +05:30
aparnajyothi-y
e60f915e0b Update Go.Tests.ps1 2024-06-28 16:23:31 +05:30
aparnajyothi-y
ba76e8ae2e Update Go.Tests.ps1 2024-06-28 16:19:28 +05:30
aparnajyothi-y
fb117ec42a Update Go.Tests.ps1 2024-06-28 16:06:21 +05:30
aparnajyothi-y
0f6d2a4392 Update Go.Tests.ps1 2024-06-28 16:01:13 +05:30
aparnajyothi-y
5fadb88d54 Update build-go-packages.yml 2024-06-28 15:51:04 +05:30
aparnajyothi-y
611b36edb5 cache test update for selfhosted runner 2024-06-28 15:50:05 +05:30
6 changed files with 42 additions and 1920 deletions

View File

@@ -23,7 +23,7 @@ on:
jobs:
go:
name: Go
uses: actions/versions-package-tools/.github/workflows/build-tool-packages.yml@main
uses: actions/versions-package-tools/.github/workflows/build-tool-packages.yml@test-arm64
with:
tool-name: "go"
tool-version: ${{ inputs.VERSION || '1.19.0' }}

View File

@@ -13,4 +13,4 @@ jobs:
name: CodeQL analysis
uses: actions/reusable-workflows/.github/workflows/codeql-analysis.yml@main
with:
languages: '["go"]'
languages: "['go']"

View File

@@ -1,7 +1,7 @@
name: Get Go versions
on:
schedule:
- cron: '0 0,12 * * *'
- cron: '0 3,15 * * *'
workflow_dispatch:
jobs:
@@ -10,4 +10,4 @@ jobs:
with:
tool-name: "Go"
image-url: "https://go.dev/images/gopher-footer.jpg"
secrets: inherit
secrets: inherit

View File

@@ -66,7 +66,7 @@ class GoBuilder {
$filename = "$goVersion.$goPlatform-$arch.$ArchiveType"
return "https://go.dev/dl/$filename"
return "https://storage.googleapis.com/golang/$filename"
}
[string] Download() {

View File

@@ -1,65 +1,42 @@
Import-Module (Join-Path $PSScriptRoot "../helpers/pester-extensions.psm1")
Import-Module (Join-Path $PSScriptRoot "../helpers/common-helpers.psm1")
Describe "Go" {
BeforeAll {
BeforeAll {
Set-Location -Path "source"
$sourceLocation = Get-Location
function Get-UseGoLogs {
$runnerProc = Get-Process -Name "Runner.Listener" -ErrorAction SilentlyContinue | Select-Object -First 1
#Write-Host "`$runnerProc: $($runnerProc | Out-String)"
if (-not $runnerProc -or -not $runnerProc.Path) {
Write-Error "Runner.Listener process not found."
return
}
# Go up two directories to get runner root
$runnerRoot = Split-Path (Split-Path $runnerProc.Path -Parent) -Parent
#Write-Host "`$runnerRoot: $runnerRoot"
# Recursively find all _diag/pages folders under the runner root directory
$possiblePaths = Get-ChildItem -Path $runnerRoot -Directory -Recurse -Depth 4 -ErrorAction SilentlyContinue |
Where-Object { $_.FullName -like "*_diag\pages" -or $_.FullName -like "*_diag/pages" }
Write-Host "LogsPaths:"
$possiblePaths | ForEach-Object { Write-Host $_.FullName }
$logsFolderPath = $possiblePaths | Where-Object { Test-Path $_ } | Select-Object -First 1
if ($logsFolderPath) {
$resolvedPath = Resolve-Path -Path $logsFolderPath -ErrorAction SilentlyContinue
}
# GitHub Windows images don't have `HOME` variable
$homeDir = $env:HOME ?? $env:HOMEDRIVE
$logsFolderPath = Join-Path -Path $homeDir -ChildPath "runners/*/_diag/pages" -Resolve
if ($resolvedPath -and -not [string]::IsNullOrEmpty($resolvedPath.Path) -and (Test-Path $resolvedPath.Path)) {
$useGoLogFile = Get-ChildItem -Path $resolvedPath | Where-Object {
$logContent = Get-Content $_.Fullname -Raw
return $logContent -match "setup-go@v"
} | Select-Object -First 1
# Return the file name if a match is found
if ($useGoLogFile) {
return $useGoLogFile.FullName
} else {
Write-Error "No matching log file found in the specified path: $($resolvedPath.Path)"
}
} else {
Write-Error "The provided logs folder path is null, empty, or does not exist: $logsFolderPath"
}
$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
}
}
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"){
$finalVersion = $Version.ToString(2)
}
$versionOutput | Should -Match $finalVersion
It "version is correct" {
[version]$Version = $env:VERSION
$versionOutput = Invoke-Expression -Command "go version"
# Extract only the version number from the go version command output.
$installedVersion = ($versionOutput -split " ")[2] -replace "go", "" -replace "v", ""
$finalVersion = $Version.ToString(3)
If ($Version.Build -eq "0"){
$finalVersion = $Version.ToString(2)
}
$installedVersion | Should -Match $finalVersion
}
It "is used from tool-cache" {
$goPath = (Get-Command "go").Path
@@ -71,26 +48,20 @@ Describe "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"
}
}
if ($env:RUNNER_TYPE -eq "GitHub") {
# Analyze output of previous steps to check if Node.js was consumed from cache or downloaded
$useNodeLogFile = Get-UseNodeLogs
$useNodeLogFile | Should -Exist
$useNodeLogContent = Get-Content $useNodeLogFile -Raw
$useNodeLogContent | Should -Match "Found in cache"
} else {
# Get the installed version of Node.js
$nodeVersion = Invoke-Expression "node --version"
# Check if Node.js is installed
$nodeVersion | Should -Not -BeNullOrEmpty
# Check if the installed version of Node.js is the expected version
$nodeVersion | Should -Match $env:VERSION
}
It "Run simple code" {

File diff suppressed because it is too large Load Diff