svg-layout-designer-react/azure-pipelines.yml
2022-11-21 16:41:48 +01:00

82 lines
No EOL
2.2 KiB
YAML

# Node.js with React
# Build a Node.js project that uses React.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
trigger:
- master
- v*
pool:
vmImage: ubuntu-latest
variables:
pnpm_config_cache: $(Pipeline.Workspace)/.pnpm-store
CSWebProjectLocation: '$(System.DefaultWorkingDirectory)/csharp/SVGLDLibs/SVGLDWebAPI/SVGLDWebAPI.csproj'
CSLibsProjectLocation: '$(System.DefaultWorkingDirectory)/csharp/SVGLDLibs/SVGLDLibs/SVGLDLibs.csproj'
CSLibsProjectModelsLocation: '$(System.DefaultWorkingDirectory)/csharp/SVGLDLibs/SVGLDLibs/Models'
buildConfiguration: 'Release'
steps:
- task: Cache@2
inputs:
key: 'pnpm | "$(Agent.OS)" | pnpm-lock.yaml'
path: $(pnpm_config_cache)
displayName: Cache pnpm
- bash: |
curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@7
pnpm config set store-dir $(pnpm_config_cache)
displayName: "Setup pnpm"
- task: NodeTool@0
inputs:
versionSpec: '18.x'
displayName: 'Install Node.js 18.x LTS'
- bash: |
set -euo pipefail
node --version
node ./test-server/http.js &
dotnet run --project=$(CSWebProjectLocation) &
jobs
sleep 10
pnpm i
pnpm run test:nowatch
pnpm run build
kill -2 %1 %2 2>/dev/null
displayName: 'Test on Node.js 18.x LTS'
- task: NodeTool@0
inputs:
versionSpec: '>=19.1.0'
displayName: 'Install Node.js Latest'
- bash: |
set -euo pipefail
node --version
node ./test-server/http.js &
dotnet run --project=$(CSWebProjectLocation) &
jobs
sleep 10
pnpm i
pnpm run test:nowatch
pnpm run build
kill -2 %1 %2 2>/dev/null
displayName: 'Test on Node.js Latest'
- bash: |
pnpm run linter
displayName: 'Run eslint on src'
- publish: $(System.DefaultWorkingDirectory)/dist
artifact: svg-layout-designer
- script: dotnet build $(CSLibsProjectLocation) --configuration $(buildConfiguration) --output $(build.artifactstagingdirectory)
displayName: 'dotnet build $(buildConfiguration)'
- publish: $(Build.ArtifactStagingDirectory)
artifact: svg-layout-designer-net
- publish: $(CSLibsProjectModelsLocation)
artifact: svg-layout-designer-net-source