diff --git a/.ci/.azure-pipelines-steps.yml b/.ci/.azure-pipelines-steps.yml new file mode 100644 index 000000000..9fba2758a --- /dev/null +++ b/.ci/.azure-pipelines-steps.yml @@ -0,0 +1,30 @@ +steps: +- script: npm i -g npm@$(npm_version) + displayName: Use legacy npm version $(npm_version) + condition: ne(variables['npm_version'], '') + +- task: NodeTool@0 + inputs: + versionSpec: '$(node_version)' + displayName: Use Node $(node_version) + +- script: npm install + displayName: npm install + +- script: npm run coveralls + env: + COVERALLS_REPO_TOKEN: $(COVERALLS_REPO_TOKEN_SECRET) + displayName: Run coveralls + condition: eq(variables['run_coveralls'], true) + +- script: npm test + displayName: Run tests + condition: ne(variables['run_coveralls'], true) + +- script: npm run azure-pipelines + displayName: Write tests to xml + +- task: PublishTestResults@2 + inputs: + testResultsFiles: '**/test.xunit' + condition: succeededOrFailed() diff --git a/.ci/.azure-pipelines.yml b/.ci/.azure-pipelines.yml new file mode 100644 index 000000000..28700a22c --- /dev/null +++ b/.ci/.azure-pipelines.yml @@ -0,0 +1,72 @@ +trigger: +- master +- releases/* + +jobs: + - job: Test_Linux + displayName: Run Tests on Linux + pool: + vmImage: "Ubuntu 16.04" + variables: + run_coveralls: true + strategy: + matrix: + Node_v10: + node_version: 10 + Node_v8: + node_version: 8 + Node_v6: + node_version: 6 + Node_v4: + node_version: 4 + Node_v0_12: + node_version: 0.12 + Node_v0_10: + node_version: 0.10 + steps: + - template: .azure-pipelines-steps.yml + + - job: Test_Windows + displayName: Run Tests on Windows + pool: + vmImage: vs2017-win2016 + strategy: + matrix: + Node_v10: + node_version: 10 + Node_v8: + node_version: 8 + Node_v6: + node_version: 6 + Node_v4: + node_version: 4 + npm_version: 2 + Node_v0_12: + node_version: 0.12 + npm_version: 2 + Node_v0_10: + node_version: 0.10 + npm_version: 2 + steps: + - template: .azure-pipelines-steps.yml + + - job: Test_MacOS + displayName: Run Tests on MacOS + pool: + vmImage: macos-10.13 + strategy: + matrix: + Node_v10: + node_version: 10 + Node_v8: + node_version: 8 + Node_v6: + node_version: 6 + Node_v4: + node_version: 4 + Node_v0_12: + node_version: 0.12 + Node_v0_10: + node_version: 0.10 + steps: + - template: .azure-pipelines-steps.yml diff --git a/.gitignore b/.gitignore index ac88dd1f0..cd1236f5f 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,6 @@ node_modules # Garbage files .DS_Store + +# Test results +xunit.xml diff --git a/package.json b/package.json index a4ce8bcaa..331ca3b33 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "lint": "eslint .", "pretest": "npm run lint", "test": "mocha --async-only", + "azure-pipelines": "mocha --async-only --reporter xunit -O output=test.xunit", "cover": "istanbul cover _mocha --report lcovonly", "coveralls": "npm run cover && istanbul-coveralls" },