-
Notifications
You must be signed in to change notification settings - Fork 50
/
azure-pipelines.yml
127 lines (106 loc) · 4.21 KB
/
azure-pipelines.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
#trigger:
#- master
#- dev
strategy:
matrix:
linux:
imageName: 'MMSUbuntu20.04TLS'
windows:
imageName: 'MMS2019TLS'
pool:
name: '1ES-Hosted-AzFunc'
demands:
- ImageOverride -equals $(imageName)
variables:
Configuration: Release
buildNumber: $[ counter('build', 001) ] # Start higher than our AppVeyor versions. Every build (pr or branch) will increment.
steps:
- task: AzureKeyVault@2
inputs:
azureSubscription: 'Simple Batch(0b894477-1614-4c8d-8a9b-a697a24596b8)'
KeyVaultName: 'powershell-worker'
SecretsFilter: '*'
RunAsPreJob: true
- pwsh: |
$releaseBranches = @('v4.x/ps7.4', 'v4.x/ps7.2', 'v4.x/ps7.0', 'v3.x/ps7', 'v3.x/ps6', 'v2.x')
Write-Host "BuildSourceBranch: $($env:BuildSourceBranch)"
$branchName = $env:BuildSourceBranch.Replace("refs/heads/", "")
Write-Host "BranchName: $branchName"
$isReleaseBuild = ($releaseBranches -contains $branchName)
Write-Host "##vso[task.setvariable variable=IsReleaseBuild]$isReleaseBuild"
Write-Host "IsReleaseBuild: $isReleaseBuild"
displayName: 'Set IsReleaseBuild variable'
env:
BuildSourceBranch: $(Build.SourceBranch)
condition: eq(variables['UPLOADPACKAGETOPRERELEASEFEED'], 'false')
- pwsh: ./build.ps1 -NoBuild -Bootstrap
displayName: 'Running ./build.ps1 -NoBuild -Bootstrap'
- pwsh: ./Check-CsprojVulnerabilities.ps1
displayName: 'Check for security vulnerabilities'
- pwsh: |
$ErrorActionPreference = "Stop"
$shouldAddSBOM = $null
if ([string]::IsNullOrEmpty($IsReleaseBuild))
{
Write-Host "IsReleaseBuild is null or empty. Setting shouldAddSBOM to false"
$shouldAddSBOM = $false
}
else
{
Write-Host "IsReleaseBuild: $IsReleaseBuild"
$shouldAddSBOM = ($IsReleaseBuild -eq "true")
}
Write-Host "shouldAddSBOM: $shouldAddSBOM"
./build.ps1 -Clean -Configuration Release -BuildNumber "$(buildNumber)" -AddSBOM:$shouldAddSBOM -SBOMUtilSASUrl "$(SBOMUtilSASUrl)"
displayName: 'Build worker code'
- pwsh: ./build.ps1 -NoBuild -Test
displayName: 'Running UnitTest'
- pwsh: ./test/E2E/Start-E2ETest.ps1
env:
AzureWebJobsStorage: $(AzureWebJobsStorage)
AzureWebJobsCosmosDBConnectionString: $(AzureWebJobsCosmosDBConnectionString)
AzureWebJobsServiceBus: $(AzureWebJobsServiceBus)
AzureWebJobsEventHubSender: $(AzureWebJobsEventHubSender)
FUNCTIONS_WORKER_RUNTIME : "powershell"
displayName: 'Running E2ETest'
- task: PublishTestResults@2
inputs:
testResultsFormat: 'VSTest'
testResultsFiles: '**/*.trx'
failTaskOnFailedTests: true
condition: succeededOrFailed()
displayName: 'Publish tests results'
- task: CopyFiles@2
inputs:
SourceFolder: '$(System.DefaultWorkingDirectory)/package'
Contents: '**/*.nupkg'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
displayName: 'Copy package to artifacts directory'
- task: NuGetCommand@2
condition: and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['IsReleaseBuild'], 'true'), eq(variables['UPLOADPACKAGETOPRERELEASEFEED'], 'false'))
inputs:
command: 'push'
packagesToPush: '$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg'
nuGetFeedType: 'internal'
publishVstsFeed: 'e6a70c92-4128-439f-8012-382fe78d6396/c0493cce-bc63-4e11-9fc9-e7c45291f151'
allowPackageConflicts: true
displayName: 'Push NuGet package'
- task: NuGetCommand@2
condition: eq(variables['UPLOADPACKAGETOPRERELEASEFEED'], 'true')
inputs:
command: 'push'
packagesToPush: '$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg'
nuGetFeedType: 'internal'
publishVstsFeed: 'e6a70c92-4128-439f-8012-382fe78d6396/f37f760c-aebd-443e-9714-ce725cd427df'
allowPackageConflicts: true
displayName: 'Push NuGet package to the AzureFunctionsPreRelease feed'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
displayName: 'Publish build artifacts'