Commit graph

80 commits

Author SHA1 Message Date
Idan Horowitz 4fb962a0b9 CI: Add x86_64 on target tests 2021-07-01 22:42:54 +02:00
Idan Horowitz 97ea192e3e CI: Cancel duplicate workflow runs for pull requests
These are created when a pull request is force-pushed to, which results
in the unneeded waste of action runners on the obsolete CI run.
2021-07-01 18:26:32 +02:00
Idan Horowitz f3197faf39 CI: Increase the on-target tests timeout to 60 minutes from 30 minutes
This should help reduce the random test failures due to timeouts on
slower github actions runners.
2021-06-26 13:41:58 +01:00
Brian Gianforcaro e9b4a0a830
Meta: Disable USB IDs file download in CI
These IDs aren't used during the CI build, so there's no use in
downloading them needlessly.
2021-06-21 21:52:57 +01:00
Ali Mohammad Pur 79d4913f76 LibWasm: Generate all spec tests, even ones that aren't valid modules
`wasm-as` will do some semantic analysis on the modules, which is not
something we're looking for here.
Instead, use `wat2wasm` to generate the exact module.
2021-06-22 00:26:25 +04:30
Idan Horowitz 7fa5f6be7d CI: Remove discord build status notifications
While these look nice, they require the discord workflow to sit around
and wait for the build-and-lint workflow to finish in order to get its
status which means we waste an extra workflow runner that does nothing
for each build-and-lint run.
2021-06-18 13:45:18 +01:00
sin-ack 93996eb48e CI: Remove incorrect single quote escape
The A in YAML stands for Ass-backwards.
2021-06-17 00:07:26 +02:00
sin-ack 129a0fcfb5
CI: Make sure the first word of each commit is capitalized
The first word for each commit should be a verb anyway, and this
automates @alimpfard's nits. :^)
2021-06-16 14:41:17 +01:00
Linus Groh 3d9bcb860e CI: Run libjs-test262 and update results on every push to master 2021-06-05 19:27:55 +01:00
Idan Horowitz 057cd35a6d CI: Skip saving the toolchain and ccache caches in PR workflows
This speeds up CI by removing some cache thrashing caused by PRs that
change cache-related files (but that were not merged yet).
2021-06-03 16:43:52 +02:00
Andrew Kaster 3ece67d62d Meta/CI: Remove IRC notifications
With the increased volume of PRs being opened and merged lately,
multiple people have complained that the IRC is absolutely flooded with
SerenityBot posts. Remove the IRC notifications from the CI scripts, and
the Meta script that handles parsing the github actions context into
an IRC message.
2021-05-29 19:35:49 +02:00
Andrew Kaster 4a2cb70e83 CI: Use builtin clang-11, clang-12, npm, and libstdc++-10-dev packages
Github Actions added clang-12 to their ubuntu 20.04 images, so let's
take full advantage of that. Stop relying on the llvm upstream
repository for clang-12, since it often causes jobs to fail when
their mirrors are syncing.

clang-tidy-11, libstdc++-10-dev and npm 6.14.x are also all already
pre-installed, so we don't need to waste time fetching them in the
dependency fetch step.
2021-05-29 21:36:26 +04:30
Idan Horowitz 6a067e5a1d CI: Disable the commit linter on draft pull requests 2021-05-29 15:59:47 +01:00
Andreas Kling 8658f20af7 Meta: Update FUNDING.yml again
Apparently I didn't understand the format correctly.. :^)
2021-05-29 09:59:49 +02:00
Andreas Kling 2bd7449b59 Meta: Update FUNDING.yml
Let's keep it simple and stick to GitHub Sponsors here on GitHub.
And add Linus since he's on GitHub Sponsors now as well! :^)
2021-05-29 09:57:13 +02:00
Andrew Kaster 723b8586ec CI: Enable UBSAN for on-target tests
Note that until UBSAN is made deadly by default in LibSanitizer, UBSAN
warnings will not fail the build.

Also remove BUILD_LAGOM=ON from the NORMAL_DEBUG build as it's
unnecessary and extends the build time for no benefit when building with
sanitizers
2021-05-27 15:18:03 +02:00
Ali Mohammad Pur 0e4431af33 Meta: Run the Wasm spec tests in CI
Since LibWasm is still not capable of passing all of the spec tests,
ignore failing tests, only fail the build if some segfault/abort/etc
occurs.
2021-05-27 17:28:41 +04:30
Andrew Kaster 2ec302ea22 Meta/CI: Add ENABLE_ALL_DEBUG_FACILITIES CMake option
This option replaces the use of ENABLE_ALL_THE_DEBUG_MACROS in CI runs,
and enables all debug options that might be broken by developers
unintentionally that are only used in specific debugging situations.
2021-05-27 10:21:30 +02:00
Idan Horowitz a8ca4751b9
CI: Update comment-on-pr to a version that supports pull_request_target (#7431)
The previous version unfortunately didn't work for that workflow type if
the author of the PR did not already have write access to the repo.
2021-05-23 23:37:45 +01:00
Andrew Kaster d3af011562 CI: Enable more verbose and strict sanitizer options
Options shamelessly stolen from this article on systemd's website:

https://systemd.io/TESTING_WITH_SANITIZERS/

We make ASAN more strict and tell UBSAN to print more verbose output on
failure. One of the more interesting ASAN options,
detect_stack_use_after_return, sadly causes both UBSAN and ASAN failures
in test-js.
2021-05-23 23:30:46 +01:00
Idan Horowitz fd68e606e7 CI: Make BuggieBot reply to pull requests that fail the commit linter
This should help reduce the repeating "Please check the contributing
guide" replies from reviewers.
2021-05-23 18:09:54 +02:00
Andrew Kaster 467ceb15aa Base/CI: Create and check test-results.log file for on-target tests
Change run-tests-and-shutdown.sh to output a dead simple results file
that just records how many tests failed.

In the CI script, mount the _disk_image after running tests and verify
that the number of failed tests is 0. Otherwise, fail the build :^)

While we're here, bump the timeout for the tests up to 30 minutes, to
make sure that less powerful runners don't fail the job unecessarily.
2021-05-21 22:59:07 +01:00
Andrew Kaster b86d597938 CI: Add canonical-server/server-backports PPA to get updated QEMU
Ubuntu 20.04 only ships QEMU 4.2.1, which is quite an older release.

The BuildQemu.sh script uses version 6.0.0, while the server-backports
PPA is currently shipping 5.2.1. If it turns out the server-backports
PPA is not right, then we can switch to manually building and caching
the source build.
2021-05-21 22:59:07 +01:00
Andrew Kaster 0d0f52337c Base/CI: Run tests from /usr/Tests in GitHub Actions
Uncomment the tests that were disabled due to frequent freezes when
running without KVM. This also adds a new github actions group for
every single test, which makes it easier to browse test boundaries
during test runs.

Move catting the serial output log back to its own step, so that it
has higher visibility. The previous solution was also shown to not
actually cat the log in the case of a failed boot and timeout :^(.
2021-05-21 12:05:34 +04:30
Linus Groh 90e5f607bd CI: Bump update-alternatives priority to 100
This didn't seem to have worked in the past, the new value matches the
recomendation on the GitHub Actions clang-11 default announcement:

https://github.com/actions/virtual-environments/issues/3235
2021-05-21 00:15:14 +01:00
Linus Groh 13288d956b CI: Also apt-get purge clang-11 in build_and_test_lagom step
We don't need it. A recent change to the ubuntu-20.04 image has made it
the default, causing builds to fail - we're installing and want to use
clang-12 anyway, so let's just get rid of the other installed versions.
2021-05-21 00:15:14 +01:00
Andrew Kaster ac1d87b990 CI: Compile and run Lagom tests with ASAN and UBSAN
Make sure halt_on_error=1 is enabled so that UBSAN failures will crash
the test program and cause a failure.
2021-05-16 21:58:14 +01:00
Idan Horowitz 3f08e957d4 Meta: Add a check for periods on the end of titles to commit linter 2021-05-16 01:25:24 +01:00
Adam Hodgen 1e1571d647 Meta: Pin prettier linter version 2021-05-10 00:24:05 +02:00
Linus Groh 867072c7d8 Meta: Improve man.serenityos.org titles and link names
Index page:
- Change links from "Man 1" to "Section 1"

Section index pages:
- Change title from "1" to "Section 1 - SerenityOS man pages"
- Change links from "foo" to "foo(1)"

Man pages:
- Change title from "foo" to "foo(1) - SerenityOS man pages"
2021-05-07 22:28:33 +02:00
Idan Horowitz b9c367e13b Meta: Add action to tweet each commit on push 2021-05-05 21:12:09 +02:00
Idan Horowitz 8cc6372b14 Meta: Strip man prefix from generated man page directories 2021-05-04 22:05:12 +02:00
Idan Horowitz e96ac568a7 Meta: Track Meta/Websites/man.serenityos.org changes in manpages action 2021-05-04 22:05:12 +02:00
Idan Horowitz d29e2dd2d7 Meta: Add workflow that deploys man page updates to man.serenityos.org 2021-05-04 20:58:25 +02:00
Idan Horowitz 6f6f30e55a Meta: Lint commits for unix-style linebreaks
This ensures serenity commits only contain unix-style LF linebreaks
2021-04-26 00:29:22 +02:00
Idan Horowitz b42bfa75d8 Meta: Allow for spaces in commit title category linter 2021-04-25 09:30:12 +02:00
Idan Horowitz 161fd1c153 Meta: Add basic commit message linting for pull requests
This new check will ensure that all commit message lines are at most 72
characters long, as well as ensure the commit title conforms to the
"Category: Brief description of what's being changed" format.
2021-04-23 13:20:12 +02:00
Gunnar Beutner 75d41657d5 Toolchain+Ports: Enable threads for gcc
This enables POSIX threads for GCC and makes the -pthread
argument available.
2021-04-20 21:08:17 +02:00
Panagiotis Vasilopoulos e45e0eeb47 Everywhere: Replace SERENITY_ROOT with SERENITY_SOURCE_DIR 2021-04-20 15:27:52 +02:00
Idan Horowitz df84cd77b8 Meta: Actually check for draft PRs before sending discord notifications 2021-04-20 12:02:13 +02:00
Brian Gianforcaro 51fe25fdbb Meta: Stop limiting stale-bot actions per hour.
Initially this was configured to 2 an hour so that we could easily
disable stale-bot if something went haywire. Now that it's successfully
proved it's doing what it's supposed to, let it run the default number
of actions per hour.
2021-04-19 23:32:48 +02:00
Brian Gianforcaro 247f8f8dbb Meta: Configure probot/stale to close stale pull requests automatically.
This change adds the required configuration to setup the
https://github.com/probot/stale github bot to close stale pull requests.

We currently have a large amount of PRs just sitting around with no
activity, clogging up the PR queue. This will hopefully make that
situation better.
2021-04-19 21:37:53 +02:00
Idan Horowitz 5c924d395f Meta: Disable discord notifications timeout
Since some builds can take even longer than 1 hour
(for example: f033416893)
this commit just increases the timeout to be github's
own workflow timeout (effectively disabling it) and just
lets github handle it instead.
2021-04-18 12:47:50 +02:00
Linus Groh 2b0c361d04 Everywhere: Fix a bunch of typos 2021-04-18 10:30:03 +02:00
AnotherTest 00e5af02be CI: Use clang-12 instead of clang-10 when building fuzzers
oss-fuzz uses clang-12 anyway, so this patch shouldn't be breaking
anything, just letting us use more modern C++ without the CI being
sad.
2021-04-16 21:48:00 +02:00
Idan Horowitz 01e1466682 Meta: Include queued checks in the discord notification's checks filter
The previous filter would filter out queued checks as well, which would
result in erroneous build success notifications going out if github
started the discord notifications workflow before all other workflows.
2021-04-15 09:40:46 +02:00
Idan Horowitz 7702a3fe29 Meta: Increase discord notification's check interval to 100 seconds
Since our tests usually take at least 10 minutes theres no point in
checking every 10 seconds, and github was starting to complain about
the very high API usage.
2021-04-14 14:57:37 +02:00
Idan Horowitz 1aec9a508e Meta: Increase discord notification's build timeout to 1 hour
It looks like some particularly long builds (After a toolchain cache
reset and on a slow worker) can take much longer than the current set
timeout of 20 minutes.
2021-04-14 09:46:45 +02:00
Idan Horowitz a0111f6a3e Meta: Enable pull_request_target context for the notify_discord action
While we did allow the notify_discord job to run inside the context,
we didnt ask github to run in that context. This commit also uses the
"action-wait-for-check" sub-action to ensure the posted build results
are accurate for pull requests (since the build workflow is done in a
separate context for PRs)
2021-04-13 15:51:44 +02:00
Idan Horowitz 6c5bb9a18f Meta: Add discord notifications for pushes and pull requests
These are similar to the existing irc notifications.
2021-04-11 00:09:36 +02:00