I have worked a while to make test coverage services like CodeCov and CoverAlls working with TDengine two years ago. At that time, Travis is still the first choice as a free and online CI service. I remember that is not much pain to make Travis/CodeCov/CoverAlls/CoverityScan work together. In the following days, my colleague took over the maintenance and move the CI from public to self-host for many reasons. One of the key reasons is Travis (and a few other counterparts) is no more free.

As a repo named ‘taos-tools’ split from TDengine, and as a TDengine’s submodule, the CI and test became a little complicated. I need to find a way to have more confidence to submit the code to TDengine and avoid worrying about its failure waste my few hours. I see GitHub action could be a good choice. Free, flexible, and easy-github-integration of cause.

Yes, making GitHub action work with a GitHub repo is very easy, stand to reason. But making other services work with GitHub action is not.

Many of them were mature to work with Travis or CircleCI or AppVeyor. So even some of them don’t provide enough documents for GitHub integration.

In the beginning time, I use a GitHub action workflow to make CodeCov work. Pretty easy. But after some more steps were added, I found it does not fully work. I mean, most parts still work but the most important function showing which code block be tested does not. After a few days of searching, I gave up. I have no clue at all.

Then I have to re-enable Coveralls. It was a pain since it is that one of “even some of them don’t provide enough document”. After countless tries, finally, it works. Not perfect, but what I need, including tested code coverage and badge works now.

Then I can use it to find out what test needs to be added. The workflow is located at here if you are interested.