Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a workflow to create llvm artefacts for a branch #697

Merged
merged 1 commit into from
Apr 3, 2025

Conversation

coldav
Copy link
Collaborator

@coldav coldav commented Feb 27, 2025

Overview

Change planned testing to build llvm and run all tests.

Reason for change

The current system was very limited to being able to cope with updates of llvm. It also did not allow us to run all testing on
one llvm or the other. Additionally, it lacked flexibility.

Description of change

Build llvm as an artefact before testing. Option to support using caching on a per llvm basis - but unlike before this will build it if it does not find it.

planned_testing_caller.yml has been changed to call both internal tests (run_ock_internal_tests.yml renamed from run_pr_tests.yml) and external tests (run_ock_external_tests.yml, renamed from
planned_testing.yml). It has also been changed so it can only be run via being called. It allows a wide variety of inputs so different variants of the pipeline can be run.

At the top of the planned testing change are per llvm callers, planned_testing_caller_19.yml and planned_testing_caller_20.yml. These do little more than call planned_testing.yml with different llvms on a cron job. They are not expected to change much.
llvm_source is passed down to the run_* workflows, and has a run id option which means it downloads it from that run id. If it is the same workflow id as being run on, then it will use download-artifact, otherwise it will use gh.

This additionally switches the overnight testing to llvm 19 and llvm 20 from a previous 18/19 mix, run on different nights.

Some extra flexibility has also been added for which runners are used as it was difficult to test with the conflict on available runners.

@coldav coldav requested a review from a team as a code owner February 27, 2025 17:41
@coldav coldav force-pushed the colin/create_llvm_artefacts branch 20 times, most recently from ae860d4 to c666f71 Compare February 28, 2025 14:21
@coldav coldav force-pushed the colin/create_llvm_artefacts branch 7 times, most recently from 84651f1 to 500085c Compare March 6, 2025 10:58
@coldav coldav force-pushed the colin/create_llvm_artefacts branch 4 times, most recently from 38a4802 to a2021ea Compare March 27, 2025 13:52
@coldav coldav force-pushed the colin/create_llvm_artefacts branch 9 times, most recently from 31dc4ac to fe9365d Compare March 28, 2025 11:00
@coldav coldav force-pushed the colin/create_llvm_artefacts branch from fe9365d to e46b636 Compare April 1, 2025 11:15
@coldav coldav force-pushed the colin/create_llvm_artefacts branch from e46b636 to 3cc5660 Compare April 2, 2025 10:37
@coldav coldav force-pushed the colin/create_llvm_artefacts branch from 3cc5660 to 081c96b Compare April 2, 2025 16:34
The current system was very limited to being able to cope with updates
of llvm. It also did not allow us to run all testing on one llvm or the
other. Additionally, it lacked flexibility.

Build llvm as an artefact before testing. Option to support using caching
on a per llvm basis - but unlike before this will build it if it does not
find it.

planned_testing_caller.yml has been changed to call both internal tests
(run_ock_internal_tests.yml renamed from run_pr_tests.yml) and external
tests (run_ock_external_tests.yml, renamed from planned_testing.yml). It
has also been changed so it can only be run via being called. It allows
a wide variety of inputs so different variants of the pipeline can be run.

At the top of the planned testing change are per llvm callers,
planned_testing_caller_19.yml and planned_testing_caller_20.yml. These
do little more than call planned_testing.yml with different llvms on a
cron job. They are not expected to change much. llvm_source is passed
down to the run_* workflows, and has a run id option which means it
downloads it from that run id. If it is the same workflow id as being
run on, then it will use download-artifact, otherwise it will use gh.

This additionally switches the overnight testing to llvm 19 and llvm 20
from a previous 18/19 mix, run on different nights.

Some extra flexibility has also been added for which runners are used as
it was difficult to test with the conflict on available runners.
@coldav coldav force-pushed the colin/create_llvm_artefacts branch from 081c96b to bd7027b Compare April 2, 2025 16:59
@coldav coldav merged commit 9d0f2e2 into uxlfoundation:main Apr 3, 2025
89 of 94 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants