Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New 1 #308

Open
wants to merge 53 commits into
base: coveralls-action
Choose a base branch
from
Open

New 1 #308

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
c202346
Fix Windows tests again.
XhmikosR Nov 21, 2019
ef51945
CI: Add Windows testing and lint
XhmikosR Nov 21, 2019
be79dab
CI: use `npm ci` on Node.js >=8.
XhmikosR Nov 21, 2019
0488f10
Tweak README.md
XhmikosR Nov 22, 2019
f58f8b9
README.md: Add GitHub Actions CI info.
XhmikosR Nov 22, 2019
07ef879
Fix logger regression.
XhmikosR Nov 22, 2019
bbe2de5
Update package.json
XhmikosR Nov 21, 2019
3a90b07
fix equality operator in logger.js
nickmerwin Nov 25, 2019
236529b
Update logger.js
nickmerwin Nov 25, 2019
33eccc3
Revert "CI: use `npm ci` on Node.js >=8."
XhmikosR Nov 26, 2019
4aa11a2
Remove snyk.
XhmikosR Nov 14, 2019
1bceeff
Revert #243.
XhmikosR Nov 21, 2019
50913ed
Remove the now unused istanbul and mocha-lcov-reporter devDependencies
XhmikosR Nov 21, 2019
2e2b108
bump version
nickmerwin Nov 26, 2019
eb1a3c9
278 Upgrades minimist dependency to 1.2.5
ashishkujoy Mar 18, 2020
8c4ba99
CI: switch to `actions/checkout@v2`
XhmikosR Dec 13, 2019
710c504
Add Codefresh support
suda Dec 11, 2019
3d83b4f
Set service_name and/or repo_token from .coveralls.yml regardless of …
benpetty Mar 19, 2020
5e976c5
Only coverage report on test success, fixes #230
AndreMiras Dec 7, 2019
2ea7be3
bump version
nickmerwin Mar 19, 2020
b010d3d
If COVERALLS_SERVICE_NUMBER is set, set service_number from it. (#208)
midgleyc Mar 19, 2020
21f476c
added COVERALLS_SERVICE_NUMBER to Readme; ver bump
nickmerwin Mar 19, 2020
7ffe6dc
Update getOptions.js
nickmerwin Apr 21, 2020
49d0f76
3.0.12
nickmerwin Apr 21, 2020
aaff7f8
fix test
nickmerwin Apr 21, 2020
2f2426b
pass flag_name to API post JSON
nickmerwin Apr 21, 2020
eaba7c6
3.0.13
nickmerwin Apr 21, 2020
ff21930
remove redundant code (#283)
lpinca Apr 22, 2020
3647673
Minor lint tweaks (#285)
XhmikosR Apr 23, 2020
1615297
GH Action workflow update (#287)
nickmerwin Apr 23, 2020
a0c6941
Move fixtures to test/fixtures. (#286)
XhmikosR Apr 23, 2020
59a57e2
Update safe dependencies and fix npm vulnerabilities (#284)
XhmikosR Apr 23, 2020
844d765
3.0.14
nickmerwin Apr 23, 2020
eb6dc35
Update sinon to v7.5.0. (#288)
XhmikosR Apr 24, 2020
705c3b5
Handle service_job_number for parallelism in Travis and CircleCI (#290)
nickmerwin Apr 24, 2020
2f95964
3.1.0
nickmerwin Apr 24, 2020
536f3c2
readme re: flag names, CircleCI Orb
nickmerwin Apr 24, 2020
55c64cb
update README with links to demo repo
nickmerwin Apr 24, 2020
14e8b44
readme typo
nickmerwin Apr 24, 2020
80bc04e
Minor CI tweaks
XhmikosR Apr 25, 2020
41df01b
Switch to `xo@0.24.0` for linting
XhmikosR Nov 14, 2019
fa8ab4c
tests: fix deprecation warning coming from `sinon.sandbox.create()`
XhmikosR Apr 25, 2020
affd0f0
Update sinon to v.8.x.
XhmikosR Apr 25, 2020
3f808ee
package.json: reorder properties and add homepage
XhmikosR Nov 30, 2019
f4dee84
Regenerate package-lock.json
XhmikosR May 1, 2020
65fd013
xo: make `handle-callback-err` an error.
XhmikosR May 1, 2020
21f7b1d
Update README.md
XhmikosR May 1, 2020
3bf6386
Bump ini from 1.3.5 to 1.3.7
dependabot[bot] Dec 10, 2020
9598930
Bump y18n from 4.0.0 to 4.0.1
dependabot[bot] Mar 29, 2021
326abbc
Bump lodash from 4.17.15 to 4.17.21
dependabot[bot] May 7, 2021
59643bc
Bump hosted-git-info from 2.8.8 to 2.8.9
dependabot[bot] May 9, 2021
79c97ba
Bump dot-prop from 4.2.0 to 4.2.1
dependabot[bot] Jun 29, 2021
565da5f
swap exec for execFile in fetchGitData
nickmerwin Jun 29, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
29 changes: 21 additions & 8 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,47 @@ env:
CI: true

jobs:
run:
name: Node ${{ matrix.node }}
runs-on: ubuntu-latest
test:
name: Node ${{ matrix.node }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
node: [6, 8, 10, 12]
node: [6, 8, 10, 12, 14]
os: [ubuntu-latest, windows-latest]

steps:
- name: Clone repository
uses: actions/checkout@v1
uses: actions/checkout@v2

- name: Set Node.js version
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node }}

- run: node --version
- run: npm --version

- name: Install npm dependencies
run: npm install # switch to `npm ci` when Node.js 6 support is dropped

- name: Run lint
run: npm run lint

- name: Run tests
run: npm run test-cov

- name: Coveralls
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
flag-name: ${{matrix.os}}-node-${{ matrix.node }}
parallel: true

finish:
needs: test
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true
16 changes: 0 additions & 16 deletions .jshintrc

This file was deleted.

4 changes: 0 additions & 4 deletions .snyk

This file was deleted.

159 changes: 103 additions & 56 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,91 +1,132 @@
# node-coveralls

[![Build Status][ci-image]][ci-url] [![Coverage Status][coveralls-image]][coveralls-url]
[![Known Vulnerabilities](https://snyk.io/test/github/nickmerwin/node-coveralls/badge.svg)](https://snyk.io/test/github/nickmerwin/node-coveralls)

[Coveralls.io](https://coveralls.io/) support for node.js. Get the great coverage reporting of coveralls.io and add a cool coverage button ( like the one above ) to your README.
[Coveralls.io](https://coveralls.io/) support for Node.js. Get the great coverage reporting of coveralls.io and add a cool coverage button (like the one above) to your README.

Supported CI services: [travis-ci](https://travis-ci.org/), [codeship](https://www.codeship.io/), [circleci](https://circleci.com/), [jenkins](http://jenkins-ci.org/), [Gitlab CI](http://gitlab.com/), [AppVeyor](http://appveyor.com/), [Buildkite](https://buildkite.com/)
## Supported CI services:

* [Travis CI](https://travis-ci.org/)
* [CodeShip](https://codeship.com/)
* [CircleCI](https://circleci.com/)
* [Jenkins](https://jenkins.io/)
* [Gitlab CI](https://gitlab.com/)
* [AppVeyor](https://www.appveyor.com/)
* [Buildkite](https://buildkite.com/)
* [GitHub Actions CI](https://github.com/features/actions)
* [CodeFresh](https://codefresh.io/)

## Installation:

Add the latest version of `coveralls` to your package.json:
```

```shell
npm install coveralls --save-dev
```

If you're using mocha, add `mocha-lcov-reporter` to your package.json:
```

```shell
npm install mocha-lcov-reporter --save-dev
```

## Usage:

This script ( `bin/coveralls.js` ) can take standard input from any tool that emits the lcov data format (including [mocha](http://mochajs.org/)'s [LCov reporter](https://npmjs.org/package/mocha-lcov-reporter)) and send it to coveralls.io to report your code coverage there.
This script `bin/coveralls.js` can take standard input from any tool that emits the lcov data format (including [mocha](https://mochajs.org/)'s [LCOV reporter](https://npmjs.org/package/mocha-lcov-reporter)) and send it to coveralls.io to report your code coverage there.

Once your app is instrumented for coverage, and building, you need to pipe the lcov output to `./node_modules/coveralls/bin/coveralls.js`.

This library currently supports [travis-ci](https://travis-ci.org/) with no extra effort beyond piping the lcov output to coveralls. However, if you're using a different build system, there are a few environment variables that are necessary:
* COVERALLS_SERVICE_NAME (the name of your build system)
* COVERALLS_REPO_TOKEN (the secret repo token from coveralls.io)
This library currently supports [Travis CI](https://travis-ci.org/) with no extra effort beyond piping the lcov output to coveralls. However, if you're using a different build system, there are a few **necessary** environment variables:

- `COVERALLS_SERVICE_NAME` (the name of your build system)
- `COVERALLS_REPO_TOKEN` (the secret repo token from coveralls.io)
- `COVERALLS_GIT_BRANCH` (the branch name)

There are optional environment variables for other build systems as well:
* COVERALLS_SERVICE_JOB_ID (an id that uniquely identifies the build job)
* COVERALLS_RUN_AT (a date string for the time that the job ran. RFC 3339 dates work. This defaults to your
build system's date/time if you don't set it.)
* COVERALLS_PARALLEL (more info here: https://docs.coveralls.io/parallel-build-webhook)
### [Jest](https://facebook.github.io/jest/)
- Install [jest](https://facebook.github.io/jest/docs/en/getting-started.html)
- Use the following to run tests and push files to coveralls:
```sh
jest --coverage --coverageReporters=text-lcov | coveralls
```
Check out an example [here](https://github.com/Ethan-Arrowood/harperdb-connect/blob/master/.travis.yml) which makes use of Travis-CI build stages

### [Mocha](http://mochajs.org/) + [Blanket.js](https://github.com/alex-seville/blanket)
- Install [blanket.js](http://blanketjs.org/)
- `COVERALLS_FLAG_NAME` (a flag name to differentiate jobs, e.g. Unit, Functional, Integration)
- `COVERALLS_SERVICE_NUMBER` (a number that uniquely identifies the build)
- `COVERALLS_SERVICE_JOB_ID` (an ID that uniquely identifies the build's job)
- `COVERALLS_SERVICE_JOB_NUMBER` (a number that uniquely identifies the build's job)
- `COVERALLS_RUN_AT` (a date string for the time that the job ran. RFC 3339 dates work. This defaults to your build system's date/time if you don't set it)
- `COVERALLS_PARALLEL` (set to `true` when running jobs in parallel, requires a completion webhook. More info here: <https://docs.coveralls.io/parallel-build-webhook>)

### GitHub Actions CI

If you are using GitHub Actions CI, you should look into [coverallsapp/github-action](https://github.com/coverallsapp/github-action).

Parallel runs example [workflow.yml](https://github.com/coverallsapp/coveralls-node-demo/blob/master/.github/workflows/workflow.yml)

### [CircleCI Orb](https://circleci.com/)

Here's our Orb for quick integration: [coveralls/coveralls](https://circleci.com/orbs/registry/orb/coveralls/coveralls)

Workflow example: [config.yml](https://github.com/coverallsapp/coveralls-node-demo/blob/master/.circleci/config.yml)

### [Travis-CI](https://travis-ci.org/)

Parallel jobs example: [.travis.yml](https://github.com/coverallsapp/coveralls-node-demo/blob/master/.travis.yml)

### [Jest](https://jestjs.io/)

- Install [jest](https://jestjs.io/docs/en/getting-started)
- Use the following to run tests and push files to coveralls on success:

```sh
jest --coverage && coveralls < coverage/lcov.info
```

Check out an example [here](https://github.com/Ethan-Arrowood/harperdb-connect/blob/master/.travis.yml) which makes use of Travis CI build stages

### [Mocha](https://mochajs.org/) + [Blanket.js](https://github.com/alex-seville/blanket)

- Install [blanket.js](https://github.com/alex-seville/blanket)
- Configure blanket according to [docs](https://github.com/alex-seville/blanket/blob/master/docs/getting_started_node.md).
- Run your tests with a command like this:

```sh
NODE_ENV=test YOURPACKAGE_COVERAGE=1 ./node_modules/.bin/mocha \
--require blanket \
--reporter mocha-lcov-reporter | ./node_modules/coveralls/bin/coveralls.js
```
### [Mocha](http://mochajs.org/) + [JSCoverage](https://github.com/fishbar/jscoverage)
```sh
NODE_ENV=test YOURPACKAGE_COVERAGE=1 ./node_modules/.bin/mocha \
--require blanket \
--reporter mocha-lcov-reporter | ./node_modules/coveralls/bin/coveralls.js
```

### [Mocha](https://mochajs.org/) + [JSCoverage](https://github.com/fishbar/jscoverage)

Instrumenting your app for coverage is probably harder than it needs to be (read [here](http://www.seejohncode.com/2012/03/13/setting-up-mocha-jscoverage/)), but that's also a necessary step.
Instrumenting your app for coverage is probably harder than it needs to be (read [here](http://seejohncode.com/2012/03/13/setting-up-mocha-jscoverage/)), but that's also a necessary step.

In mocha, if you've got your code instrumented for coverage, the command for a Travis CI build would look something like this:

In mocha, if you've got your code instrumented for coverage, the command for a travis build would look something like this:
```sh
YOURPACKAGE_COVERAGE=1 ./node_modules/.bin/mocha test -R mocha-lcov-reporter | ./node_modules/coveralls/bin/coveralls.js
```
Check out an example [Makefile](https://github.com/cainus/urlgrey/blob/master/Makefile) from one of my projects for an example, especially the test-coveralls build target. Note: Travis runs `npm test`, so whatever target you create in your Makefile must be the target that `npm test` runs (This is set in package.json's 'scripts' property).

Check out an example [Makefile](https://github.com/cainus/urlgrey/blob/master/Makefile) from one of my projects for an example, especially the test-coveralls build target. Note: Travis CI runs `npm test`, so whatever target you create in your Makefile must be the target that `npm test` runs (This is set in package.json's `scripts` property).

### [Istanbul](https://github.com/gotwarlost/istanbul)

**With Mocha:**
#### With Mocha:

```sh
istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage
```

**With Jasmine:**
#### With Jasmine:

```sh
istanbul cover jasmine-node --captureExceptions spec/ && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage
```

### [Nodeunit](https://github.com/caolan/nodeunit) + [JSCoverage](https://github.com/fishbar/jscoverage)

Depend on nodeunit, jscoverage and coveralls:
Depend on nodeunit, jscoverage, and coveralls:

```sh
npm install nodeunit jscoverage coveralls --save-dev
```

Add a coveralls script to "scripts" in your `package.json`:

```javascript
```json
"scripts": {
"test": "nodeunit test",
"coveralls": "jscoverage lib && YOURPACKAGE_COVERAGE=1 nodeunit --reporter=lcov test | coveralls"
Expand All @@ -100,61 +141,67 @@ Run your tests with a command like this:
npm run coveralls
```

For detailed instructions on requiring instrumented code, running on Travis and submitting to coveralls [see this guide](https://github.com/alanshaw/nodeunit-lcov-coveralls-example).
For detailed instructions on requiring instrumented code, running on Travis CI and submitting to coveralls [see this guide](https://github.com/alanshaw/nodeunit-lcov-coveralls-example).

### [Poncho](https://github.com/deepsweet/poncho)
Client-side JS code coverage using [PhantomJS](https://github.com/ariya/phantomjs), [Mocha](http://mochajs.org/) and [Blanket](https://github.com/alex-seville/blanket):
- [Configure](http://mochajs.org/#running-mocha-in-the-browser) Mocha for browser
- [Mark](https://github.com/deepsweet/poncho#usage) target script(s) with `data-cover` html-attribute

Client-side JS code coverage using [PhantomJS](https://github.com/ariya/phantomjs), [Mocha](https://mochajs.org/) and [Blanket](https://github.com/alex-seville/blanket):

- [Configure](https://mochajs.org/#running-mocha-in-the-browser) Mocha for browser
- [Mark](https://github.com/deepsweet/poncho#usage) target script(s) with `data-cover` HTML attribute
- Run your tests with a command like this:

```sh
./node_modules/.bin/poncho -R lcov test/test.html | ./node_modules/coveralls/bin/coveralls.js
```
```sh
./node_modules/.bin/poncho -R lcov test/test.html | ./node_modules/coveralls/bin/coveralls.js
```

### [Lab](https://github.com/hapijs/lab)

```sh
lab -r lcov | ./node_modules/.bin/coveralls
```

### [nyc](https://github.com/bcoe/nyc)
### [nyc](https://github.com/istanbuljs/nyc)

works with almost any testing framework. Simply execute
Works with almost any testing framework. Simply execute
`npm test` with the `nyc` bin followed by running its reporter:

```
```shell
nyc npm test && nyc report --reporter=text-lcov | coveralls
```

### [TAP](https://github.com/isaacs/node-tap)
### [TAP](https://github.com/tapjs/node-tap)

Simply run your tap tests with the `COVERALLS_REPO_TOKEN` environment
variable set and tap will automatically use `nyc` to report
coverage to coveralls.

### Command Line Parameters

```shell
Usage: coveralls.js [-v] filepath
```

#### Optional arguments:

-v, --verbose

filepath - optionally defines the base filepath of your source files.
- `-v`, `--verbose`
- `filepath` - optionally defines the base filepath of your source files.

## Running locally

If you're running locally, you must have a `.coveralls.yml` file, as documented in [their documentation](https://coveralls.io/docs/ruby), with your `repo_token` in it; or, you must provide a `COVERALLS_REPO_TOKEN` environment-variable on the command-line.
If you're running locally, you must have a `.coveralls.yml` file, as documented in [their documentation](https://docs.coveralls.io/ruby-on-rails#configuration), with your `repo_token` in it; or, you must provide a `COVERALLS_REPO_TOKEN` environment variable on the command-line.

If you want to send commit data to coveralls, you can set the `COVERALLS_GIT_COMMIT` environment-variable to the commit hash you wish to reference. If you don't want to use a hash, you can set it to `HEAD` to supply coveralls with the latest commit data. This requires git to be installed and executable on the current PATH.

## Contributing

I generally don't accept pull requests that are untested or break the build, because I'd like to keep the quality high (this is a coverage tool after all!).

I also don't care for "soft-versioning" or "optimistic versioning" (dependencies that have ^, x, > in them, or anything other than numbers and dots). There have been too many problems with bad semantic versioning in dependencies, and I'd rather have a solid library than a bleeding-edge one.


[ci-image]: https://github.com/nickmerwin/node-coveralls/workflows/Tests/badge.svg
[ci-url]: https://github.com/nickmerwin/node-coveralls/actions?workflow=Tests

[coveralls-image]: https://coveralls.io/repos/nickmerwin/node-coveralls/badge.svg?branch=master&service=github
[coveralls-url]: https://coveralls.io/github/nickmerwin/node-coveralls?branch=master

## Contributing

I generally don't accept pull requests that are untested, or break the build, because I'd like to keep the quality high (this is a coverage tool afterall!).

I also don't care for "soft-versioning" or "optimistic versioning" (dependencies that have ^, x, > in them, or anything other than numbers and dots). There have been too many problems with bad semantic versioning in dependencies, and I'd rather have a solid library than a bleeding edge one.