537 Commits

Author SHA1 Message Date
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
Tom Stellard
a3beb7db36
Workflows: Drop Windows release builds and use more powerful runners for others (#117111)
We have community provided Windows builds that are better than what we
can build on GitHub. For the Linux/X86 builds and Mac/Aarch64 builds we
will use depot runners, for Mac/X86 we will use the larger GitHub
runners.
2025-01-20 16:37:27 -08:00
Michal Paszkowski
3f0ac4653b
Revert "[SPIR-V] Add SPIRV to LLVM_ALL_TARGETS (reapply)" (#123674)
Reverts llvm/llvm-project#123654 due to buildbot issue
2025-01-20 15:16:43 -08:00
Michal Paszkowski
f427fef092
[SPIR-V] Add SPIRV to LLVM_ALL_TARGETS (reapply) (#123654)
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, reverted due to
buildbot failures.
2025-01-20 14:57:41 -08:00
Aiden Grossman
d35d7f4b13
[Github] Add Agent Container Image (#123486)
This patch adds an agent container image on top of the normal CI
container image. They are the exact same except that the agent container
image also contains Github Runner binaries. I've split it into a
separate container as only one user of these images (the new premerge)
needs this binary installed, and it bloats the container image size
significantly (900MB->1.3GB or so).
2025-01-20 11:53:25 -08:00
Aiden Grossman
e68d18c34e
[Github] Add Zlib at build time to CI container (#123489)
This patch adds zlib at build time to the CI container. This is needed
to make an lldb test pass that defaults to using the system lld if it is
not explicitly enabled in LLVM_ENABLE_PROJECTS.

Fixes #123479 (by fixing the proximal cause).
2025-01-20 11:50:21 -08:00
Michal Paszkowski
5af7905302
Revert "[SPIR-V] Add SPIRV to LLVM_ALL_TARGETS" (#123532)
Reverts llvm/llvm-project#119653
2025-01-20 00:33:14 +01:00
Michal Paszkowski
c46df85380
[SPIR-V] Add SPIRV to LLVM_ALL_TARGETS (#119653)
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
2025-01-20 00:02:46 +01:00
Aiden Grossman
471cec3b24
[Github] Bump Windows Actions Runner to v2.321.0 (#123508)
The current container is on an old version that can no longer recieve
messages from Github, which causes the runner to just be recreated every
couple seconds rather than performing any useful work.
2025-01-19 09:54:52 -08:00
Aiden Grossman
7a7d12bba9 [Github] Bump max ccache size for premerge
This patch bumps the max ccache size for premerge jobs to 2GB. Doing a manual
invocation against changes in LLVM produces about 1GB of cache. The default
is 500MB, which we feel might be contributing to the very poor cache
utilization.
2025-01-19 08:37:37 +00:00
Vlad Serebrennikov
f9350c9325 [clang][NFC] Update CODEOWNERS 2025-01-15 16:33:52 +04:00
Adam Yang
90eca3f3f4
[Github] Explicitly requesting Ubuntu 22.04 for SPIRV test (#122395)
For the same reason as
[#122221](https://github.com/llvm/llvm-project/pull/122221), this fixes
build failure from missing python3.
2025-01-10 19:32:54 -08:00
Chris B
218f15cd1e
Add pre-merge workflow for HLSL testing (#122184)
This adds a workflow for running HLSL tests on PRs that modify HLSL and
DirectX code.

The tests enabled here are the LLVM & Clang tests and the Offload
execution tests: https://github.com/llvm-beanz/offload-test-suite/
2025-01-09 14:10:44 -06:00
Aiden Grossman
a759176795
[Github] Fix LLVM Project Tests Workflow on Linux (#122221)
This patch fixes the LLVM project tests workflow on Linux. Two changes
were needed. Firstly, some commands need to be performed with sudo now
that the container executes as a non-root user. Second, we needed to
change from `ubuntu-latest` to `ubuntu-22.04` as `ubuntu-latest` not
defaults to `ubuntu-24.04` which causes `setup-python` to install a
python executable linked against a newer version of glibc that is not
found on ubuntu 22.04, which causes failures when CMake cannot execute
the python interpreter that it finds.
2025-01-09 07:58:38 -08:00
Aiden Grossman
459d413b74 [CI][Github] Do not fail premerge job
The postcommit job is currently sending emails on failures. A lot of these
emails are useless noise as there are still some problems with the new
infrastructure that need to be fixed before the results are reliable.
2025-01-09 05:05:34 +00:00
Aiden Grossman
929b90be30
[Github] Add sccache to CI container (#122063)
This patch adds sccache to the CI container so that the
llvm-project-tests workflow does not fail due to missing sccache.
2025-01-08 20:57:33 -08:00