Skip to content

Commit 05318f2

Browse files
authored
Pipeline improvements and cleanup (#109)
* Pipeline improvements Consolidate release stage logic and adjust conditions SDL check consolidation / dedupe Remove unused variables and templates
1 parent 6cf415b commit 05318f2

11 files changed

+126
-112
lines changed

azure-pipelines/cd.yml

+13-36
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ parameters:
2525
default: false
2626

2727
variables:
28-
- template: common/variables.yml
2928
- name: vmImage
3029
value: $[variables.${{ parameters.buildAgentVmImageVar }}]
3130
- name: buildPool
@@ -52,38 +51,17 @@ stages:
5251
steps:
5352
- template: common/setup_steps.yml
5453
- template: common/compile_steps.yml
55-
- template: common/check_steps.yml
5654
- template: common/test_steps.yml
5755

5856
- stage: build
5957
dependsOn: [test]
6058
jobs:
61-
- job: CredScan
62-
displayName: 'Credential Scan'
59+
- job: SDLTools
60+
displayName: 'SDL checks'
6361
pool:
6462
vmImage: windows-latest
6563
steps:
66-
- task: CredScan@3
67-
inputs:
68-
outputFormat: 'pre'
69-
scanFolder: '$(Build.SourcesDirectory)'
70-
71-
- task: PostAnalysis@1
72-
inputs:
73-
AllTools: false
74-
APIScan: false
75-
BinSkim: false
76-
CodesignValidation: false
77-
CredScan: true
78-
FortifySCA: false
79-
FxCop: false
80-
ModernCop: false
81-
PoliCheck: false
82-
RoslynAnalyzers: false
83-
SDLNativeRules: false
84-
Semmle: false
85-
TSLint: false
86-
ToolLogsNotFoundAction: 'Standard'
64+
- template: common/sdl_steps.yml
8765

8866
- job: build_and_package
8967
displayName: 'Build and Publish Artifacts'
@@ -92,17 +70,15 @@ stages:
9270
vmImage: $(vmImage)
9371
demands:
9472
- ImageOverride -equals $(vmImage)
95-
dependsOn: CredScan
73+
dependsOn: SDLTools
9674
steps:
9775
- template: common/setup_steps.yml
9876
- template: common/compile_steps.yml
99-
- template: common/check_steps.yml
100-
- template: common/test_steps.yml
10177

102-
# modify application insights key for releases
78+
# modify application insights key for releases only
10379
- script: |
10480
node scripts/modifyPackageJson.js aiKey $(aiKey)
105-
displayName: Modify package.json for releases
81+
displayName: 'Inject App Insights key'
10682
condition: and(succeeded(), ${{ parameters.publishExt }})
10783
10884
- template: common/package_steps.yml
@@ -112,6 +88,7 @@ stages:
11288
- stage: release
11389
displayName: 'Release to VS Marketplace'
11490
dependsOn: [test, build]
91+
condition: and(succeeded(), ${{ parameters.publishExt }})
11592
pool:
11693
name: $(buildPool)
11794
vmImage: $(vmImage)
@@ -135,26 +112,26 @@ stages:
135112
- task: NodeTool@0
136113
inputs:
137114
versionSpec: '14.x'
138-
displayName: Install Node.js
115+
displayName: 'Install Node.js'
139116

140117
- script: |
141118
npm install -g vsce
142-
displayName: Install vsce
119+
displayName: 'Install VSCE tool'
143120
144121
# publish pre-release vsix to marketplace
145122
- bash: |
146123
vsce publish -p $MARKETPLACE_TOKEN --packagePath *.vsix --pre-release
147124
workingDirectory: '$(System.ArtifactsDirectory)/vsix'
148-
displayName: Deploy pre-release VSIX to marketplace
149-
condition: and(succeeded(), ${{ parameters.publishExt }}, not(${{ parameters.productionRelease }}))
125+
displayName: 'Deploy pre-release VSIX to marketplace'
126+
condition: and(succeeded(), not(${{ parameters.productionRelease }}))
150127
env:
151128
MARKETPLACE_TOKEN: $(vsciot_marketplace_token)
152129
153130
# publish vsix to marketplace
154131
- bash: |
155132
vsce publish -p $MARKETPLACE_TOKEN --packagePath *.vsix
156133
workingDirectory: '$(System.ArtifactsDirectory)/vsix'
157-
displayName: Deploy release VSIX to marketplace
158-
condition: and(succeeded(), ${{ parameters.publishExt }}, ${{ parameters.productionRelease }})
134+
displayName: 'Deploy release VSIX to marketplace'
135+
condition: and(succeeded(), ${{ parameters.productionRelease }})
159136
env:
160137
MARKETPLACE_TOKEN: $(vsciot_marketplace_token)

azure-pipelines/ci.yml

+51-21
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,58 @@
1-
# now ci is just about pr validation,
2-
# since we tend to make strict configurations for our repo, that is,
3-
# each pr is up to date before merging into develop and no other way
4-
# to modify develop except the pr flow.
51
trigger: none
62

73
pr:
84
- main
9-
- develop
10-
- pre-release-v*
5+
- dev
116

12-
strategy:
13-
matrix:
14-
linux:
15-
imageName: 'ubuntu-latest'
16-
mac:
17-
imageName: 'macos-latest'
18-
windows:
19-
imageName: 'windows-latest'
7+
stages:
8+
- stage: CredScan
9+
jobs:
10+
- job: run_credscan
11+
displayName: 'Run CredScan'
12+
pool:
13+
vmImage: 'windows-latest'
14+
steps:
15+
# cred scan
16+
- task: CredScan@3
17+
displayName: 'Run CredScan'
18+
inputs:
19+
outputFormat: 'pre'
20+
scanFolder: '$(Build.SourcesDirectory)'
2021

21-
pool:
22-
vmImage: $(imageName)
22+
- task: PostAnalysis@1
23+
inputs:
24+
AllTools: false
25+
APIScan: false
26+
BinSkim: false
27+
CodesignValidation: false
28+
CredScan: true
29+
FortifySCA: false
30+
FxCop: false
31+
ModernCop: false
32+
PoliCheck: false
33+
RoslynAnalyzers: false
34+
SDLNativeRules: false
35+
Semmle: false
36+
TSLint: false
37+
ToolLogsNotFoundAction: 'Standard'
2338

24-
steps:
25-
- template: common/setup_steps.yml
26-
- template: common/compile_steps.yml
27-
- template: common/check_steps.yml
28-
- template: common/test_steps.yml
39+
- stage: Test
40+
dependsOn: []
41+
jobs:
42+
- job: run_tests
43+
displayName: 'Run tests'
44+
strategy:
45+
matrix:
46+
linux:
47+
imageName: 'ubuntu-latest'
48+
mac:
49+
imageName: 'macos-latest'
50+
windows:
51+
imageName: 'windows-latest'
52+
53+
pool:
54+
vmImage: $(imageName)
55+
steps:
56+
- template: common/setup_steps.yml
57+
- template: common/compile_steps.yml
58+
- template: common/test_steps.yml

azure-pipelines/common/check_steps.yml

-18
This file was deleted.
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
steps:
2-
# compiling
2+
# Typescript Compile
33
- script: |
44
npm run compile
5-
displayName: Compile Sources
5+
displayName: 'Typescript compile'

azure-pipelines/common/package_steps.yml

+6-6
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,34 @@ parameters:
55
default: false
66

77
steps:
8-
# split the following two scripts
9-
# because of not working issue on windows platform.
108
- script: |
119
npm install -g vsce
12-
displayName: Install vsce
10+
displayName: 'Install VSCE tool'
1311
1412
- ${{ if eq(parameters.productionRelease, false) }}:
1513
- script: |
1614
vsce package --pre-release
17-
displayName: Build pre-release VSIX Package
15+
displayName: 'Build pre-release VSIX Package'
1816
1917
- ${{ if eq(parameters.productionRelease, true) }}:
2018
- script: |
2119
vsce package
22-
displayName: Build VSIX Package
20+
displayName: 'Build VSIX Package'
2321
2422
- task: CopyFiles@2
23+
displayName: 'Copy VSIX to artifact staging'
2524
inputs:
2625
SourceFolder: '$(System.DefaultWorkingDirectory)'
2726
Contents: '**/*.vsix'
2827
TargetFolder: '$(Build.ArtifactStagingDirectory)'
2928

3029
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
31-
displayName: 'Generate Software Manifest'
30+
displayName: 'Generate software manifest'
3231
inputs:
3332
BuildDropPath: '$(Build.ArtifactStagingDirectory)'
3433

3534
- task: PublishPipelineArtifact@1
35+
displayName: 'Publish build artifacts'
3636
inputs:
3737
targetPath: '$(Build.ArtifactStagingDirectory)'
3838
artifactType: 'pipeline'

azure-pipelines/common/sdl_steps.yml

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
steps:
2+
# cred scan
3+
- task: CredScan@3
4+
displayName: 'Run CredScan'
5+
inputs:
6+
outputFormat: 'pre'
7+
scanFolder: '$(Build.SourcesDirectory)'
8+
9+
# poli check
10+
- task: securedevelopmentteam.vss-secure-development-tools.build-task-policheck.PoliCheck@1
11+
displayName: 'Run PoliCheck'
12+
inputs:
13+
targetType: F
14+
15+
- task: PostAnalysis@1
16+
inputs:
17+
AllTools: false
18+
APIScan: false
19+
BinSkim: false
20+
CodesignValidation: false
21+
CredScan: true
22+
FortifySCA: false
23+
FxCop: false
24+
ModernCop: false
25+
PoliCheck: true
26+
RoslynAnalyzers: false
27+
SDLNativeRules: false
28+
Semmle: false
29+
TSLint: false
30+
ToolLogsNotFoundAction: 'Standard'

azure-pipelines/common/set_release_flags_steps.yml

-12
This file was deleted.

azure-pipelines/common/setup_steps.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ steps:
33
- task: NodeTool@0
44
inputs:
55
versionSpec: '14.x'
6-
displayName: Install Node.js
6+
displayName: 'Install Node.js'
77

88
# run npm install
99
- script: |
1010
npm ci
1111
displayName: 'Install dependencies'
1212
13-
# for what?
13+
# X Virtual Frame Buffer (to run tests on headless linux distros)
1414
- bash: |
1515
/usr/bin/Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
16-
displayName: Start xvfb
16+
displayName: 'Start xvfb for headless linux'
1717
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))

azure-pipelines/common/test_steps.yml

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
steps:
2-
# testing
2+
# static checking
3+
- script: |
4+
npm run eslint
5+
displayName: 'Run ESLint Checks'
6+
# Run tests
37
- script: |
48
npm run test --silent
5-
displayName: Run Tests
9+
displayName: 'Run Tests'
610
env:
711
DISPLAY: ':99.0'

azure-pipelines/common/variables.yml

-7
This file was deleted.

azure-pipelines/nightly_build.yml

+15-5
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,29 @@
11
schedules:
22
- cron: '0 19 * * *'
3-
displayName: Nightly build on 3:00 AM (GMT+8)
3+
displayName: 'Nightly build and test'
44
branches:
55
include:
6-
- develop
6+
- dev
77
always: false
88

99
trigger: none
1010
pr: none
1111

1212
stages:
13-
- stage: test
13+
- stage: SDL
1414
jobs:
15-
- job: test
15+
- job: sdl_checks
16+
displayName: 'SDL checks'
17+
pool:
18+
vmImage: 'windows-latest'
19+
steps:
20+
- template: common/sdl_steps.yml
21+
22+
- stage: Test
23+
dependsOn: ['SDL']
24+
jobs:
25+
- job: run_tests
26+
displayName: 'Run tests'
1627
strategy:
1728
matrix:
1829
linux:
@@ -26,5 +37,4 @@ stages:
2637
steps:
2738
- template: common/setup_steps.yml
2839
- template: common/compile_steps.yml
29-
- template: common/check_steps.yml
3040
- template: common/test_steps.yml

0 commit comments

Comments
 (0)