Browse Source

Set up CI with Azure Pipelines (#596)

* Add support for Azure Pipelines
* Remove Travis CI support
* coverage: Generate cobertura and lcov reports only
* Add support for Code Climate
master
Futago-za Ryuu 2 years ago
committed by GitHub
parent
commit
bdde25a9e4
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 148 additions and 33 deletions
  1. +1
    -0
      .gitignore
  2. +6
    -2
      .nowignore
  3. +2
    -2
      .nycrc
  4. +0
    -23
      .travis.yml
  5. +3
    -1
      README.md
  6. +76
    -0
      azure-pipelines.yml
  7. +4
    -2
      package.json
  8. +3
    -1
      packages/pegjs/README.md
  9. +6
    -0
      test/config.json
  10. +2
    -0
      test/mocha.opts
  11. +45
    -2
      yarn.lock

+ 1
- 0
.gitignore View File

@ -9,3 +9,4 @@ node_modules
/website/js/*-bundle.js
/*.log
/sh.exe.stackdump
/test/junit-results.xml

+ 6
- 2
.nowignore View File

@ -1,5 +1,9 @@
.github
.idea
.nyc_output
node_modules
dist
coverage
dist
node_modules
.eslint*
.nycrc
azure-pipelines.yml

+ 2
- 2
.nycrc View File

@ -1,7 +1,7 @@
{
"include": [ "packages/**" ],
"reporter": [
"text",
"text-summary"
"cobertura",
"lcov"
]
}

+ 0
- 23
.travis.yml View File

@ -1,23 +0,0 @@
sudo: false
language: node_js
node_js:
- "6"
- "8"
- "10"
before_install:
- curl -o- -L https://yarnpkg.com/install.sh | bash
- export PATH="$HOME/.yarn/bin:$PATH"
install:
- yarn install --ignore-engines
after_success:
- yarn coverage
cache:
yarn: true
directories:
- node_modules

+ 3
- 1
README.md View File

@ -1,5 +1,7 @@
[![ci](https://img.shields.io/travis/pegjs/pegjs.svg)](https://travis-ci.org/pegjs/pegjs)
[![Build Status](https://dev.azure.com/pegjs/pegjs/_apis/build/status/Azure%20Pipelines?branchName=master)](https://dev.azure.com/pegjs/pegjs/_build/latest?definitionId=1?branchName=master)
[![Test Coverage](https://api.codeclimate.com/v1/badges/2d1f0313dea3e28e191f/test_coverage)](https://codeclimate.com/github/pegjs/pegjs/test_coverage)
[![coverage](https://img.shields.io/coveralls/github/pegjs/pegjs.svg)](https://coveralls.io/github/pegjs/pegjs)
[![Maintainability](https://api.codeclimate.com/v1/badges/2d1f0313dea3e28e191f/maintainability)](https://codeclimate.com/github/pegjs/pegjs/maintainability)
[![forum](https://gitq.com/badge.svg)](https://gitq.com/pegjs/pegjs)
[![license](https://img.shields.io/badge/license-mit-blue.svg)](https://opensource.org/licenses/MIT)


+ 76
- 0
azure-pipelines.yml View File

@ -0,0 +1,76 @@
name: $(BuildID)
trigger:
batch: true
paths:
exclude:
- CHANGELOG.md
- LICENSE
- README.md
pool:
vmImage: 'ubuntu-16.04'
variables:
- group: 'env-variables'
strategy:
maxParallel: 3
matrix:
Node 6:
node_version: 6.x
Node 8:
node_version: 8.x
Node 10:
node_version: 10.x
steps:
- task: NodeTool@0
inputs:
versionSpec: $(node_version)
displayName: 'Install Node.js'
- script: |
yarn install --ignore-engines
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
chmod +x ./cc-test-reporter
displayName: 'Install dependencies'
- script: |
./cc-test-reporter before-build
yarn ci 2> /dev/null
if [ $? -eq 0 ]
then
echo '"yarn ci" passed, publishing to code climate.'
./cc-test-reporter after-build --exit-code 0
exit 0
else
echo '"yarn ci" failed, publishing to code climate.'
./cc-test-reporter after-build --exit-code 1
exit 1
fi
displayName: 'Lint source code, Run unit tests & Publish to Code Climate'
env:
CC_TEST_REPORTER_ID: $(CC_TEST_REPORTER_ID)
GIT_BRANCH: $(Build.SourceBranch)
GIT_COMMIT_SHA: $(Build.SourceVersion)
- script: yarn coverage
displayName: 'Publish code coverage results (coveralls.io)'
env:
COVERALLS_SERVICE_NAME: $(COVERALLS_SERVICE_NAME)
COVERALLS_REPO_TOKEN: $(COVERALLS_REPO_TOKEN)
- task: PublishTestResults@2
displayName: 'Publish test results (Azure Pipelines)'
condition: succeededOrFailed()
inputs:
testRunner: JUnit
testResultsFiles: 'test/junit-results.xml'
- task: PublishCodeCoverageResults@1
displayName: 'Publish code coverage results (Azure Pipelines)'
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml'
reportDirectory: '$(System.DefaultWorkingDirectory)/coverage/lcov-report'

+ 4
- 2
package.json View File

@ -9,7 +9,7 @@
],
"scripts": {
"lint": "eslint --ext .js,.vue . docs/.vuepress",
"spec": "mocha --recursive",
"test": "nyc mocha --recursive",
"benchmark": "node tools/benchmark/node",
"build-docs": "vuepress build docs",
"watch-docs": "vuepress dev docs",
@ -19,7 +19,7 @@
"impact": "node tools/impact master",
"start": "node website/server.js",
"now-build": "npm run build-docs",
"test": "npm run lint && nyc mocha --recursive",
"ci": "npm run lint && npm run test",
"coverage": "nyc report --reporter=text-lcov | coveralls"
},
"devDependencies": {
@ -29,6 +29,8 @@
"eslint-config-futagozaryuu": "5",
"eslint-plugin-vue": "5",
"mocha": "5.2.0",
"mocha-junit-reporter": "1.18.0",
"mocha-multi-reporters": "1.1.7",
"vuepress": "next",
"nyc": "13.1.0"
},


+ 3
- 1
packages/pegjs/README.md View File

@ -1,5 +1,7 @@
[![ci](https://img.shields.io/travis/pegjs/pegjs.svg)](https://travis-ci.org/pegjs/pegjs)
[![Build Status](https://dev.azure.com/pegjs/pegjs/_apis/build/status/Azure%20Pipelines?branchName=master)](https://dev.azure.com/pegjs/pegjs/_build/latest?definitionId=1?branchName=master)
[![Test Coverage](https://api.codeclimate.com/v1/badges/2d1f0313dea3e28e191f/test_coverage)](https://codeclimate.com/github/pegjs/pegjs/test_coverage)
[![coverage](https://img.shields.io/coveralls/github/pegjs/pegjs.svg)](https://coveralls.io/github/pegjs/pegjs)
[![Maintainability](https://api.codeclimate.com/v1/badges/2d1f0313dea3e28e191f/maintainability)](https://codeclimate.com/github/pegjs/pegjs/maintainability)
[![license](https://img.shields.io/badge/license-mit-blue.svg)](https://opensource.org/licenses/MIT)
PEG.js is a simple parser generator for JavaScript that produces fast parsers with excellent error reporting. You can use it to process complex data or computer languages and build transformers, interpreters, compilers and other tools easily.


+ 6
- 0
test/config.json View File

@ -0,0 +1,6 @@
{
"reporterEnabled": "spec, mocha-junit-reporter",
"mochaJunitReporterReporterOptions": {
"mochaFile": "test/junit-results.xml"
}
}

+ 2
- 0
test/mocha.opts View File

@ -0,0 +1,2 @@
--reporter mocha-multi-reporters
--reporter-options configFile=test/config.json

+ 45
- 2
yarn.lock View File

@ -2103,6 +2103,11 @@ chardet@^0.7.0:
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
charenc@~0.0.1:
version "0.0.2"
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=
check-error@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
@ -2576,6 +2581,11 @@ cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
crypt@~0.0.1:
version "0.0.2"
resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
crypto-browserify@^3.11.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
@ -4459,7 +4469,7 @@ is-binary-path@^1.0.0:
dependencies:
binary-extensions "^1.0.0"
is-buffer@^1.1.5:
is-buffer@^1.1.5, is-buffer@~1.1.1:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
@ -5247,7 +5257,7 @@ lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5:
lodash@^4.16.4, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5:
version "4.17.11"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
@ -5451,6 +5461,15 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
md5@^2.1.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9"
integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=
dependencies:
charenc "~0.0.1"
crypt "~0.0.1"
is-buffer "~1.1.1"
mdurl@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
@ -5723,6 +5742,25 @@ mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@
dependencies:
minimist "0.0.8"
mocha-junit-reporter@1.18.0:
version "1.18.0"
resolved "https://registry.yarnpkg.com/mocha-junit-reporter/-/mocha-junit-reporter-1.18.0.tgz#9209a3fba30025ae3ae5e6bfe7f9c5bc3c2e8ee2"
integrity sha512-y3XuqKa2+HRYtg0wYyhW/XsLm2Ps+pqf9HaTAt7+MVUAKFJaNAHOrNseTZo9KCxjfIbxUWwckP5qCDDPUmjSWA==
dependencies:
debug "^2.2.0"
md5 "^2.1.0"
mkdirp "~0.5.1"
strip-ansi "^4.0.0"
xml "^1.0.0"
mocha-multi-reporters@1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/mocha-multi-reporters/-/mocha-multi-reporters-1.1.7.tgz#cc7f3f4d32f478520941d852abb64d9988587d82"
integrity sha1-zH8/TTL0eFIJQdhSq7ZNmYhYfYI=
dependencies:
debug "^3.1.0"
lodash "^4.16.4"
mocha@5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6"
@ -8947,6 +8985,11 @@ xdg-basedir@^3.0.0:
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=
xml@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5"
integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=
xtend@^4.0.0, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"


Loading…
Cancel
Save