ci: Replace Travis and Appveyor CIs by a GitHub Workflow
authorManuel Nickschas <sputnick@quassel-irc.org>
Thu, 18 Jun 2020 17:28:27 +0000 (19:28 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Thu, 18 Jun 2020 19:43:46 +0000 (21:43 +0200)
commit8c0f742c0d1732cde866011b56fa5d1725e0d668
tree51860caa8140d6a3f5eca33b0e3fe65df41d5bba
parentc9d498c1d165c23cb854a8fbe9482a9289029071
ci: Replace Travis and Appveyor CIs by a GitHub Workflow

Replace the previous CI systems by a GitHub Workflow for all supported
platforms. This unifies the full CI setup in a single place, and
provides better integration into GitHub itself via the checks API.

Additionally, GitHub provides us with more resources than the other
systems, enabling more parallel and faster build jobs. As a result,
we can afford a larger build matrix than before, and now cover
additional Linux baselines. Unlike Appveyor, GitHub also parallelizes
Windows build jobs, which resolves the huge bottleneck we had
when pushing multiple PRs or branches.

The total turnaround time is still dominated by the Windows build,
but at around 15 minutes it is much faster than before.

GitHub also has a sane retention policy that keeps temporary artifacts
around for several months, and won't run out of space during active
development times like Appyevor did.

For tagged commits, a draft release is automatically created and the
source archive as well as packages for Windows and macOS are attached.
The tag annotation is used for the release notes. Releasing as a
draft allows for final, manual changes before publishing the release.

Note that this change should also enable CI runs in forks, so
contributors can enjoy CI feedback while developing, prior to creating
a pull request.
.appveyor.ini [deleted file]
.appveyor.yml [deleted file]
.craftsettings.ini [new file with mode: 0644]
.github/workflows/main.yml [new file with mode: 0644]
.travis.yml [deleted file]