Skip to content

Commit d5f3012

Browse files
authored
fix: add deploy to blob storage task (#3694)
1 parent 9857345 commit d5f3012

File tree

1 file changed

+54
-37
lines changed

1 file changed

+54
-37
lines changed

azure-pipelines.yml

Lines changed: 54 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@
66
# 1. Validates the repository's pull requests and commits
77
# 2. Builds and publishes release artifacts
88
# 3. This pipeline will be extended to the OneESPT template
9-
109
name: $(date:yyyyMMdd)$(rev:.r)
11-
1210
pr:
1311
branches:
1412
include:
@@ -30,11 +28,9 @@ pr:
3028
- README.md
3129
- azure-pipelines.yml
3230
- package-lock.json
33-
3431
variables:
3532
isMaster: $[eq(variables['Build.SourceBranch'], 'refs/heads/master')]
3633
isDev: $[eq(variables['Build.SourceBranch'], 'refs/heads/dev')]
37-
3834
trigger:
3935
branches:
4036
include:
@@ -56,7 +52,6 @@ trigger:
5652
- README.md
5753
- azure-pipelines.yml
5854
- package-lock.json
59-
6055
resources:
6156
repositories:
6257
- repository: 1ESPipelineTemplates
@@ -66,65 +61,53 @@ resources:
6661
- repository: ReleasePipelines
6762
type: git
6863
name: "Graph Developer Experiences/release-pipelines"
69-
7064
extends:
7165
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
7266
parameters:
7367
pool:
7468
name: Azure-Pipelines-1ESPT-ExDShared
7569
image: windows-latest
7670
os: windows
77-
7871
sdl:
7972
sourceRepositoriesToScan:
8073
exclude:
8174
- repository: ReleasePipelines
82-
8375
customBuildTags:
8476
- ES365AIMigrationTooling
85-
8677
stages:
8778
- stage: BuildTestAndPublish
8879
jobs:
8980
- job: One
9081
displayName: "Build and test validation"
9182
steps:
92-
9383
- task: ComponentGovernanceComponentDetection@0
9484
inputs:
9585
scanType: "Register"
9686
verbosity: "Verbose"
9787
alertWarningLevel: "High"
9888
ignoreDirectories: ".github,.vscode/"
99-
10089
- task: NodeTool@0
10190
inputs:
10291
versionSpec: "18.16.x"
10392
displayName: "Install Node.js"
104-
10593
- script: |
10694
npm install
10795
displayName: "npm install"
108-
10996
- script: |
11097
npm run lint
11198
displayName: "Runs linting checks"
112-
11399
- script: |
114100
npm test
115101
displayName: "Runs Unit tests"
116-
117102
- task: PublishTestResults@2
118103
condition: succeededOrFailed()
119104
inputs:
120105
testResultsFormat: "JUnit"
121106
testResultsFiles: "test-report.xml"
122107
displayName: "Publish Test Results"
123-
124108
- script: |
125109
npm run build
126110
displayName: "Run build"
127-
128111
- job: Two
129112
displayName: "Run playwright tests"
130113
condition: eq(variables['isDev'], 'true')
@@ -133,24 +116,19 @@ extends:
133116
inputs:
134117
versionSpec: "18.16.x"
135118
displayName: "Install npm"
136-
137119
- script: |
138120
npm install
139121
displayName: "npm install"
140-
141122
- script: |
142123
npm install -D @playwright/test
143124
npx playwright install-deps
144125
displayName: "Install playwright dependancies"
145-
146126
- script: |
147127
npx playwright install
148128
displayName: "Install playwright"
149-
150129
- script: |
151130
npm run test-playwright-accessibility
152131
displayName: "Run accessibility tests"
153-
154132
- script: |
155133
set CI=true
156134
npm run test-playwright
@@ -167,15 +145,13 @@ extends:
167145
PLAYWRIGHT_TESTS_USERNAME: $(PLAYWRIGHT_TESTS_USERNAME)
168146
PLAYWRIGHT_TESTS_PASSWORD: $(PLAYWRIGHT_TESTS_PASSWORD)
169147
displayName: "Run playwright tests"
170-
171148
templateContext:
172149
outputs:
173150
- output: pipelineArtifact
174151
displayName: 'Publish test results'
175152
condition: always()
176153
targetPath: $(System.DefaultWorkingDirectory)/playwright-report
177154
artifactName: playwright-report
178-
179155
- job: Three
180156
displayName: "Publish artifacts"
181157
dependsOn: One
@@ -184,11 +160,9 @@ extends:
184160
inputs:
185161
versionSpec: "18.16.x"
186162
displayName: "Install Node.js"
187-
188163
- script: |
189164
npm install
190165
displayName: "npm install"
191-
192166
- script: |
193167
npm run build
194168
env:
@@ -203,7 +177,6 @@ extends:
203177
REACT_APP_DEVX_API_URL: $(REACT_APP_DEVX_API_URL)
204178
REACT_APP_MIGRATION_PARAMETER: $(REACT_APP_MIGRATION_PARAMETER)
205179
displayName: "Build static assets for staging"
206-
207180
- task: PowerShell@2
208181
displayName: "Set version-number"
209182
condition: and(succeeded(), eq(variables['isMaster'], 'true'))
@@ -215,7 +188,6 @@ extends:
215188
$versionNumber = $json.version;
216189
Write-Host "Setting the build number variable to '$versionNumber'."
217190
Write-Host "##vso[build.updatebuildnumber]$versionNumber"
218-
219191
- script: |
220192
npm run build
221193
condition: and(succeeded(), eq(variables['isMaster'], 'true'))
@@ -231,7 +203,6 @@ extends:
231203
REACT_APP_DEVX_API_URL: $(REACT_APP_DEVX_API_URL)
232204
REACT_APP_MIGRATION_PARAMETER: $(REACT_APP_MIGRATION_PARAMETER)
233205
displayName: "Build static assets for prod"
234-
235206
- task: PowerShell@2
236207
displayName: "Create _manifest directory"
237208
inputs:
@@ -240,39 +211,33 @@ extends:
240211
$manifestPath = "$Env:SYSTEM_DEFAULTWORKINGDIRECTORY/_manifest"
241212
mkdir -p $manifestPath
242213
Write-Host "Created directory '$manifestPath'."
243-
244214
- task: ManifestGeneratorTask@0
245215
inputs:
246216
ManifestDirPath: "$(System.DefaultWorkingDirectory)/_manifest"
247217
BuildComponentPath: "$(System.DefaultWorkingDirectory)/build"
248218
PackageName: "graph-explorer-v2"
249219
PackageVersion: "$(Build.UpdateBuildNumber)"
250-
251220
- task: CopyFiles@1
252221
displayName: "Copy manifest files to artifact staging dir: manifest"
253222
inputs:
254223
SourceFolder: "$(System.DefaultWorkingDirectory)/_manifest"
255224
TargetFolder: "$(Build.ArtifactStagingDirectory)/manifest"
256-
257225
- task: CopyFiles@1
258226
displayName: "Copy files to: $(Build.ArtifactStagingDirectory)/build"
259227
inputs:
260228
SourceFolder: "$(System.DefaultWorkingDirectory)/build"
261229
TargetFolder: "$(Build.ArtifactStagingDirectory)/build"
262-
263230
- task: DeleteFiles@1
264231
inputs:
265232
contents: node_modules
266233
displayName: "Delete node_modules"
267-
268234
- task: ArchiveFiles@2
269235
inputs:
270236
rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/build'
271237
includeRootFolder: false
272238
archiveType: 'zip'
273239
archiveFile: '$(Build.ArtifactStagingDirectory)/build/graph-explorer.zip'
274240
replaceExistingArchive: true
275-
276241
templateContext:
277242
outputs:
278243
- output: pipelineArtifact
@@ -283,9 +248,61 @@ extends:
283248
displayName: 'Publish Artifact: drop'
284249
targetPath: "$(build.ArtifactStagingDirectory)/build"
285250
artifactName: drop
286-
287251
- template: pipelines/templates/checkout-and-copy-1es.yml@ReleasePipelines
288252
parameters:
289253
directory: 'microsoft-graph-explorer-v4'
290254
repoName: ReleasePipelines
291-
dependsOn: ['Three']
255+
dependsOn: ['Three']
256+
257+
- stage: DeployProduction
258+
condition: and(contains(variables['build.sourceBranch'], 'refs/heads/master'), succeeded())
259+
dependsOn: BuildTestAndPublish
260+
jobs:
261+
- deployment: production
262+
templateContext:
263+
type: releaseJob
264+
isProduction: true
265+
inputs:
266+
- input: pipelineArtifact
267+
artifactName: drop
268+
targetPath: '$(Build.ArtifactStagingDirectory)/drop'
269+
environment: graphexplorer-production
270+
strategy:
271+
runOnce:
272+
deploy:
273+
steps:
274+
- task: AzureFileCopy@6
275+
displayName: 'Deploy to portal - staging'
276+
inputs:
277+
SourcePath: '$(Build.ArtifactStagingDirectory)/drop/*'
278+
azureSubscription: 'Federated GE-Portals Managed Identity Connection'
279+
Destination: AzureBlob
280+
storage: graphstagingblobstorage
281+
ContainerName: staging
282+
BlobPrefix: 'vendor/bower_components/explorer$(Build.BuildNumber)/build'
283+
284+
- task: AzureFileCopy@6
285+
displayName: 'Deploy to portal - production'
286+
inputs:
287+
SourcePath: '$(Build.ArtifactStagingDirectory)/drop/*'
288+
azureSubscription: 'Federated GE-Portals Managed Identity Connection'
289+
Destination: AzureBlob
290+
storage: graphprodblobstorage
291+
ContainerName: prod
292+
BlobPrefix: 'vendor/bower_components/explorer$(Build.BuildNumber)/build'
293+
294+
- task: ArchiveFiles@2
295+
displayName: 'Archive built assets'
296+
inputs:
297+
rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/drop/'
298+
archiveFile: '$(Build.ArtifactStagingDirectory)/graph-explorer-$(Build.BuildNumber)-$(Build.BuildId).zip'
299+
300+
- task: GitHubRelease@1
301+
displayName: 'GitHub release (v$(Build.BuildNumber)-$(Build.BuildId))'
302+
inputs:
303+
gitHubConnection: 'GitHub - thewahome'
304+
action: edit
305+
tag: 'v$(Build.BuildNumber)'
306+
title: 'Graph Explorer - v$(Build.BuildNumber)'
307+
assets: '$(Build.ArtifactStagingDirectory)/*.zip'
308+
changeLogType: issueBased

0 commit comments

Comments
 (0)