Files
vscode-cpptools/Build/package/jobs_package_vsix.yml
T
Sean McManus 886008ce84 Stop using yarn with extension pack (#14278)
* Use npm instead of yarn for the extension package vsix.
2026-03-16 11:20:36 -07:00

85 lines
2.9 KiB
YAML

parameters:
- name: vsixName
type: string
default: ''
- name: srcDir
type: string
default: ''
- name: signType
type: string
default: 'real'
jobs:
- job: package
displayName: Build ${{ parameters.vsixName }}.vsix
timeoutInMinutes: 30
cancelTimeoutInMinutes: 1
templateContext:
mb: # Enable the MicroBuild Signing toolset
signing:
enabled: true
signType: ${{ parameters.signType }}
zipSources: false
${{ if eq(parameters.signType, 'real') }}:
signWithProd: true
featureFlags:
autoBaseline: false
outputs:
- output: pipelineArtifact
displayName: '${{ parameters.vsixName }}.vsix'
targetPath: $(Build.ArtifactStagingDirectory)\vsix
artifactName: vsix
steps:
- checkout: self
- task: UseNode@1
displayName: Use Node 22.x
inputs:
version: 22.x
- script: IF EXIST %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc del %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc
displayName: Delete .npmrc if it exists
- task: Bash@3
displayName: Build files
inputs:
targetType: 'inline'
script: |
export SRC_DIR=$(echo $BUILD_SOURCESDIRECTORY | sed 's|\\|/|g')
cd "$SRC_DIR/${{ parameters.srcDir }}"
npm install
if [ $? -ne 0 ]; then
echo "npm install failed, sleeping for 30s before retrying..."
sleep 30
exit 1
fi
retryCountOnTaskFailure: 3
- script: mkdir $(Build.ArtifactStagingDirectory)\vsix
displayName: Create Staging Directory
- script: |
cd $(Build.SourcesDirectory)\${{ parameters.srcDir }}
npx @vscode/[email protected] package -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.vsix
displayName: Run VSCE to package vsix
# sign the vsix
- script: npx @vscode/[email protected] generate-manifest -i $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.vsix -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.manifest
displayName: generate manifest
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
- script: copy $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.manifest $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.signature.p7s
displayName: prepare manifest for signing
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
- task: NuGetToolInstaller@1
displayName: Install NuGet
- task: NuGetAuthenticate@1
displayName: Authenticate NuGet
- script: nuget restore $(Build.SourcesDirectory)\Build\signing\SignVsix.proj -PackagesDirectory $(Build.SourcesDirectory)\Build\signing\packages -ConfigFile $(Build.SourcesDirectory)\Build\signing\NuGet.config
displayName: Restore MicroBuild Core
- task: MSBuild@1
displayName: Sign the vsix
inputs:
solution: $(Build.SourcesDirectory)\Build\signing\SignVsix.proj
msbuildArguments: /p:SignType=${{ parameters.signType }}