mirror of
https://github.com/actions/node-versions.git
synced 2025-01-11 10:35:20 +00:00
9f83a0c6de
Switch to using tar.gz format for Ubuntu and macOS systems because it is much more common on nix systems which is important in container scenarios
79 lines
2.5 KiB
YAML
79 lines
2.5 KiB
YAML
jobs:
|
|
- job: Test_Node
|
|
pool:
|
|
name: Azure Pipelines
|
|
vmImage: $(VmImage)
|
|
steps:
|
|
- checkout: self
|
|
submodules: true
|
|
|
|
- task: PowerShell@2
|
|
displayName: Fully cleanup the toolcache directory before testing
|
|
inputs:
|
|
TargetType: inline
|
|
script: |
|
|
$NodeToolcachePath = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath "node"
|
|
if (Test-Path $NodeToolcachePath) {
|
|
Remove-Item -Path $NodeToolcachePath -Recurse -Force
|
|
}
|
|
|
|
- task: DownloadPipelineArtifact@2
|
|
inputs:
|
|
source: 'current'
|
|
artifact: 'node-$(Version)-$(Platform)-$(Architecture)'
|
|
path: $(Build.ArtifactStagingDirectory)
|
|
|
|
- task: ExtractFiles@1
|
|
inputs:
|
|
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/node-$(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: NodeTool@0
|
|
displayName: 'Use Node $(Version)'
|
|
inputs:
|
|
versionSpec: $(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 Node' is not available here yet."
|
|
Write-Host "In testing step (Node.Tests.ps1) we analyze build log of 'Use Node' task"
|
|
Write-Host "to determine if Node.js version was consumed from cache and was downloaded"
|
|
- task: PowerShell@2
|
|
displayName: 'Run tests'
|
|
inputs:
|
|
TargetType: inline
|
|
script: |
|
|
Install-Module Pester -Force -Scope CurrentUser
|
|
Import-Module Pester
|
|
$pesterParams = @{
|
|
Path="./Node.Tests.ps1";
|
|
Parameters=@{
|
|
Version="$(Version)";
|
|
}
|
|
}
|
|
Invoke-Pester -Script $pesterParams -OutputFile "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: "Node.js $(Version)-$(Platform)"
|
|
condition: always()
|