# 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