trigger:
branches:
include:
- main
pool:
vmImage: 'ubuntu-latest'
variables:
- name: nodeVersion
value: '22.x'
stages:
- stage: BuildAndTest
displayName: 'Build'
jobs:
- job: Build
displayName: 'Build Package'
steps:
- task: NodeTool@0
displayName: 'Use Node.js $(nodeVersion)'
inputs:
versionSpec: '$(nodeVersion)'
- task: Cache@2
displayName: 'Cache node_modules'
inputs:
key: 'npm | "$(Agent.OS)" | package-lock.json'
restoreKeys: |
npm | "$(Agent.OS)"
npm
path: 'node_modules'
- script: npm ci
displayName: 'Install dependencies'
- script: npm run build
displayName: 'Build TypeScript'
- script: npm pack
displayName: 'Create NPM package'
condition: eq(variables['Build.SourceBranch'], 'refs/heads/main')
- task: PublishBuildArtifacts@1
displayName: 'Publish NPM package'
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
inputs:
pathtoPublish: '$(Build.SourcesDirectory)'
artifactName: 'npm'
publishLocation: 'Container'
# - stage: PublishPackage
# displayName: 'Publish to NPM'
# dependsOn: BuildAndTest
# condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
# jobs:
# - job: Publish
# displayName: 'Publish to NPM'
# steps:
# - task: NodeTool@0
# displayName: 'Use Node.js $(nodeVersion)'
# inputs:
# versionSpec: '$(nodeVersion)'
#
# - script: npm ci
# displayName: 'Install dependencies'
#
# - script: npm run build
# displayName: 'Build package'
#
# - script: |
# npm pack
# files=( ./*.tgz )
# npm publish "${files[0]}" --tag alpha
# env:
# NPM_TOKEN: $(NPM_TOKEN)
# displayName: 'Pack and publish to NPM'