Commit graph

364 commits

Author SHA1 Message Date
meme
23b23cee5a Build: Support non-i686 toolchains
* Add SERENITY_ARCH option to CMake for selecting the target toolchain
* Port all build scripts but continue to use i686
* Update GitHub Actions cache to include BuildIt.sh
2020-12-29 17:42:04 +01:00
Andrew Kaster
207ecf454a CI: Prevent MacOS Lagom test failures from failing the build.
Also, switch to macos-10.15 runners. They are not as experimental, and
seem to spin up much faster than the Big Sur ones.
2020-12-28 19:35:32 +01:00
Luke
3bdaba0b28 Meta: Add macOS workflow to CI
A good number of contributors use macOS. However, we have a bit of
a tendency of breaking the macOS build without realising it.

Luckily, GitHub Actions does actually supply macOS environments,
so let's use it.
2020-12-28 19:35:32 +01:00
Linus Groh
fec7501d1a Meta: Run lint-prettier.sh on CI 2020-12-27 21:25:27 +01:00
Luke
6d4fd02b92 Meta: Set two minute timeout for CMake tests
CMake tests usually takes ~40 seconds. However, sometimes it deadlocks
and is only timed out after the 6 hour time limit.

Let's set a 2 minute timeout to make it fail sooner. 2 minutes instead
of 1 for good measure.
2020-12-24 21:05:25 +01:00
Nico Weber
a1d3f9e81e
CI: Use Ninja for building (#4293)
Makes watching build output on Actions on PRs slightly more pleasant.
2020-12-02 10:45:16 +01:00
Luke
5c911ad4b1 Meta: Add GitHub Actions workflow for Lagom with Fuzzers
There are cases where Lagom will build with GCC but not Clang.
This often goes unnoticed for a while as we don't often build with
Clang.

However, this is now important to test in CI because of the
OSS-Fuzz integration.

Note that this only tests the build, it does not run any tests.
Note that it also only builds LagomCore, Lagom and the fuzzers.
It does not build the other programs that use Lagom.
2020-11-29 20:22:56 +01:00
Brian Gianforcaro
f0bf723424 Meta: Enable CodeQL static analysis for Serenity
CodeQL is a static analysis technology that was purchased by GitHub
and has been tightly integrated into the platform. It's different
from most other static analysis solutions because it's based on a
database built from your codebase, and then language specific rules
can be executed against that database. The rules are fully user
extensible, and are written in a datalog/query language.

The default cpp language rules coming from CodeQL will probably find
some issues, the ability to easily write custom rules/queries will
lend it self nicely to allowing us to validate Serenity specific
semantics are followed throughout the code.

References:
- https://www.youtube.com/watch?v=AMzGorD28Ks
- https://securitylab.github.com/tools/codeql
2020-11-26 09:48:21 +01:00
Ben Wiederhake
ef9ac8a8a2 Meta: Use SerenityBot for IRC notifications
This avoids "useless" join/part notifications.
2020-11-14 15:30:29 +01:00
Ben Wiederhake
80d1e12116 Meta: Let toolchain patches invalidate toolchain cache
Fixes #4072.
2020-11-14 15:30:29 +01:00
Ben Wiederhake
58b70e8dc8 Meta: Fix broken IRC notification for drafts and skips 2020-11-14 13:16:48 +01:00
Ben Wiederhake
cf9419fc4f Meta: Nicer IRC notifications 2020-11-13 08:56:56 +01:00
Ben Wiederhake
90f55e607d Meta: Ensure availability of python 2020-11-13 08:56:56 +01:00
Ben Wiederhake
a0e25b2d31 Meta: Enable Github Actions 2020-11-08 09:58:55 +01:00