11parameters :
2- vmImage : ' ubuntu-18.04'
3- parentJobs : []
4- matrix :
2+ - name : vmImage
3+ default : ' ubuntu-18.04'
4+ - name : channel
5+ type : string
6+ - name : release
7+ default : ' private'
58
69jobs :
7- - job : push
8- strategy :
9- matrix :
10- ${{ parameters.matrix }}
10+ - job : scan
11+ displayName : Scan ${{ parameters.channel }}
12+
1113 pool :
12- vmImage : ${{ parameters.vmImage }}
14+ vmImage : ubuntu-latest
1315
1416 variables :
15- ReleaseTag : edge/default
17+ - name : channel
18+ value : ${{ parameters.channel }}
19+
20+ steps :
21+ - checkout : self
22+ path : $(repoFolder)
23+ - checkout : ComplianceRepo
24+
25+ - task : DownloadBuildArtifacts@0
26+ displayName : ' Download Build Artifacts'
27+ inputs :
28+ downloadType : specific
29+ itemPattern : ' $(channel)/**/*.snap'
30+
31+ - template : EsrpScan.yml@ComplianceRepo
32+ parameters :
33+ scanPath : $(System.ArtifactsDirectory)
34+ pattern : |
35+ **/*.snap
36+ scanningService : ' pwshEsrpScanning'
37+
38+ - template : ./Approval.yml
39+ parameters :
40+ displayName : ' Approve ${{ parameters.channel }}-${{ parameters.release }} upload'
41+ instructions : ' Approving this will trigger the upload of the snap as "${{ parameters.channel }}-${{ parameters.release }}"'
42+ jobName : ' push_approval'
1643
44+ - job : push
1745 dependsOn :
18- ${{ parameters.parentJobs }}
46+ - push_approval
47+ - scan
48+
49+ displayName : Push to ${{ parameters.release }}
50+
51+ pool :
52+ vmImage : ${{ parameters.vmImage }}
53+
54+ variables :
55+ - name : ReleaseTag
56+ value : edge/default
57+ - group : SnapLogin
58+ - name : channel
59+ value : ${{ parameters.channel }}
1960
2061 steps :
62+ - checkout : self
63+
2164 - task : DownloadBuildArtifacts@0
2265 displayName : ' Download Build Artifacts'
2366 inputs :
2467 downloadType : specific
2568 itemPattern : ' $(channel)/**/*.snap'
2669
27- - powershell : |
70+ - pwsh : |
2871 $snaps = Get-ChildItem $(System.ArtifactsDirectory)/*.snap -recurse -File
2972 if($snaps.Count -gt 1)
3073 {
@@ -33,52 +76,54 @@ jobs:
3376 }
3477 displayName: Verify that only one snap was downloaded
3578
36- - powershell : |
79+ - pwsh : |
3780 [string]$Branch=$env:BUILD_SOURCEBRANCH
3881 $branchOnly = $Branch -replace '^refs/heads/';
3982 $branchOnly = $branchOnly -replace '[_\-]'
4083
41- if($branchOnly -eq 'master' -or $branchOnly -like '*dailytest*')
42- {
43- Write-verbose "release branch:" -verbose
44- $generatedBranch = (get-date).ToString('yyyyMMddHH')
45- $releaseTag = "edge/$generatedBranch"
46- $vstsCommandString = "vso[task.setvariable variable=ReleaseTag]$releaseTag"
47- Write-Verbose -Message "setting ReleaseTag to $releaseTag" -Verbose
48- Write-Host -Object "##$vstsCommandString"
49- }
50- else
51- {
52- Write-verbose "non-release branch" -verbose
53- # Branch is named <previewname>
54- $releaseTag = "edge/$branchOnly"
55- $vstsCommandString = "vso[task.setvariable variable=ReleaseTag]$releaseTag"
56- Write-Verbose -Message "setting ReleaseTag to $releaseTag" -Verbose
57- Write-Host -Object "##$vstsCommandString"
84+ if('${{ parameters.release }}' -eq 'private') {
85+ if($branchOnly -eq 'master' -or $branchOnly -like '*dailytest*')
86+ {
87+ Write-verbose "release branch:" $branchOnly -verbose
88+ $generatedBranch = (get-date).ToString('yyyyMMddHH')
89+ $releaseTag = "edge/$generatedBranch"
90+ }
91+ else
92+ {
93+ Write-verbose "non-release branch" -verbose
94+ # Branch is named <previewname>
95+ $releaseTag = "edge/$branchOnly"
96+ }
97+ } else {
98+ $releaseTag = "${{ parameters.release }}"
5899 }
100+
101+ $vstsCommandString = "vso[task.setvariable variable=ReleaseTag]$releaseTag"
102+ Write-Verbose -Message "setting ReleaseTag to $releaseTag" -Verbose
103+ Write-Host -Object "##$vstsCommandString"
59104 displayName: Set ReleaseTag Variable
60105
61- - powershell : |
106+ - pwsh : |
62107 sudo chown root:root /
63108 displayName: 'Make sure root owns root'
64109 condition: succeeded()
65110
66- - powershell : |
111+ - pwsh : |
67112 $channel = (Get-Content ./snapcraftConfig.json | ConvertFrom-Json).channel
68113 Write-Verbose -Verbose -Message "using Channel $channel"
69114 sudo snap install snapcraft --classic "--channel=$channel"
70115 condition: succeeded()
71116 displayName: 'Install snapcraft'
72117
73- - powershell : |
118+ - pwsh : |
74119 $loginFile='./snapstore.login'
75120
76121 '$(SNAPLOGIN)' | base64 --decode --ignore-garbage > $loginFile
77122 snapcraft login --with $loginFile
78123 rm $loginFile
79124 displayName: 'snapcraft login'
80125
81- - powershell : |
126+ - pwsh : |
82127 $track = 'latest'
83128 if('$(channel)' -eq 'lts')
84129 {
@@ -89,15 +134,15 @@ jobs:
89134
90135 foreach($snap in $snaps)
91136 {
92- snapcraft push --release "$track/$(ReleaseTag)" $snap
137+ Write-Verbose -Verbose -Message "Uploading $snap to $track/$(ReleaseTag)"
138+ snapcraft upload --release "$track/$(ReleaseTag)" $snap
93139 }
94- displayName: 'snapcraft push '
140+ displayName: 'snapcraft upload '
95141
96- - powershell : |
142+ - pwsh : |
97143 snapcraft logout
98144 displayName: 'snapcraft logout'
99145 condition: always()
100146
101147 - task : ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
102148 displayName : ' Component Detection'
103-
0 commit comments