Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch to using GitHub Actions as CI provider
GitLab has repeatedly messed with webhooks, repository mirroring, and CI itself in sinister ways that silently broke our CI from one day to the next, without any advance notice, acknowledgment, or even hint what they have done this time. On top of that, debugging their solution is a nightmare and time sink, because they provide virtually no insight into what is going on (at least not without involvement of third party services) and their API endpoints may just indicate success and still do nothing. This time it appears that they decided to remove "pull" mirroring from the free tier altogether, meaning that we can no longer keep code on GitLab in sync with that on GitHub, assuming it is being pushed to the latter. That renders their product entirely useless for our intents and purposes. To that end, this change switches over to using GitHub Actions as the CI provider. While there are some direct advantages to this switch, such as the much faster compilation and proper pull request integration, their artifact upload is unusable for our intents and purposes. Uploaded artifacts are seemingly always exposed as a zip archive and there is no way to link to the most recent artifact. For us that means that code coverage can no longer directly rely on generated HTML artifacts. As such, we have to switch over to relying on codecov.io as the service to which we upload collected data to be visualized. Because GitHub Actions modules are readily available for usage of Tarpaulin, we switch from kcov to Tarpaulin for coverage assessment (a step which we had intended on doing irrespectively at some point anyway). We considered the usage of grcov, which has the potential to provide more accurate coverage information, but at this point overall toolchain support seems to be in its infancy, with rustc panicking all over the place, making Tarpaulin the better choice. Aside from that those two changes, the provided CI functionality should be largely identical.
- Loading branch information