11trigger :
22 - main
3-
4- variables :
5- Codeql.Enabled : true
6-
7- jobs :
8- - job : Test
9- strategy :
10- matrix :
11- Linux.Node10 :
12- node.version : 10.x
13- vm.image : ' ubuntu-20.04'
14- Linux.Node12 :
15- node.version : 12.x
16- vm.image : ' ubuntu-20.04'
17- Win.Node10 :
18- node.version : 10.x
19- vm.image : ' windows-2019'
20- Win.Node12 :
21- node.version : 12.x
22- vm.image : ' windows-2019'
23- pool :
24- vmImage : $(vm.image)
25- steps :
26- - task : NodeTool@0
27- displayName : ' Install Node'
28- inputs :
29- versionSpec : $(node.version)
30- - script : npm install
31- - task : Npm@1
32- displayName : ' npm test'
33- inputs :
34- command : custom
35- verbose : false
36- customCommand : test
37- - task : PublishTestResults@2
38- condition : succeededOrFailed()
39- inputs :
40- testResultsFiles : ' **/test-results.xml'
41- testRunTitle : ' Test results for JavaScript'
42- - task : PublishCodeCoverageResults@1
43- condition : succeededOrFailed()
44- inputs :
45- codeCoverageTool : Cobertura
46- summaryFileLocation : ' $(System.DefaultWorkingDirectory)/**/*coverage.xml'
47- reportDirectory : ' $(System.DefaultWorkingDirectory)/**/coverage'
48- - job : Build
49- pool :
50- vmImage : ' ubuntu-22.04'
51- steps :
52- - task : Npm@1
53- displayName : ' npm pack'
54- inputs :
55- command : custom
56- verbose : false
57- customCommand : pack
58- - task : CopyFiles@2
59- displayName : ' Copy Files to: drop'
60- inputs :
61- Contents : ' *.tgz'
62- TargetFolder : drop
63- - task : PublishBuildArtifacts@1
64- inputs :
65- pathtoPublish : $(Build.SourcesDirectory)/drop
663
67- - job : Windows
68- pool :
69- vmImage : ' windows-2019'
4+ extends :
5+ template : /eng/1es-redirect.yml
6+ parameters :
7+ stages :
8+ - stage : Build_And_Test
9+ displayName : ' Build and Test'
7010
71- steps :
72- - task : ea576cd4-c61f-48f8-97e7-a3cb07b90a6f@2 # CredScan@2
73- inputs :
74- toolMajorVersion : ' V2'
11+ variables :
12+ - template : /eng/image.yml
7513
76- - task : f5679091-e6da-4974-a8dc-0eec03a8ea63@1 # PostAnalysis@1
77- inputs :
78- AllTools : false
79- APIScan : false
80- BinSkim : false
81- CodesignValidation : false
82- CredScan : true
83- FortifySCA : false
84- FxCop : false
85- ModernCop : false
86- PoliCheck : false
87- RoslynAnalyzers : false
88- SDLNativeRules : false
89- Semmle : false
90- TSLint : false
91- ToolLogsNotFoundAction : ' Standard'
14+ jobs :
15+ - job : Build
16+ pool :
17+ image : $(LINUXVMIMAGE)
18+ name : $(LINUXPOOL)
19+ os : linux
20+ steps :
21+ - task : Npm@1
22+ displayName : ' npm pack'
23+ inputs :
24+ command : custom
25+ verbose : false
26+ customCommand : pack
27+
28+ - task : CopyFiles@2
29+ displayName : ' Copy Files to: drop'
30+ inputs :
31+ Contents : ' *.tgz'
32+ TargetFolder : $(Build.ArtifactStagingDirectory)
33+
34+ - template : /eng/publish-1es-artifact.yml
35+ parameters :
36+ artifactName : ' drop'
37+ artifactPath : ' $(Build.ArtifactStagingDirectory)'
38+
39+ - job : Test_Windows
40+ strategy :
41+ matrix :
42+ Win.Node10 :
43+ node.version : 10.x
44+ Win.Node12 :
45+ node.version : 12.x
46+ pool :
47+ image : $(WINDOWSVMIMAGE)
48+ name : $(WINDOWSPOOL)
49+ os : windows
50+ steps :
51+ - template : /eng/test-steps.yml
52+ parameters :
53+ version : $(node.version)
54+
55+ - job : Test_Linux
56+ strategy :
57+ matrix :
58+ Linux.Node10 :
59+ node.version : 10.x
60+ Linux.Node12 :
61+ node.version : 12.x
62+ pool :
63+ image : $(LINUXVMIMAGE)
64+ name : $(LINUXPOOL)
65+ os : linux
66+ steps :
67+ - template : /eng/test-steps.yml
68+ parameters :
69+ version : $(node.version)
70+
71+ # only include if running on `internal` build with manual queue, otherwise never include
72+ - ${{ if and(in(variables['Build.Reason'], 'Manual', ''), eq(variables['System.TeamProject'], 'internal'))}} :
73+ - stage : Publish
74+ displayName : Publish
75+ dependsOn : Build_And_Test
76+
77+ jobs :
78+ - deployment : Publish
79+ environment : ' package-publish'
80+ pool :
81+ name : azsdk-pool-mms-ubuntu-2004-general
82+ image : azsdk-pool-mms-ubuntu-2004-1espt
83+ os : linux
84+
85+ strategy :
86+ runOnce :
87+ deploy :
88+ steps :
89+ - checkout : self
90+ submodules : false
91+
92+ - download : current
93+ artifact : drop
94+ timeoutInMinutes : 5
95+
96+ - task : PowerShell@2
97+ inputs :
98+ filePath : ' $(Build.SourcesDirectory)/eng/scripts/determine-release-tag.ps1'
99+ failOnStderr : true
100+ pwsh : true
101+
102+ - pwsh : |
103+ Write-Host "Will deploy with tag of $(Tag)"
104+ Get-ChildItem "$(Pipeline.Workspace)/drop" -Recurse -Force `
105+ | Where-Object { $_.Name -like "*.tgz" } `
106+ | Copy-Item -Destination "$(Build.ArtifactStagingDirectory)"
107+
108+ Get-ChildItem "$(Build.ArtifactStagingDirectory)" -Recurse -Force | % { Write-Host $_.FullName }
109+ displayName: Move artifact to $(Build.ArtifactStagingDirectory)
110+
111+ - task : EsrpRelease@7
112+ inputs :
113+ displayName : ' Publish oav to ESRP'
114+ ConnectedServiceName : ' Azure SDK Engineering System'
115+ ClientId : ' 5f81938c-2544-4f1f-9251-dd9de5b8a81b'
116+ KeyVaultName : ' AzureSDKEngKeyVault'
117+ AuthCertName : ' azure-sdk-esrp-release-auth-certificate'
118+ SignCertName : ' azure-sdk-esrp-release-sign-certificate'
119+ Intent : ' PackageDistribution'
120+ ContentType : ' npm'
121+ FolderLocation : $(Build.ArtifactStagingDirectory)
122+ Owners : ${{ coalesce(variables['Build.RequestedForEmail'], 'azuresdk@microsoft.com') }}
123+ Approvers : ' azuresdk@microsoft.com'
124+ ServiceEndpointUrl : ' https://api.esrp.microsoft.com'
125+ MainPublisher : ' ESRPRELPACMANTEST'
126+ DomainTenantId : ' 72f988bf-86f1-41af-91ab-2d7cd011db47'
127+ productstate : $(Tag)
0 commit comments