summaryrefslogtreecommitdiff
path: root/Meta/Azure/Serenity.yml
AgeCommit message (Collapse)Author
2022-12-28CI: Remove extraneous toolchain job from Azure CITimothy Flynn
This was useful when building both i686 and x86_64 SerenityOS targets as we could use a single toolchain build for both targets. But now all this extra job does is create the opportunity for the toolchain to need to be built twice (i.e. if the pipelines are backed up and the toolchain cache is busted between these jobs while the x86_64 step is waiting for a VM).
2022-12-28Meta: Remove i686 targetLiav A
2022-12-24Meta: Move UCD/CLDR/TZDB downloaded artifacts to Build/cachesTimothy Flynn
They currently reside under Build/<arch>, meaning that they would be redownloaded for each architecture/toolchain build combo. Move them to a location that can be re-used for all builds.
2022-10-25Everywhere: Require version >= 12 for GCC host compilerLinus Groh
So far we've gotten away with using GCC 11 for Lagom and to compile the toolchain, but via #15795 we discovered a compiler bug that has been fixed in the latest version but would error the build with CI's GCC 11. Time for an upgrade :^) We already use ubuntu-22.04 images in most places, so this is pretty straightforward. The only exception is Idan's self-hosted runner, which uses Ubuntu Focal. LibJS should build fine with GCC 11, still.
2022-09-24Meta: Enable full region dumping on CIkleines Filmröllchen
2022-08-14Everywhere: Get rid of the fbdev kernel boot argument remaindersLiav A
2022-05-24Meta+CI: Upgrade to ubuntu-22.04Nathan Wallace
This commit upgrades Github Actions workers to ubuntu-22.04 As part of that change, we (currently) no longer need the backports nor toolchain-r/test PPAs, because ubuntu-22.04 include recent-enough version of QEMU and gcc
2022-05-02CI: Add x86_64 Clang Coverage pipeline in AzureAndrew Kaster
Add a job to the Azure pipelines to run tests with coverage enabled, and aggregate the test results in a folder of html pages showing the coverage results overall, and per-file. Future work is needed to take the published pipeline artifact for the coverage results and display them somewhere interesting.
2022-01-07CI: Extract toolchain ccache in the Serenity build stageTimothy Flynn
The toolchain is built in a previous stage, but once the Serenity stage has begun, we have to re-pull the toolchain from the Azure cache. There is a timing window where a cache-busting change can be commited between these steps; to alleviate the affect this has, pull the toolchain ccache so that the build only takes a few minutes instead of a couple hours.
2022-01-07Meta+CI+Documentation: Bump host gcc requirement up to gcc 11Andrew Kaster
Bump macOS CI version to macOS 11 while we're here.
2021-10-25Kernel+SystemServer: Change bootmode to system_modeBen Wiederhake
'bootmode' now only controls which set of services are started by SystemServer, so it is more appropriate to rename it to system_mode, and no longer validate it in the Kernel.
2021-10-25Kernel: Separate panic behavior from bootmodeBen Wiederhake
Bootmode used to control panic behavior and SystemServer. This patch factors panic behavior control into a separate flag.
2021-10-25Kernel: Separate framebuffers from bootmodeBen Wiederhake
Bootmode used to control framebuffers, panic behavior, and SystemServer. This patch factors framebuffer control into a separate flag. Note that the combination 'bootmode=self-test fbdev=on' leads to unexpected behavior, which can only be fixed in a later commit.
2021-10-18CI: Build the Clang toolchain a single time for both onboard pipelinesTimothy Flynn
As of the Clang 13 upgrade, we only need to build the toolchain once and can use that toolchain for both x86_64 and i686. To do this, this breaks the main Azure configuration into 3 "stages" (Lagom, Toolchain, and Serenity), where the Serenity stage depends on the Toolchain stage. This has the added benefit of uploading a new prebuilt toolchain cache sooner than before, which should help alleviate pressure from PRs.
2021-09-21CI: Create a secondary ccache for the Clang toolchain buildTimothy Flynn
We bust the prebuilt cache when any header in e.g. LibC changes. Doing a full toolchain rebuild probably isn't necessary, so this adds a separate ccache to speed up toolchain builds.
2021-09-21CI: Set ccache path based on template parameterTimothy Flynn
Currently, the templated steps in Caches.yml rely on the environment variable CCACHE_DIR being set to configure the ccache location. To prepare for multiple ccache paths, do not rely on this environment variable because only one ccache can use it at a time. Instead, pass the path into the template as a parameter.
2021-09-15Meta: Switch to a SuperBuild that splits host and target buildsAndrew Kaster
Replace the old logic where we would start with a host build, and swap all the CMake compiler and target variables underneath it to trick CMake into building for Serenity after we configured and built the Lagom code generators. The SuperBuild creates two ExternalProjects, one for Lagom and one for Serenity. The Serenity project depends on the install stage for the Lagom build. The SuperBuild also generates a CMakeToolchain file for the Serenity build to use that replaces the old toolchain file that was only used for Ports. To ensure that code generators are rebuilt when core libraries such as AK and LibCore are modified, developers will need to direct their manual `ninja` invocations to the SuperBuild's binary directory instead of the Serenity binary directory. This commit includes warning coalescing and option style cleanup for the affected CMakeLists in the Kernel, top level, and runtime support libraries. A large part of the cleanup is replacing USE_CLANG_TOOLCHAIN with the proper CMAKE_CXX_COMPILER_ID variable, which will no longer be confused by a host clang compiler.
2021-08-20CI: Set on-target test timeout to 60 minutesTimothy Flynn
The on-target pipelines have a timeout of 6 hours to allow time for a clean toolchain + Serenity build. Tests should time out much sooner than that though.
2021-08-18CI: Print on-target debug logs when the tests failTimothy Flynn
2021-08-17CI: Build and test SerenityOS with the Clang toolchain on AzureTimothy Flynn