Skip to content

Commit cccfe1c

Browse files
authored
Rework install script validation (#542)
Reworking install script validation pipeline - reduce script copying - move to step templates
1 parent caacaa4 commit cccfe1c

File tree

7 files changed

+115
-139
lines changed

7 files changed

+115
-139
lines changed

.vsts-ci.yml

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,7 @@ stages:
2121
parameters:
2222
nuspecProperties: 'VersionSuffix=CI-$(Build.BuildNumber)'
2323

24-
- stage: ValidateInstallScriptWindows
24+
- stage: Validate
2525
dependsOn: []
26-
pool:
27-
vmImage: windows-latest
2826
jobs:
29-
- template: build/validate-install-script-ps.yml
30-
parameters:
31-
repo: 'self'
32-
33-
- stage: ValidateInstallScriptLinux
34-
dependsOn: []
35-
pool:
36-
vmImage: ubuntu-latest
37-
jobs:
38-
- template: build/validate-install-script-sh.yml
39-
parameters:
40-
repo: 'self'
27+
- template: build/validate-install-script.yml

.vsts-pr.yml

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,7 @@ stages:
2121
parameters:
2222
nuspecProperties: 'VersionSuffix=CI-$(Build.BuildNumber)'
2323

24-
- stage: ValidateInstallScriptWindows
24+
- stage: Validate
2525
dependsOn: []
26-
pool:
27-
vmImage: windows-latest
2826
jobs:
29-
- template: build/validate-install-script-ps.yml
30-
parameters:
31-
repo: 'self'
32-
33-
- stage: ValidateInstallScriptLinux
34-
dependsOn: []
35-
pool:
36-
vmImage: ubuntu-latest
37-
jobs:
38-
- template: build/validate-install-script-sh.yml
39-
parameters:
40-
repo: 'self'
27+
- template: build/validate-install-script.yml
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
parameters:
2+
- name: repo
3+
type: string
4+
- name: scriptEnvVariables
5+
type: string
6+
- name: expectedCredentialProviderVersion
7+
type: string
8+
9+
steps:
10+
- checkout: ${{ parameters.repo }}
11+
- bash: |
12+
${{ parameters.scriptEnvVariables }}
13+
./helpers/installcredprovider.sh -Force >> ./output.log
14+
cat ./output.log
15+
16+
if ! grep ${{ parameters.expectedCredentialProviderVersion }} ./output.log; then
17+
echo "Expected credential provider not found"
18+
exit 1
19+
fi
20+
if [ ! -d "$HOME/.nuget/plugins/netcore/CredentialProvider.Microsoft" ]; then
21+
echo "Credential provider plugin directory not found"
22+
exit 1
23+
fi
24+
25+
echo "Credential provider installed successfully"
26+
workingDirectory: $(Build.SourcesDirectory)
27+
displayName: Validate Install Script
28+
- bash: |
29+
if grep $'\r' ./helpers/installcredprovider.sh; then
30+
echo "CRLF line ending found"
31+
exit 1
32+
fi
33+
workingDirectory: $(Build.SourcesDirectory)
34+
displayName: Check Line Endings
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
parameters:
2+
- name: repo
3+
type: string
4+
- name: scriptInputs
5+
type: string
6+
- name: expectedCredentialProviderVersion
7+
type: string
8+
9+
steps:
10+
- checkout: ${{ parameters.repo }}
11+
- task: PowerShell@2
12+
displayName: Validate Install Script
13+
inputs:
14+
targetType: 'inline'
15+
script: |
16+
./helpers/installcredprovider.ps1 ${{ parameters.scriptInputs }} -Force 6>> ./output.log
17+
cat ./output.log
18+
if( (Select-String -Path .\output.log -Pattern ${{ parameters.expectedCredentialProviderVersion }}) -eq $null) {echo "Expected credential provider file not found."; exit 1}
19+
workingDirectory: $(Build.SourcesDirectory)

build/validate-install-script-ps.yml

Lines changed: 0 additions & 53 deletions
This file was deleted.

build/validate-install-script-sh.yml

Lines changed: 0 additions & 56 deletions
This file was deleted.

build/validate-install-script.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
jobs:
2+
- job: WindowsInstallDefault
3+
pool:
4+
vmImage: windows-latest
5+
steps:
6+
- template: validate-install-script-powershell.yml@self
7+
parameters:
8+
repo: self
9+
scriptInputs: ''
10+
expectedCredentialProviderVersion: 'Microsoft.Net6.NuGet.CredentialProvider'
11+
- job: WindowsInstallNet8
12+
pool:
13+
vmImage: windows-latest
14+
steps:
15+
- template: validate-install-script-powershell.yml@self
16+
parameters:
17+
repo: self
18+
scriptInputs: '-InstallNet8'
19+
expectedCredentialProviderVersion: 'Microsoft.Net8.NuGet.CredentialProvider'
20+
- job: WindowsInstallNetfxDefault
21+
pool:
22+
vmImage: windows-latest
23+
steps:
24+
- template: validate-install-script-powershell.yml@self
25+
parameters:
26+
repo: self
27+
scriptInputs: '-AddNetfx'
28+
expectedCredentialProviderVersion: 'Microsoft.NuGet.CredentialProvider'
29+
- job: WindowsInstallNetfx48
30+
pool:
31+
vmImage: windows-latest
32+
steps:
33+
- template: validate-install-script-powershell.yml@self
34+
parameters:
35+
repo: self
36+
scriptInputs: '-AddNetFx48'
37+
expectedCredentialProviderVersion: 'Microsoft.NetFx48.NuGet.CredentialProvider'
38+
- job: LinuxInstallDefault
39+
pool:
40+
vmImage: ubuntu-latest
41+
steps:
42+
- template: validate-install-script-bash.yml@self
43+
parameters:
44+
repo: self
45+
scriptEnvVariables: ''
46+
expectedCredentialProviderVersion: 'Microsoft.Net6.NuGet.CredentialProvider'
47+
- job: LinuxInstallNet8
48+
pool:
49+
vmImage: ubuntu-latest
50+
steps:
51+
- template: validate-install-script-bash.yml@self
52+
parameters:
53+
repo: self
54+
scriptEnvVariables: |
55+
export USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER=false
56+
export USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER=true
57+
expectedCredentialProviderVersion: 'Microsoft.Net8.NuGet.CredentialProvider'
58+

0 commit comments

Comments
 (0)