name: '2.0$(rev:.r)'
trigger:
- main
- feature/*
- features/*
- bugfix/*
pool:
vmImage: 'ubuntu-latest'
stages:
- stage: 'Build'
displayName: 'Build'
jobs:
- job:
steps:
- task: NodeTool@0
inputs:
versionSpec: '16.x'
displayName: 'Install Node.js'
- template: build-and-test.yml
parameters:
path: task/v2
name: Gitleaks V2
- task: TfxInstaller@3
displayName: 'Use Node CLI for Azure DevOps'
inputs:
version: '0.9.x'
checkLatest: true
- task: PackageAzureDevOpsExtension@3
displayName: 'Package Extension: $(Build.SourcesDirectory)'
name: 'packageStep'
inputs:
rootFolder: '$(Build.SourcesDirectory)'
outputPath: '$(Build.ArtifactStagingDirectory)/foxholenl-gitleaks.vsix'
publisherId: 'foxholenl'
extensionId: 'Gitleaks'
extensionName: 'Gitleaks'
extensionTag: '-build'
extensionVersion: '$(Build.BuildNumber)'
extensionVisibility: private
- task: PublishPipelineArtifact@1
displayName: 'Publish vsix'
inputs:
publishLocation: pipeline
targetPath: '$(packageStep.Extension.OutputPath)'
artifact: 'vsix'
condition: succeededOrFailed()
- stage: Test
displayName: 'Publish to Marketplace (private)'
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
dependsOn: 'Build'
jobs:
- deployment:
environment: Test
strategy:
runOnce:
deploy:
steps:
- task: TfxInstaller@3
displayName: 'Use Node CLI for Azure DevOps'
inputs:
version: '0.9.x'
checkLatest: true
- task: PublishAzureDevOpsExtension@3
name: 'PublishTest'
inputs:
connectTo: 'VsTeam'
connectedServiceName: 'Marketplace'
fileType: 'vsix'
vsixFile: '$(Pipeline.Workspace)/vsix/foxholenl-gitleaks.vsix'
publisherId: 'foxholenl'
extensionId: 'Gitleaks'
extensionTag: '-dev'
updateTasksVersion: false
extensionVisibility: 'privatepreview'
shareWith: 'foxholenl'
noWaitValidation: true
- stage: Production
displayName: 'Publish to Marketplace (Public)'
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
dependsOn: 'Test'
jobs:
- deployment:
environment: Production
strategy:
runOnce:
deploy:
steps:
- task: TfxInstaller@3
displayName: 'Use Node CLI for Azure DevOps'
inputs:
version: '0.9.x'
checkLatest: true
- task: PublishAzureDevOpsExtension@3
name: 'PublishProd'
inputs:
connectTo: 'VsTeam'
connectedServiceName: 'Marketplace'
fileType: 'vsix'
vsixFile: '$(Pipeline.Workspace)/vsix/foxholenl-gitleaks.vsix'
publisherId: 'foxholenl'
extensionId: 'Gitleaks'
updateTasksVersion: false
extensionVisibility: 'public'
noWaitValidation: true