https://github.com/screwdriver-cd/coverage-base
Base class defining the interface for code coverage implementations
https://github.com/screwdriver-cd/coverage-base
Last synced: 4 months ago
JSON representation
Base class defining the interface for code coverage implementations
- Host: GitHub
- URL: https://github.com/screwdriver-cd/coverage-base
- Owner: screwdriver-cd
- License: other
- Created: 2018-05-02T21:14:41.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2025-02-20T00:01:10.000Z (over 1 year ago)
- Last Synced: 2025-10-06T13:31:40.948Z (8 months ago)
- Language: JavaScript
- Homepage: https://cd.screwdriver.cd/pipelines/705
- Size: 56.6 KB
- Stars: 0
- Watchers: 16
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Coverage Base
[![Version][npm-image]][npm-url] ![Downloads][downloads-image] [![Build Status][status-image]][status-url] [![Open Issues][issues-image]][issues-url] ![License][license-image]
> Base class defining the interface for coverage upload implementations
## Usage
```bash
npm install screwdriver-coverage-base
```
## Interface
This is an interface for uploading code coverage results from a Screwdriver build to a code coverage server.
### getAccessToken
##### Required Parameters
| Parameter | Type | Description |
| :--------------- | :---- | :----------- |
| config | Object | |
| config.buildCredentials | Object | Information stored in the build JWT token |
| config.projectKey | String | Project key (can be directly passed in with just startTime and endTime) |
| config.scope | String | Coverage scope (pipeline or job) |
| config.username | String | Project username |
##### Expected Outcome
The `getAccessToken` function should resolve a Promise with an access token that build can use to talk to the code coverage server.
### getInfo
##### Required Parameters
| Parameter | Type | Description |
| :--------------- | :----- | :----------- |
| config | Object | |
| config.jobId | String | The unique ID for a job |
| config.jobName | String | The Screwdriver job name |
| config.pipelineId | String | The unique ID for a pipeline |
| config.pipelineName | String | The Screwdriver pipeline name |
| config.prNum | String | The pull request number |
| config.startTime | String | The job start time |
| config.endTime | String | The job end time |
| config.projectKey | String | Project key (can be directly passed in with just startTime and endTime) |
| config.prParentJobId | String | PR parent job ID |
| config.scope | String | Coverage scope (pipeline or job) |
##### Expected Outcome
The `getInfo` function should resolve a Promise with an object with metadata about the project coverage.
### getUploadCoverageCmd
##### Required Parameters
| Parameter | Type | Description |
| :--------------- | :----- | :----------- |
| config | Object | |
| config.build | String | The build |
| config.job | String | The job |
| config.pipeline | String | The pipeline |
##### Expected Outcome
The `getUploadCoverageCmd` function should resolve a Promise with a string of shell commands to upload code coverage results.
## Extending
To extend the base class, the functions to override are:
1. `_getAccessToken`
1. `_getInfo`
1. `_getUploadCoverageCmd`
## Testing
```bash
npm test
```
## Related links
See the [coverage-bookend](https://github.com/screwdriver-cd/coverage-bookend)
## License
Code licensed under the BSD 3-Clause license. See LICENSE file for terms.
[npm-image]: https://img.shields.io/npm/v/screwdriver-coverage-base.svg
[npm-url]: https://npmjs.org/package/screwdriver-coverage-base
[downloads-image]: https://img.shields.io/npm/dt/screwdriver-coverage-base.svg
[license-image]: https://img.shields.io/npm/l/screwdriver-coverage-base.svg
[issues-image]: https://img.shields.io/github/issues/screwdriver-cd/coverage-base.svg
[issues-url]: https://github.com/screwdriver-cd/coverage-base/issues
[status-image]: https://cd.screwdriver.cd/pipelines/705/badge
[status-url]: https://cd.screwdriver.cd/pipelines/705