552 Commits

Author SHA1 Message Date
Jannick Kremer
318bd45158
[libclang/python] Update maximum Python version for CI to 3.13 (#130385) 2025-03-08 10:09:04 +01:00
Aiden Grossman
f984b472c4 [Github] Revert bumping actions-script version in issue-write
This patch reverts that upgrade which was performed in
74df2032d467618a9aab085120539e306f21bcc0. This broke the workflow, presumably
due to the breaking changes introduced in v5 of this action.

This is a stop-gap for #130211.
2025-03-07 03:21:43 +00:00
Aiden Grossman
0ce4b685d2
[Github] Prefer ubuntu-24.04 over ubuntu-latest (#129936)
This patch replaces all instances of ubuntu-latest with ubuntu-24.04
(outside of the entries in libc++) based on the guidelines in the LLVM
CI best practices doc (https://llvm.org/docs/CIBestPractices.html).
2025-03-06 10:32:02 -08:00
Aiden Grossman
a17a155081
[Github][libc++] Prefer ubuntu-24.04 over ubuntu-latest (#129949)
This patch replaces all instances of ubuntu-latest with ubuntu-24.04
based on the guidelines in the LLVM CI best practices doc
(https://llvm.org/docs/CIBestPractices.html).
2025-03-06 10:31:43 -08:00
Aiden Grossman
74df2032d4
[Github] Bump old action versions (#129833)
These two actions are particularly old, and should be updated to the
latest version. Doing this in a specific commit to easily roll back if
things break and to get as much testing done as possible within the jobs
triggered as a part of these changes.
2025-03-05 09:20:24 -08:00
George Burgess IV
3ce92e1c4f
github: fix empty continuation line; remove trailing whitespace (#129535)
- Trailing whitespace shows up as red on my editor, so remove.
- Docker on my machine warns that having line continuations like:

```
  sudo \

  foo
```

is deprecated, and will become an error, so fix that up ahead of time.
2025-03-03 09:47:42 -07:00
Aiden Grossman
c9aefe10d7
[Github][libc] Hash Pin Actions in Workflows (#129487)
This patch has pins actions in the libc Github workflows. Hash pinning
is a best practice as it ensures we are getting an exact action version,
which can help with reproducibility/reliability. It additionally
alleviates security concerns as an attacker can modify release assets,
potentially giving them access to tokens in privileged workflows.
2025-03-03 08:37:39 -08:00
Aiden Grossman
705decc860
[Github] Hash Pin Actions in Most Workflows (#129486)
This patch haspins all actions in most of the LLVM Github workflows.
This is something we try to do, but no one has gone through and combed
through all of the workflows before this patch.

Notably, this patch does not bump any major versions of actions just in
case there are subtle breaking changes introduced between versions that
could impact us. Also, this patch omits the libc/libc++ workflows so
that they can be split into separate PRs for the respective subproject
maintainers to review.
2025-03-03 08:37:20 -08:00
Martin Storsjö
e6a0ee3d1d
[libc++][ci] Update the Windows toolchains to Clang 19 (#129232)
This also fixes test failures in the clang-cl build configs that started
a couple days ago. It seems like the failures were triggered by an update
to the base image on the Github provided runners.

There were failures in test/libcxx/system_reserved_names.gen.py, due to
an issue in an Clang intrinsics header (avx512fp16intrin.h); this issue
was observed and fixed for Clang 19 in 6f04f46927c. The test does
    #define A SYSTEM_RESERVED_NAME
which clashes with a parameter with the name `A` in that header.

By upgrading the toolchain to Clang 19, we get fixed version of this
intrinsics header.

Also update the llvm-mingw toolchains to a version with Clang 19.1.7.
2025-02-28 09:56:16 -05:00
Tom Stellard
148111fdcf
[CMake][Release] Enable bolt optimization for clang on Linux (#128090)
Also stop buiding the bolt project on other platforms since bolt only
supports ELF.
2025-02-25 07:33:42 -08:00
Aiden Grossman
b9e25f65a8
[Github][CI] Name Premerge Jobs Experimental (#128227)
As discussed on Discourse
(https://discourse.llvm.org/t/googles-plan-for-the-llvm-presubmit-infrastructure/78940/8),
this patch renames the premerge jobs to include experimental in them to
hopefully better signal that these are still a prototype. This patch
does not mark the MacOS job as experimental as that is being used in
production on the release branch.
2025-02-22 10:43:53 -08:00
Louis Dionne
e11ca593a2
[libc++] Shuffle the order of pre-commit CI jobs a bit (#128008)
I've recently noticed that our CI is bottlenecked around platforms on
which we don't have a lot of capacity like macOS (mostly) and Windows.
To try to alleviate that, this patch moves the macOS builds and the
Windows builds further down the pipeline so that they will get triggered
less often (if an earlier job fails).
2025-02-21 07:58:53 -05:00
Aiden Grossman
6e7da07c73
[Github][CI] Enable New Premerge on PRs (#127894)
This patch gets rid of the file restriction for running the new premerge
Github workflow on PRs. This will cause the jobs to be run on all the
PRs. Currently the jobs will succeed regardless of build/test failure
results. This will let us test the new infra hopefully without too much
disruption before eventually letting jobs fail when builds/tests fail
and deprecating the existing premerge system.

This is part of the launch plan as outlined in

https://discourse.llvm.org/t/googles-plan-for-the-llvm-presubmit-infrastructure/78940.
2025-02-20 10:32:40 -08:00
Tom Stellard
3e5ae5777d
workflows/release-binaries: Disable Flang on x86_64 macOS (#127216)
The flang build was taking 2-3 hours and causing the entire job to
timeout, so we need to disable it.
2025-02-19 19:16:30 -08:00
Gábor Horváth
5450954a06
Include test folder in the Clang Static Analyzer team mentions (#127810)
See
https://discourse.llvm.org/t/taking-ownership-of-clang-test-analysis/84689
2025-02-19 17:45:05 +00:00
Mark de Wever
b22fc43551
[libc++] Updates the compilers used post LLVM-20 branching. (#126564)
Once LLVM 20 is released the clang-18 will no longer be supported.
2025-02-18 19:26:44 +01:00
Aiden Grossman
50b1763d9d [Github][CI] Fix Typo in MacOS Job Name
This patch changes the name of the MacOS premerge job from
permerge-checks-macos to (the presumably correct) premerge-checks-macos.
2025-02-14 22:53:57 +00:00
Tom Stellard
d595d5a770
workflows/release-binaries: Fix macos-14 build (#127157)
This was broken when pgo was enabled by
0572580dd040a81dc69b798e202550d51d17204a.
2025-02-14 07:28:44 -08:00
Aiden Grossman
161f64a4c1
[Github][CI] Hashpin actions dependencies (#127011)
This patch has pins several actions dependencies in the premerge
workflow and the Windows/Linux container build workflows to help improve
security in the unlikely event that someone tries to pull off a supply
chain security attack by modifying release asserts for these actions.
2025-02-13 12:16:42 -08:00
David Spickett
873aa29945
[GitHub] Make release audit more strict for LLVM 19 and beyond (#125841)
Before 19, we had releases from release managers, the bot, and community
members. 19 started to restrict this, with only select community members
uploading releases. The lists of users are written out each time to make
modifying this easier.

If we cannot parse the release number, I've made it raise an issue
saying so. Since this may also be a sign of a malicious action.
2025-02-13 12:59:47 +00:00
Tom Stellard
a684e0ea57
workflows/release-binaries-all: Add missing secret input (#126921)
Since d194c6b9a7fdda7a61abcd6bfe39ab465bf0cc87 this workflow was missing
the secret input which was causing it to fail.
2025-02-12 10:01:46 -08:00
Aaron Siddhartha Mondal
42538ca3a0
[GitHub] Add aaronmondal to Bazel codeowners (#126760) 2025-02-11 09:24:05 -08:00
Aiden Grossman
f101899ae8
[libc++][Github] Remove workflow-scoped write permissions (#126447)
This patch removes the workflow-scoped package write permissions in the
libcxx-build-containers workflow. The relevant permissions are already
present in the job, so this raises the potential for new jobs being
added to the workflow that do not need the permissions but having them
anyways. Not having workflow-scoped write permissions is security best
practice.

Fixes #126230.
2025-02-10 10:54:46 -08:00
Petr Hosek
170cdadf7d
[libc] Exercise all CMake build types in GitHub Action workflows (#126315)
We want to test libc in all build configurations: Debug, Release and
MinSizeRel which correspond to -O0, -O3 and -Os optimization flags.
2025-02-07 14:50:52 -08:00
Tom Stellard
6e59888631
workflows/premerge: Move concurrency definition to workflow level (#126308)
Prior workflow runs were not being cancelled when the pull request was
closed, and I think this was why. Also, there is no advantage to having
the definitions at the job level.
2025-02-07 13:09:58 -08:00
Tom Stellard
0572580dd0
workflows/release-binaries: Enable PGO (#124442)
Co-authored-by: Carlo Cabrera <github@carlo.cab>
2025-02-04 14:43:22 -08:00
Tom Stellard
806e35175b
workflows/build-ci-container: Fix container push (#125610)
After the changes in 89001d1de8ecf03c8820594ea03345b99560272a, the
container pushes failed, because it was attempting to push the same
container twice. This fixes the sed expression used to push the :latest
alias for each container.
2025-02-04 14:39:49 -08:00
Tom Stellard
89001d1de8
workflows/build-ci-container: Add an arm64 container (#120828)
This also changes the container version numbers in the tag from unix
timestamps to the abbreviated commit hash for the workflow. This ensures
that the amd64 and arm64 containers have the same tag.

For amd64 we now generate 4 tags:

* ghcr.io/llvm/ci-ubuntu-22.04:latest
* ghcr.io/llvm/ci-ubuntu-22.04:$GITHUB_SHA
* ghcr.io/llvm/amd64/ci-ubuntu-22.04:latest
* ghcr.io/llvm/amd64/ci-ubuntu-22.04:$GITHUB_SHA

For arm64 we generate 2 tags:

* ghcr.io/tstellar/arm64v8/ci-ubuntu-22.04:latest
* ghcr.io/tstellar/arm64v8/ci-ubuntu-22.04:$GITHUB_SHA
2025-02-03 13:28:36 -08:00
Tom Stellard
2deba08e09
workflows/premerge: Cancel in progress jobs when a PR is merged (#125329) 2025-02-03 13:20:37 -08:00
Tom Stellard
d194c6b9a7
workflows/release-tasks: Re-use release-binaries-all workflow (#125378)
This way we don't need to duplicate the list of supported targets in the
release-tasks workflow.
2025-02-03 13:13:11 -08:00
Tom Stellard
95c0c784ac
workflows/premerge: Fix condition for macos job (#125237) 2025-01-31 13:45:08 -08:00
Jonas Devlieghere
5c3db5a87e
[Github] Label lldb-dap PRs (#125139)
Automatically apply the `lldb-dap` label to relevant PRs.
2025-01-31 09:26:19 -08:00
Tom Stellard
f8ef2699d8
workflows: Add some automation for commit access requests (#123113)
* Greet the user and ask them to read the developer policy.
* Post their contribution stats on the issue.
2025-01-30 20:05:05 -08:00
Tom Stellard
b89617d02d
workflows/premerge: Add macOS testing for release branch (#124303)
Also, remove the old pre-merge tests since Linux and Windows are tested on buildkite now.
2025-01-30 19:37:54 -08:00
Tom Stellard
b32e55df24
workflows/release-binaries: Stop using ccache (#124415)
Using ccache relies on the GitHub Actions Cache, which may be
susceptible to cache poisoning. See
https://adnanthekhan.com/2024/05/06/the-monsters-in-your-build-cache-github-actions-cache-poisoning/

Even though these attacks may be difficult, it's better to err on the
side of caution and ensure that the build environment for our releases
is as isolated as possible. Additionally, ccache was only being used for
the stage1 build, which is a small part of the overall build, so the
speed up from using it was not that large.
2025-01-29 16:51:19 -08:00
Nikolas Klauser
7f845cba2c
[libc++] Update the CI to Clang-20 and drop Clang-17 support (#117429) 2025-01-28 12:35:33 +01:00
Tom Stellard
6bb70a94da
workflows/release-binaries: Enable builds on Linux/AArch64 (#120786) 2025-01-25 19:48:46 -08:00
Aiden Grossman
9b6990ff25
[Github][CI] Add Windows Premerge Job for Testing (#122661)
This patch adds a windows premerge job for testing. We plan to enable
this by default soon once we have evaluated stability and have
reasonable reason to believe the system is reliable.
2025-01-25 19:23:12 -08:00
Aiden Grossman
d789915f35
[Github] Bump Runner Version in Containers (#124324)
This patch bumps the runner version to v2.322.0 in the CI containers.
Nothing looks suspicious in the change log, and it is important to keep
the runner up to date or we will end up with containers that cannot
connect to Github due to having a version too old.
2025-01-24 15:32:35 -08:00
Schrodinger ZHU Yifan
acc13dbe4d
[libc][workflow] improve ci coverage with windows-2025 and arm ubuntu (#123745)
Add the following workflows:

- `fullbuild` on aarch64 ubuntu
- `overlay` on windows 2025
- `overlay` on aarch64 ubuntu

`ccache` variant is used on `aarch64` due to
https://github.com/hendrikmuhs/ccache-action/issues/279
2025-01-24 19:52:46 +08:00
Tom Stellard
8f45452c53
workflows/release-binaries: Restrict jobs based on owner instead of repo (#123797)
Not really any functional change, just a clean up that could make it
easier to share snippets with other repos.
2025-01-22 16:29:43 -08:00
Aiden Grossman
ee5d60020f Revert "[CI][Github] Disable premerge workflow on main"
This reverts commit 106f1056991317af7eaaf19239de93942ac37267.

Everything should be in working order now that the container job has been
updated to work properly. This has been tested on an individual job.
2025-01-22 03:37:37 +00:00
Aiden Grossman
76b01875d3 [Github] Move agent container to separate tar archive
This patch makes the build container job save the agent container image to a
separate tar file rather than bundling it in with the existing tar file. For
some reason, running podman save with two container images and then loading
that single tar file gets rid of the agent image and we end up with two
copies of the original image. This means that premerge jobs will fail with
the agent image because they cannot find the run.sh script.
2025-01-22 01:36:42 +00:00
Eric Fiselier
c95d7894c9 Fix incorrect console.print -> console.log to fix libc++ restarter 2025-01-21 16:16:48 -05:00
Aiden Grossman
106f105699 [CI][Github] Disable premerge workflow on main
Trying to switch over to the normal execution mode and running into issues.
Turning this off on main for now while I investigate given my time
availability is a bit sparse today.
2025-01-21 19:19:28 +00:00
Aiden Grossman
1888a5f02f
[Github][CI] Remove premerge container (#123483)
This patch removes the container from the premerge job. We are moving
away from the kubernetes executor back to executing everything in the
same container due to reliability issues. This patch updates everything
in the premerge job to work.

This is part of a temp fix to
https://github.com/llvm/llvm-zorg/issues/362.
2025-01-21 11:01:15 -08:00
Eric
59850c242e
Attempt to fix libc++ actions runner restarter. (#120627)
It appears that introducing docker containers has broken the restarter
job since additional failure messages appear with the preemption
messages.

This should get jobs restarting on preemption again, but may do so
for jobs that also contain unrelated failures
2025-01-21 12:36:04 -05:00
Philipp-Jan Honysz
b4576bba44
Update download and upload artifacts action usage to v4 ahead of deprecation (#123747)
Ahead of GitHub's
[deprecation](https://github.blog/changelog/#artifacts-v3-brownouts) of
v3 versions of both the `upload-artifact` and `download-artifact`
action, I suggest this PR, which bumps the used version of both actions
in all workflows to the newest v4 revision. Additionally, the versions
are hashpinned as suggested in f3524e9aebbfabed0c60d0087b39ce14d8f778da.
2025-01-21 09:22:20 -08:00
Michal Paszkowski
cda81b1ec9
[SPIR-V] Add SPIRV to LLVM_ALL_TARGETS (reapply) (#123733)
This commit promotes the SPIR-V backend from experimental to official
status. As a result, SPIR-V will be built by default, simplifying
integration and increasing accessibility for downstream projects.

Discussion and RFC on Discourse:
https://discourse.llvm.org/t/rfc-promoting-spir-v-to-an-official-target/83614

The PR reapplies the original patch
https://github.com/llvm/llvm-project/pull/119653 and consecutive
https://github.com/llvm/llvm-project/pull/123654, reverted due to
buildbot failures.
2025-01-21 12:39:03 +01:00
Aiden Grossman
a0c68119bd [Github] Fix container push job
This patch fixes a typo impacting functionality and also adds the relevant
variables to the step outputs list so they can actually get picked up by the
push container step.
2025-01-21 01:00:34 +00:00