mirror of
https://code.forgejo.org/actions/go-versions.git
synced 2024-11-06 05:15:50 -05:00
75 lines
2.3 KiB
YAML
75 lines
2.3 KiB
YAML
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()
|