66
66
displayName : Use Node 16.x
67
67
inputs :
68
68
versionSpec : 16.x
69
- - script : npm install --global gulp node-gyp vsce
69
+ - script : npm install --global gulp node-gyp @vscode/ vsce
70
70
displayName : Install global dependencies
71
71
- script : npm install
72
72
displayName : Install project dependencies
@@ -87,15 +87,19 @@ steps:
87
87
# Pack the extension now even though it's unsigned so that we ignore files
88
88
# from .vscodeignore. This will reduce load on the signing server later and
89
89
# ensure we only attempt to sign shipping files.
90
- - script : vsce package --out vscode-arduino.vsix
90
+ - script : node build/ package.js
91
91
displayName : Build and pack extension
92
92
93
- # Extract the VSIX, sign what we can, then pack it back up and publish it.
94
- - task : ExtractFiles@1
93
+ # Extract the VSIXes, sign what we can, then pack it back up and publish it.
94
+ - pwsh : |
95
+ $path = Join-Path $Env:TEMP "7z-installer.exe"
96
+ Invoke-WebRequest https://www.7-zip.org/a/7z2201-x64.exe -OutFile $path
97
+ Start-Process -FilePath $path -Args "/S" -Verb RunAs -Wait
98
+ Remove-Item $path
99
+ Echo "##vso[task.prependpath]$Env:PROGRAMFILES\7-Zip\"
100
+ displayName: Install 7zip
101
+ - pwsh : Get-ChildItem out\vsix | Foreach-Object { 7z x $_.FullName -o$(Build.StagingDirectory)\vscode-arduino\$($_.BaseName) }
95
102
displayName : Extract extension for signing
96
- inputs :
97
- archiveFilePatterns : vscode-arduino.vsix
98
- destinationFolder : $(Build.StagingDirectory)\vscode-arduino
99
103
- task : NuGetToolInstaller@1
100
104
displayName : Install NuGet
101
105
- task : NuGetAuthenticate@0
@@ -111,23 +115,21 @@ steps:
111
115
msbuildArguments : /p:SignType=$(SignType)
112
116
# MicroBuild signing will always fail on public PRs.
113
117
condition : ne(variables['Build.Reason'], 'PullRequest')
114
- - task : ArchiveFiles@2
118
+ - pwsh : |
119
+ Get-ChildItem -Directory $(Build.StagingDirectory)\vscode-arduino | Foreach-Object { 7z a ($_.FullName + ".vsix") ($_.FullName + "\*") -tzip }
120
+ New-Item -Path $(Build.StagingDirectory)\vscode-arduino\vsix -ItemType Directory
121
+ Get-Item $(Build.StagingDirectory)\vscode-arduino\*.vsix | Move-Item -Destination $(Build.StagingDirectory)\vscode-arduino\vsix
115
122
displayName: Pack signed files
116
- inputs :
117
- rootFolderOrFile : $(Build.StagingDirectory)\vscode-arduino
118
- includeRootFolder : false
119
- archiveType : zip
120
- archiveFile : $(Build.StagingDirectory)\vscode-arduino.vsix
121
123
- task : MSBuild@1
122
- displayName : Sign VSIX
124
+ displayName : Sign VSIXes
123
125
inputs :
124
126
solution : .\build\SignVsix.proj
125
127
msbuildArguments : /p:SignType=$(SignType)
126
128
# MicroBuild signing will always fail on public PRs.
127
129
condition : ne(variables['Build.Reason'], 'PullRequest')
128
- - publish : $(Build.StagingDirectory)\vscode-arduino. vsix
129
- artifact : VS Code extension VSIX
130
- displayName : Publish extension VSIX as artifact
130
+ - publish : $(Build.StagingDirectory)\vscode-arduino\ vsix
131
+ artifact : VS Code extension VSIXes
132
+ displayName : Publish extension VSIXes as artifact
131
133
132
134
# Install the Arduino IDE and run tests.
133
135
- script : curl -LO https://downloads.arduino.cc/arduino-1.8.19-windows.zip
@@ -186,7 +188,7 @@ steps:
186
188
action : create
187
189
target : $(Build.SourceVersion)
188
190
tagSource : auto
189
- assets : $(Build.StagingDirectory)\vscode-arduino.vsix
191
+ assets : $(Build.StagingDirectory)\vscode-arduino\vsix\* .vsix
190
192
isPreRelease : $[contains(variables['Build.SourceBranch'], '-rc')]
191
193
condition : and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags'))
192
194
0 commit comments