keyborg/azure-pipelines.yml

89 строки
3.0 KiB
YAML

# Variable 'prerelease' was defined in the Variables tab
# Variable 'prereleaseTag' was defined in the Variables tab
# Variable 'publishVersion' was defined in the Variables tab
variables:
- group: 'Github and NPM secrets'
- name: tags
value: production,externalfacing
resources:
repositories:
- repository: 1esPipelines
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
extends:
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
parameters:
pool:
name: Azure-Pipelines-1ESPT-ExDShared
image: windows-latest
os: windows # We need windows because compliance task only run on windows.
stages:
- stage: main
jobs:
- job: Release
pool:
name: '1ES-Host-Ubuntu'
image: '1ES-PT-Ubuntu-20.04'
os: linux
workspace:
clean: all
templateContext:
outputs:
- output: pipelineArtifact
targetPath: $(System.DefaultWorkingDirectory)
artifactName: output
steps:
- checkout: self
clean: true
- task: CmdLine@2
displayName: Re-attach head
inputs:
script: |
git checkout --track "origin/${BUILD_SOURCEBRANCH//refs\/heads\/}"
git pull
- task: NodeTool@0
displayName: Use Node 16.x
inputs:
versionSpec: 16.x
- task: Npm@1
displayName: npm install
inputs:
verbose: false
- task: CmdLine@2
displayName: Authenticate git for pushes
inputs:
script: >-
git config user.name "Keyborg Build"
git config user.email "fluentui-internal@service.microsoft.com"
git remote set-url origin https://$(githubUser):$(githubPAT)@github.com/microsoft/keyborg.git
- task: CmdLine@2
displayName: Write npmrc for publish token
inputs:
script: echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' > .npmrc
- task: CmdLine@2
displayName: Publish (official)
condition: eq(variables.prerelease, false)
inputs:
script: 'npm run release -- $(publishVersion) --ci '
env:
NPM_TOKEN: $(npmToken)
- task: CmdLine@2
displayName: Publish (prerelease)
condition: eq(variables.prerelease, true)
inputs:
script: npm run release -- $(publishVersion) --preRelease $(prereleaseTag) --ci
env:
NPM_TOKEN: $(npmToken)