Skip to content

Commit 01e5fda

Browse files
committed
Try GitHub Actions for all CI
1 parent 8559105 commit 01e5fda

File tree

7 files changed

+83
-49
lines changed

7 files changed

+83
-49
lines changed

.github/workflows/ci-test.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: CI Tests
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
tags: [ v* ]
7+
pull_request:
8+
# The branches below must be a subset of the branches above
9+
branches: [ main ]
10+
paths-ignore: [ '**/*.md' ]
11+
merge_group:
12+
types: [ checks_requested ]
13+
14+
jobs:
15+
os_matrix:
16+
strategy:
17+
matrix:
18+
os: [ windows-latest, macos-latest, ubuntu-latest ]
19+
runs-on: ${{ matrix.os }}
20+
env:
21+
DOTNET_NOLOGO: true
22+
DOTNET_CLI_TELEMETRY_OPTOUT: true
23+
DOTNET_GENERATE_ASPNET_CERTIFICATE: false
24+
steps:
25+
- name: Checkout repository
26+
uses: actions/checkout@v4
27+
- name: Install dotnet
28+
uses: actions/setup-dotnet@v4
29+
with:
30+
dotnet-version: |
31+
6.0.x
32+
7.0.x
33+
- name: Run setup and build script
34+
shell: pwsh
35+
run: tools/azurePipelinesBuild.ps1
36+
- name: Run tests
37+
shell: pwsh
38+
run: Invoke-Build Test -Configuration Release
39+
- name: Upload test results
40+
uses: actions/upload-artifact@v3
41+
if: ${{ always() }}
42+
with:
43+
name: ${{ matrix.os }}-test-results
44+
path: '**/*.trx'

.vsts-ci/azure-pipelines-ci.yml

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,40 +9,25 @@ pr:
99

1010
variables:
1111
# Don't download unneeded packages
12-
- name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE
12+
- name: DOTNET_NOLOGO
1313
value: 'true'
1414
# Improve performance by not sending telemetry
1515
- name: DOTNET_CLI_TELEMETRY_OPTOUT
1616
value: 'true'
17+
# Improve performance by not generating certificates
18+
- name: DOTNET_GENERATE_ASPNET_CERTIFICATE
19+
value: 'false'
1720

1821
jobs:
1922
- job: windows2022
20-
displayName: Windows 2022 PowerShell 5.1
21-
pool:
22-
vmImage: windows-2022
23-
steps:
24-
- template: templates/ci-general.yml
25-
parameters:
26-
pwsh: false
27-
28-
- job: windows2022pwsh
29-
displayName: Windows 2022 PowerShell 7
23+
displayName: Windows 2022
3024
pool:
3125
vmImage: windows-2022
3226
steps:
3327
- template: templates/ci-general.yml
3428

3529
- job: windows2019
36-
displayName: Windows 2019 PowerShell 5.1
37-
pool:
38-
vmImage: windows-2019
39-
steps:
40-
- template: templates/ci-general.yml
41-
parameters:
42-
pwsh: false
43-
44-
- job: windows2019pwsh
45-
displayName: Windows 2019 PowerShell 7
30+
displayName: Windows 2019
4631
pool:
4732
vmImage: windows-2019
4833
steps:

.vsts-ci/azure-pipelines-release.yml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
name: Release-$(Build.SourceBranchName)-$(Date:yyyyMMdd)$(Rev:.rr)
22

3+
trigger:
4+
branches:
5+
include:
6+
- release
7+
38
variables:
49
# Don't download unneeded packages
5-
- name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE
10+
- name: DOTNET_NOLOGO
611
value: 'true'
712
# Improve performance by not sending telemetry
813
- name: DOTNET_CLI_TELEMETRY_OPTOUT
914
value: 'true'
10-
11-
trigger:
12-
branches:
13-
include:
14-
- release
15+
# Improve performance by not generating certificates
16+
- name: DOTNET_GENERATE_ASPNET_CERTIFICATE
17+
value: 'false'
1518

1619
resources:
1720
repositories:

.vsts-ci/templates/ci-general.yml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
1-
parameters:
2-
- name: pwsh
3-
type: boolean
4-
default: true
5-
61
steps:
72
- task: PowerShell@2
83
displayName: PowerShell version
94
inputs:
105
targetType: inline
6+
pwsh: true
117
script: $PSVersionTable
12-
pwsh: ${{ parameters.pwsh }}
138

149
- task: UseDotNet@2
1510
displayName: Install .NET 7.0.x SDK
@@ -29,14 +24,13 @@ steps:
2924
displayName: Build
3025
inputs:
3126
filePath: tools/azurePipelinesBuild.ps1
32-
pwsh: ${{ parameters.pwsh }}
3327

3428
- task: PowerShell@2
3529
displayName: Test
3630
inputs:
3731
targetType: inline
32+
pwsh: true
3833
script: Invoke-Build Test -Configuration Release
39-
pwsh: ${{ parameters.pwsh }}
4034

4135
- task: PublishTestResults@2
4236
displayName: Publish test results
@@ -49,13 +43,13 @@ steps:
4943
displayName: Assert PowerShellEditorServices release configuration
5044
inputs:
5145
targetType: inline
46+
pwsh: true
5247
script: |
5348
$assembly = [Reflection.Assembly]::LoadFile("$(Build.SourcesDirectory)/module/PowerShellEditorServices.VSCode/bin/Microsoft.PowerShell.EditorServices.VSCode.dll")
5449
if ($assembly.GetCustomAttributes([System.Diagnostics.DebuggableAttribute], $true).IsJITOptimizerDisabled) {
5550
Write-Host "##vso[task.LogIssue type=error;] PowerShell Editor Services bits were not built in release configuration!"
5651
exit 1
5752
}
58-
pwsh: ${{ parameters.pwsh }}
5953
6054
# NOTE: We zip the artifacts because they're ~20 MB compressed, but ~300 MB raw,
6155
# and we have limited pipeline artifact storage space.

PowerShellEditorServices.build.ps1

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,9 @@ Task Test TestServer, TestE2E, TestConstrainedLanguageMode
179179

180180
Task TestServer TestServerWinPS, TestServerPS72, TestServerPS73
181181

182-
# NOTE: While these can run under `pwsh.exe` we only want them to run under
183-
# `powershell.exe` so that the CI time isn't doubled.
184-
Task TestServerWinPS -If ($PSVersionTable.PSEdition -eq "Desktop") Build, SetupHelpForTests, {
182+
Task TestE2E TestE2EPwsh, TestE2EWinPS
183+
184+
Task TestServerWinPS -If (-not $script:IsNix) Build, SetupHelpForTests, {
185185
Set-Location .\test\PowerShellEditorServices.Test\
186186
# TODO: See https://github.com/dotnet/sdk/issues/18353 for x64 test host
187187
# that is debuggable! If architecture is added, the assembly path gets an
@@ -190,25 +190,30 @@ Task TestServerWinPS -If ($PSVersionTable.PSEdition -eq "Desktop") Build, SetupH
190190
Invoke-BuildExec { & dotnet $script:dotnetTestArgs $script:NetRuntime.Desktop }
191191
}
192192

193-
Task TestServerPS72 -If ($PSVersionTable.PSEdition -eq "Core") Build, SetupHelpForTests, {
193+
Task TestServerPS72 Build, SetupHelpForTests, {
194194
Set-Location .\test\PowerShellEditorServices.Test\
195195
Invoke-BuildExec { & dotnet $script:dotnetTestArgs $script:NetRuntime.PS72 }
196196
}
197197

198-
Task TestServerPS73 -If ($PSVersionTable.PSEdition -eq "Core") Build, SetupHelpForTests, {
198+
Task TestServerPS73 Build, SetupHelpForTests, {
199199
Set-Location .\test\PowerShellEditorServices.Test\
200200
Invoke-BuildExec { & dotnet $script:dotnetTestArgs $script:NetRuntime.PS73 }
201201
}
202202

203-
Task TestE2E Build, SetupHelpForTests, {
203+
Task TestE2EPwsh Build, SetupHelpForTests, {
204+
Set-Location .\test\PowerShellEditorServices.Test.E2E\
205+
$env:PWSH_EXE_NAME = "pwsh"
206+
Invoke-BuildExec { & dotnet $script:dotnetTestArgs $script:NetRuntime.PS73 }
207+
}
208+
209+
Task TestE2EWinPS -If (-not $script:IsNix) Build, SetupHelpForTests, {
204210
Set-Location .\test\PowerShellEditorServices.Test.E2E\
205-
$env:PWSH_EXE_NAME = if ($IsCoreCLR) { "pwsh" } else { "powershell" }
211+
$env:PWSH_EXE_NAME = "powershell"
206212
Invoke-BuildExec { & dotnet $script:dotnetTestArgs $script:NetRuntime.PS73 }
207213
}
208214

209215
Task TestConstrainedLanguageMode -If (-not $script:IsNix) Build, SetupHelpForTests, {
210216
Set-Location .\test\PowerShellEditorServices.Test.E2E\
211-
$env:PWSH_EXE_NAME = if ($IsCoreCLR) { "pwsh" } else { "powershell" }
212217

213218
if (-not [Security.Principal.WindowsIdentity]::GetCurrent().Owner.IsWellKnown("BuiltInAdministratorsSid")) {
214219
Write-Warning "Skipping Constrained Language Mode tests as they must be ran in an elevated process."

global.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"sdk": {
3-
"version": "7.0.100",
3+
"version": "7.0.14",
44
"rollForward": "latestFeature",
5-
"allowPrerelease": true
5+
"allowPrerelease": false
66
}
77
}

modules.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
{
22
"PSScriptAnalyzer": {
3-
"Version": "1.21.0"
3+
"Version": "1.21.0",
4+
"AllowPrerelease": false
45
},
56
"Plaster": {
6-
"Version": "1.1.3"
7+
"Version": "1.1.3",
8+
"AllowPrerelease": false
79
},
810
"PSReadLine": {
9-
"Version": "2.3.4"
11+
"Version": "2.3.4",
12+
"AllowPrerelease": false
1013
}
1114
}

0 commit comments

Comments
 (0)