Skip to content

Commit 52a0096

Browse files
Merge pull request #29 from ChrisLGardner/pipeline-update
Update pipeline to test both v9 and v10 of tasks
2 parents e2141f2 + bdf4b1b commit 52a0096

File tree

6 files changed

+219
-3
lines changed

6 files changed

+219
-3
lines changed

Extension/PesterTask/PesterV10/task.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@
150150
"instanceNameFormat": "Pester Test Runner",
151151
"execution": {
152152
"Node": {
153-
"target": "pesterV10.js",
153+
"target": "pesterv10.js",
154154
"argumentFormat": ""
155155
}
156156
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
Describe -Tags "Example" "Add-Numbers" {
2+
3+
BeforeAll {
4+
. "$PSScriptRoot\Add-Numbers.ps1"
5+
}
6+
7+
It "adds positive numbers" {
8+
Add-Numbers 2 3 | Should -Be 5
9+
}
10+
11+
It "adds negative numbers" {
12+
Add-Numbers (-2) (-2) | Should -Be -4
13+
}
14+
15+
It "adds one negative number to positive number" {
16+
Add-Numbers (-2) 2 | Should -Be 0
17+
}
18+
19+
It "concatenates strings if given strings" {
20+
Add-Numbers two three | Should -Be "twothree"
21+
}
22+
23+
It "should not be 0" {
24+
Add-Numbers 2 3 | Should -Not -Be 0
25+
}
26+
}
27+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
function Add-Numbers($a, $b) {
2+
return $a + $b
3+
}

azure-pipelines.yml

+130-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
name: $(major).$(minor).$(rev:r)
2+
23
stages:
34
- stage: build
45
displayName: Build VSIX
@@ -40,8 +41,135 @@ stages:
4041
outputPath: '$(Build.ArtifactStagingDirectory)/Pester.vsix'
4142
extensionVersion: "$(Build.BuildNumber)"
4243

43-
- task: PublishBuildArtifacts@1
44+
- task: PublishPipelineArtifact@1
4445
displayName: 'Publish Artifact: vsix'
4546
inputs:
46-
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
47+
targetPath: '$(Build.ArtifactStagingDirectory)'
4748
ArtifactName: vsix
49+
publishLocation: pipeline
50+
51+
- stage: deploydev
52+
dependsOn: build
53+
displayName: Deploy Dev Version
54+
jobs:
55+
- deployment: deploy
56+
pool:
57+
vmImage: windows-latest
58+
environment: pester-dev
59+
strategy:
60+
runOnce:
61+
deploy:
62+
steps:
63+
- task: ms-devlabs.vsts-developer-tools-build-tasks.publish-extension-build-task.PublishExtension@1
64+
displayName: 'Publish Extension'
65+
inputs:
66+
connectedServiceName: Pester
67+
fileType: vsix
68+
vsixFile: '$(Pipeline.Workspace)/vsix/pester.vsix'
69+
extensionTag: '-DEV'
70+
updateTasksVersion: false
71+
extensionVisibility: private
72+
73+
- stage: validatedev
74+
dependsOn: deploydev
75+
displayName: Validate Dev Deployed
76+
jobs:
77+
- deployment: validate
78+
displayName: Validate publish
79+
environment: pester
80+
strategy:
81+
runOnce:
82+
deploy:
83+
steps:
84+
- powershell: |
85+
Write-Host "Pester task avaiable"
86+
87+
- stage: testv9
88+
displayName: Test v9
89+
dependsOn: validatedev
90+
jobs:
91+
- job: win_ps
92+
displayName: Windows - Win PowerShell
93+
pool:
94+
vmImage: windows-latest
95+
steps:
96+
- template: pester-v9.yml
97+
98+
- job: win_ps_core
99+
displayName: Windows - Powershell
100+
pool:
101+
vmImage: windows-latest
102+
steps:
103+
- template: pester-v9.yml
104+
parameters:
105+
pscore: true
106+
107+
- job: linux
108+
displayName: Linux
109+
pool:
110+
vmImage: ubuntu-latest
111+
steps:
112+
- template: pester-v9.yml
113+
114+
- job: mac
115+
displayName: MacOS
116+
pool:
117+
vmImage: macOS-latest
118+
steps:
119+
- template: pester-v9.yml
120+
121+
- stage: testv10
122+
displayName: Test v10
123+
dependsOn: validatedev
124+
jobs:
125+
- job: win_ps
126+
displayName: Windows - Win PowerShell
127+
pool:
128+
vmImage: windows-latest
129+
steps:
130+
- template: pester-v10.yml
131+
132+
- job: win_ps_core
133+
displayName: Windows - PowerShell
134+
pool:
135+
vmImage: windows-latest
136+
steps:
137+
- template: pester-v10.yml
138+
parameters:
139+
pscore: true
140+
141+
- job: linux
142+
displayName: Linux
143+
pool:
144+
vmImage: ubuntu-latest
145+
steps:
146+
- template: pester-v10.yml
147+
148+
- job: mac
149+
displayName: MacOS
150+
pool:
151+
vmImage: macOS-latest
152+
steps:
153+
- template: pester-v10.yml
154+
155+
- stage:
156+
dependsOn:
157+
- testv10
158+
- testv9
159+
displayName: Deploy Prod Version
160+
jobs:
161+
- deployment: deploy
162+
pool:
163+
vmImage: windows-latest
164+
environment: pester-prod
165+
strategy:
166+
runOnce:
167+
deploy:
168+
steps:
169+
- task: ms-devlabs.vsts-developer-tools-build-tasks.publish-extension-build-task.PublishExtension@1
170+
displayName: 'Publish Extension'
171+
inputs:
172+
connectedServiceName: Pester Prod
173+
fileType: vsix
174+
vsixFile: '$(Pipeline.Workspace)/vsix/pester.vsix'
175+
updateTasksVersion: false

pester-v10.yml

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
parameters:
2+
- name: pscore
3+
type: boolean
4+
default: false
5+
6+
steps:
7+
- task: Pester.PesterRunner-DEV.Pester-Task.Pester@10
8+
displayName: 'Pester Test Runner'
9+
inputs:
10+
scriptFolder: './Extension/tests'
11+
resultsFile: '$(System.DefaultWorkingDirectory)/Test-Pester.XML'
12+
CodeCoverageOutputFile: '$(System.DefaultWorkingDirectory)/CC-Pester.XML'
13+
usePSCore: ${{ parameters.pscore }}
14+
CodeCoverageFolder: './Extension/tests'
15+
PesterVersion: OtherVersion
16+
preferredPesterVersion: 5.0.2
17+
18+
- task: PublishTestResults@2
19+
displayName: 'Publish Test Results Test-Pester.XML'
20+
inputs:
21+
testRunTitle: '$(agent.os)-v10'
22+
testResultsFormat: NUnit
23+
testResultsFiles: '$(System.DefaultWorkingDirectory)/Test-Pester.XML'
24+
25+
- task: PublishCodeCoverageResults@1
26+
displayName: 'Publish code coverage'
27+
inputs:
28+
summaryFileLocation: '$(System.DefaultWorkingDirectory)/CC-Pester.XML'
29+

pester-v9.yml

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
parameters:
2+
- name: pscore
3+
type: boolean
4+
default: false
5+
6+
steps:
7+
- task: Pester.PesterRunner-DEV.Pester-Task.Pester@9
8+
displayName: 'Pester Test Runner'
9+
inputs:
10+
scriptFolder: './Extension/tests'
11+
resultsFile: '$(System.DefaultWorkingDirectory)/Test-Pester.XML'
12+
CodeCoverageOutputFile: '$(System.DefaultWorkingDirectory)/CC-Pester.XML'
13+
usePSCore: ${{ parameters.pscore }}
14+
CodeCoverageFolder: './Extension/tests'
15+
PesterVersion: OtherVersion
16+
preferredPesterVersion: 4.10.1
17+
18+
- task: PublishTestResults@2
19+
displayName: 'Publish Test Results Test-Pester.XML'
20+
inputs:
21+
testRunTitle: '$(agent.os)-v9'
22+
testResultsFormat: NUnit
23+
testResultsFiles: '$(System.DefaultWorkingDirectory)/Test-Pester.XML'
24+
25+
- task: PublishCodeCoverageResults@1
26+
displayName: 'Publish code coverage'
27+
inputs:
28+
summaryFileLocation: '$(System.DefaultWorkingDirectory)/CC-Pester.XML'
29+

0 commit comments

Comments
 (0)