This repository was archived by the owner on May 13, 2019. It is now read-only.
This repository was archived by the owner on May 13, 2019. It is now read-only.
Proposal for nightly code coverage run #36
Closed
Description
We'd like to get code coverage run every night and published to codecoverage.nodejs.org
There has been some great work done already as discussed in:
#31
To produce these coverage results, we believe the steps are as follows:
- Move the patches in https://github.com/addaleax/node-core-coverage to https://github.com/nodejs/testing/coverage
- Create a jenkins job (initially for master) which builds Node.js with code coverage enabled. This job will initially use the patches from https://github.com/nodejs/testing/coverage and will build Node.js and run the core Node.js tests (test-ci target). It will be configurable so that it can be run on any particular branch. (this job takes about 15-20 minutes to run)
- Make the jenkins job push the resulting coverage html files to a directory on the local machine. We will assume the coverage job will be only run for x86 and will run on the Benchmarking machine.
- Setup an hourly job on the website infra which will pull the coverage files from the benchmarking machine and put them in the correct place for them to be viewed from coverage.nodejs.org. The files will be in a directory that matches the date of the run so that coverage can be compared across time.
- In order to avoid ongoing conflicts between the patches and the Node.js source, move as many of the changes applied by the patches into the Node.js build files themselves.
- Configure backups so that historical data is maintained and can be recovered if the benchmarking machine needs to be re-imaged. Each run seems to take about 12MB.
- Decide how many days of data we can afford to retain.
- Consider if we need results for more branches than master and add jobs for those branches as appropriate.
- Look at adding additional tests to what is run in order to get a more complete picture of our coverage (for example running CITGM in addition to the base Node.js tests)
- Add in automatic triggers to send emails to the testing team when coverage drops by more than X%
- Analyse the results and look for gaps in coverage and submit new tests to close any coverage gaps
If we agree this is the right thing to do and we should move forward I'll volunteer to start working on these steps. I've talked to @mhdawson and he can help out with the parts that require creating jenkins jobs.
Metadata
Metadata
Assignees
Labels
No labels