Our CI is currently having major difficulties, which causes the Stage 3
CI to basically never succeed. As a result, our macOS CI jobs have not
been running recently. This patch gates the macOS CI jobs on Stage 2
instead of Stage 3 so that they actually run sometimes.
This patch removes the "test only please ignore" tagline from the
premerge job names. Now that we are looking to sunset the old
infrastructure pretty soon and the new infrastructure is reporting
errors, we want people to actually pay attention to the failures and
report anything erroneous.
This patch makes the new premerge system report failures when the build
errors out. We were previously not doing this to not notify people on
failures as we were testing out the infra.
This works towards making the new premerge system canonical and the
deprecation of the old system.
A launch announcement on Discourse will accompany this commit.
Reviewers: cmtice, tstellar, joker-eph, Keenuts, dschuff, lnihlen, gburgessiv
Reviewed By: tstellar, joker-eph, Keenuts
Pull Request: https://github.com/llvm/llvm-project/pull/139359
This patch stops running the premerge checks on the main branch. This is
based on some feedback in
https://discourse.llvm.org/t/rfc-running-premerge-postcommit-through-github-actions/86124.
We want to use buildbot for post commit testing. This should be covered
in the mean time by the current pemerge-monolithic-* bots even though
the configurations are not exactly the same. This also adds a bit of
capacity back to the cluster (although might not in the end when we
start running more substantial postcommit testing through buildbot).
This is primarily in preparation for turning the new premerge system on
as canonical. Without this, we run into warning fatigue issues as
described in the RFC above.
Reviewers: Keenuts, joker-eph, dschuff, cmtice, gburgessiv, lnihlen, tstellar
Reviewed By: Keenuts, joker-eph
Pull Request: https://github.com/llvm/llvm-project/pull/139358
This patch partially prunes the windows container to reduce the image
size, primarily to improve image pull time which is currently a pretty
significant bottleneck in the new premerge due to autoscaling.
This patch removes the following:
- An extra copy of LLVM that is not needed anymore.
- An unneeded perl installation
- Some extra python packages that are specific to buildbot
This overall saves about 4GB on the uncompressed image, or about 20%.
I tested this locally against the premerge pipeline and everything
passes.
There are still several significant areas of opportunity, namely seeing
if we can move away from the 4.8 sdk image to just the
`windowsservercore` image (about 7GB of opportunity), and shrinking the
VS installation (in total about 5GB uncompressed currently opportunity
unknown).
This patch renames the new premerge job as suggested in
https://discourse.llvm.org/t/github-ci-notifications-and-main-branch/85868/10.
This uses more industry standard terms (like CI vs premerge checks which
might be somewhat of a LLVM CI idiom?) and makes it more generic if we
end up doing postcommit testing through Github.
This patch installs sccache using apt-get in the CI container build
process rather than manually downloading it from github releases. This
makes things quite a bit simpler and means we are not manually handling
things like hash/signature verification. This is only possible now that
we are using ubuntu 24.04 by default.
The comment was originally added in
b3af755254, but
2898c3e0bb greatly simplified things
making the previous comment invalid. We no longer need to look at
diffing main versus the PR and whether we are doing a two dot or three
dot diff as we are just diffing the merge commit.
When editing the premerge.yaml file it seems like I left some extra yaml
in there that ended up in the run section of one of the steps that ended
up throwing the error.
This patch renames premerge artifacts per OS. Without this, the premerge
artifacts will conflict with each other and the slower running job will
fail to upload the artifact.
The premerge pipeline currently creates an artifacts directory with some
statistics that gets uploaded on the buildkite side for later
inspection. This patch adds support for this on the Github side by using
the upload artifacts action.
Reviewers: Keenuts, lnihlen, mizvekov, tstellar, Endilll
Reviewed By: mizvekov
Pull Request: https://github.com/llvm/llvm-project/pull/135538
This patch bumps workflows depending upon the Linux CI container to
ubuntu 24.04. The 22.04 container is no longer being built as it was
recently bumped to 24.04, so this patch moves all of these workflows
over to the new container to keep them updated and ensure they are using
an actually maintained version of the container image.
- fixes#132303
- Moves dot2add from a language builtin to a target builtin.
- Sets the scaffolding for Sema checks for DX builtins
- Setup DirectX backend as able to have target builtins
- Adds a DX TargetBuiltins emitter in
`clang/lib/CodeGen/TargetBuiltins/DirectX.cpp`
In 0547e573c5, I introduced backdeployment testing on macOS using
Github-provided builders. This was done by basically building libc++ on
a slightly older macOS (like macOS 13) and then running against the
system library on that machine. However, that created a dependency that
libc++ must keep working on macOS 13, which doesn't support the
latest-released Xcode.
This patch solves that problem by moving the deployment testing to a
newer version of macOS which supports the latest-released version of
Xcode.
Sadly, that also reduces the backdeployment coverage we have since we're
not actually testing on older OSes, but is necessary to satisfy the
documented libc++ support policy. In the future, we could improve the
situation by providing a Lit configuration that allows compiling (but
not running) all the tests, building the tests on a supported macOS, and
then shipping those tests on an older backdeployment target in order to
run them against the system library. Since that requires significant
engineering, this isn't done at this time.
The Github runner version got bumped recently and it would be good to keep
this up to date. Also debugging an issue where Github ARC is failing to
create new pods and trying to see if it might be related to outdated
versions.
This patch migrates the CI over to the new compute_projects.py script
for calculating what projects need to be tested based on a change to
LLVM.
Reviewers: lnihlen, ldionne, tstellar, Endilll, joker-eph, Keenuts
Reviewed By: Keenuts, tstellar
Pull Request: https://github.com/llvm/llvm-project/pull/132642
This patch changes getting changed files in the pr code format job to
just checking out the previous two commits (the merge commit and its
porent, the current commit latest in main), which allows us to just diff
the merge commit. This means we do not have to checkout the ref through
the merge base, which should save approximately a minute per job (or
much more in some cases where the PR is particularly out of date).
This helps keep things up to date, and should not cause any issues given we do
not need to care about binary compatibility for things built in the CI
container. This patch also changes the name of the container which allows
incrementally moving jobs over after this lands.
Reviewers: tstellar
Reviewed By: tstellar
Pull Request: https://github.com/llvm/llvm-project/pull/132568
This patch bumps the CI container to the latest LLVM Release and gets rid of
the patch that we were carrying that is in 20.1.1.
Reviewers: tstellar
Reviewed By: tstellar
Pull Request: https://github.com/llvm/llvm-project/pull/132567
This is generally good practice if the caches won't be reused (though
arguably pedantic for the `stage1-toolchain` stage).
`docker history` on comparable images showed that this saves a few
hundred MB on stage1, and ~60MB on the `apt-get` layer of
`ci-container-agent`.
This makes things quite a bit simpler and also gets rid of some API
calls. We weren't hitting any API limits, but getting rid of them leaves
more quota for other things should we ever need it. This just diffs the
merge commit in the pull request workflows, which gives the diff for the
PR.
This patch bumps the actions script version in the issue-write workflow
to v7. This was done before but rolled back due to errors as there were
breaking changes in v5
(https://github.com/actions/github-script#breaking-changes-in-v5). This
was reverted in f984b47.
This patch makes the necessary changes to prevent job failures.
Fixes#130211.
This patch bumps most of the workflows to ubuntu 24.04, with the
exception of worklfows that depend on the CI container, which will need
to be updated separately before we are then able to use it for the other
workflows.
This patch fixes the scorecard action. It is currently failing with an
error due to the upload-artifact action being too far out of date.
https://github.com/llvm/llvm-project/actions/runs/13865016326/job/38802095257
is an example of a job failure.
This patch also bumps the other actions versions while we are at it.
In recent versions of Clang, using -std=c++20 (and later) implies LSV
when compiling with modules. This change resulted in making our LSV job
redundant with the regular modules job, which uses the latest Standard.
This patch increases the coverage of our CI without increasing its cost
by pinning the LSV job to use C++17, which normally doesn't use LSV. A
related question is whether we should add coverage for non-LSV builds
using Clang modules.
The tj-actions/changed-files repo has been taken down to the security
incident
(https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-changed-files-action-is-compromised).
This patch moves these jobs over step-security's fork, which has been
loosely audited and has had the malicious commits removed. This is
mainly intended as a stop-gap to get these actions running again while
we figure out the best path forward.