vscode-makefile-tools/jobs/release.yml

100 строки
3.3 KiB
YAML

# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
parameters:
- name: SignTypeOverride
displayName: Signing Type Override
type: string
default: default
values:
- default
- test
- real
trigger: none
resources:
repositories:
- repository: self
type: git
ref: refs/heads/main
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release
name: $(Date:yyyyMMdd).$(Rev:r)
variables:
IsPreRelease: 0
# ReleaseVersion is set in the versions tab so it can be edited.
# VerifyNotice is set in the versions tab so it can be edited.
# VerifyChangelog is set in the versions tab so it can be edited.
TeamName: C++ Cross Platform and Cloud
# If the user didn't override the signing type, then only real-sign on main.
${{ if ne(parameters.SignTypeOverride, 'default') }}:
SignType: ${{ parameters.SignTypeOverride }}
${{ if and(eq(parameters.SignTypeOverride, 'default'), eq(variables['Build.SourceBranchName'], 'main')) }}:
SignType: real
${{ if and(eq(parameters.SignTypeOverride, 'default'), not(eq(variables['Build.SourceBranchName'], 'main'))) }}:
SignType: test
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
pool:
name: VSEngSS-MicroBuild2022-1ES
sdl:
sourceAnalysisPool:
name: VSEngSS-MicroBuild2022-1ES
customBuildTags:
- ES365AIMigrationTooling
stages:
- stage: stage
jobs:
- job: Job_1
displayName: Build release
templateContext:
outputs:
- output: pipelineArtifact
displayName: "Publish VSIX"
targetPath: $(Build.ArtifactStagingDirectory)/vsix
artifactName: vsix
sbomBuildDropPath: $(Build.ArtifactStagingDirectory)
# No need for the SBOM, it's now located in the vsix artifact
steps:
- checkout: self
clean: true
fetchTags: false
- task: CmdLine@2
displayName: Check ReleaseVersion
inputs:
script: |-
@echo off
if "$(ReleaseVersion)"=="unset" (
echo ^"ReleaseVersion^" was not set
exit /B 1
)
exit /b 0
- task: CmdLine@2
displayName: Check VerifyNotice
inputs:
script: |-
@echo off
if "$(VerifyNotice)"=="no" (
echo ^"VerifyNotice^" was not set. Set to 'yes' once the NOTICE.txt is confirmed to be up-to-date.
exit /B 1
)
exit /b 0
- task: CmdLine@2
displayName: Check VerifyChangelog
inputs:
script: |-
@echo off
if "$(VerifyChangelog)"=="no" (
echo ^"VerifyChangelog^" was not set. Set to 'yes' once the CHANGELOG is confirmed to be up-to-date.
exit /B 1
)
exit /b 0
- template: /jobs/shared/build.yml@self