From 8df19f75f22c23e91a8158046c5899639d747dfa Mon Sep 17 00:00:00 2001 From: Lup Yuen Lee Date: Wed, 9 Oct 2024 22:00:12 +0800 Subject: [PATCH] CI: Split the RISC-V Build Jobs into smaller jobs To speed up the CI Workflow, this PR splits the CI Build Jobs for RISC-V into smaller jobs. Each job will now complete within 1 hour. Before the PR: There are 2 jobs for RISC-V, each requiring more than 1.5 hours - `risc-v-01` (1 hour 42 mins): BL602, Ox64, ESP32-C3 / C6 / H2 - `risc-v-02` (1 hour 41 mins): K230, Icicle, QEMU, RV32M1-Vega After the PR: The build is spread across 6 jobs for RISC-V, each job completes within 1 hour - `risc-v-01` (19 mins): BL602, Ox64 - `risc-v-02` (44 mins): ESP32-C3 - `risc-v-03` (45 mins): ESP32-C6, ESP32-H2 - `risc-v-04` (31 mins): K230, Icicle - `risc-v-05` (41 mins): QEMU CITest - `risc-v-06` (38 mins): Rest of QEMU, RV32M1-Vega Following the same convention as the Arm32 Build Jobs, the above jobs are sorted by Target Name. Performance of the RISC-V Build Jobs is discussed in https://github.com/apache/nuttx/issues/13775 --- .github/workflows/build.yml | 6 +++++- tools/ci/testlist/risc-v-01.dat | 3 ++- tools/ci/testlist/risc-v-02.dat | 7 +------ tools/ci/testlist/risc-v-03.dat | 2 ++ tools/ci/testlist/risc-v-04.dat | 4 ++++ tools/ci/testlist/risc-v-05.dat | 1 + tools/ci/testlist/risc-v-06.dat | 7 +++++++ 7 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 tools/ci/testlist/risc-v-03.dat create mode 100644 tools/ci/testlist/risc-v-04.dat create mode 100644 tools/ci/testlist/risc-v-05.dat create mode 100644 tools/ci/testlist/risc-v-06.dat diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8b7326686b4c1..7817dd41128ab 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -127,7 +127,11 @@ jobs: [ "arm-01", "other", "risc-v-01", "sim-01", "xtensa-01", "arm-02", "risc-v-02", "sim-02", "xtensa-02", - "arm-03", "arm-04", "arm-05", "arm-06", "arm-07", "arm-08", "arm-09", "arm-10", "arm-11", "arm-12", "arm-13", "arm-14" + "arm-03", "risc-v-03", + "arm-04", "risc-v-04", + "arm-05", "risc-v-05", + "arm-06", "risc-v-06", + "arm-07", "arm-08", "arm-09", "arm-10", "arm-11", "arm-12", "arm-13", "arm-14" ] # Run the selected Linux Builds diff --git a/tools/ci/testlist/risc-v-01.dat b/tools/ci/testlist/risc-v-01.dat index e59070121fe55..8231e1f6f8cbb 100644 --- a/tools/ci/testlist/risc-v-01.dat +++ b/tools/ci/testlist/risc-v-01.dat @@ -1 +1,2 @@ -/risc-v/[a-e]* +/risc-v/[a-d]* +/risc-v/e[0-r]* diff --git a/tools/ci/testlist/risc-v-02.dat b/tools/ci/testlist/risc-v-02.dat index 20783e8e122d1..91c1a0456fa12 100644 --- a/tools/ci/testlist/risc-v-02.dat +++ b/tools/ci/testlist/risc-v-02.dat @@ -1,6 +1 @@ -/risc-v/[f-s]* --,arty_a7:.+ - -# Boards build by CMake -CMake,rv-virt:smp -CMake,rv-virt:smp64 \ No newline at end of file +/risc-v/esp32c[0-5]* diff --git a/tools/ci/testlist/risc-v-03.dat b/tools/ci/testlist/risc-v-03.dat new file mode 100644 index 0000000000000..a229385a8b1aa --- /dev/null +++ b/tools/ci/testlist/risc-v-03.dat @@ -0,0 +1,2 @@ +/risc-v/esp32c[6-z]* +/risc-v/esp32[d-z]* diff --git a/tools/ci/testlist/risc-v-04.dat b/tools/ci/testlist/risc-v-04.dat new file mode 100644 index 0000000000000..4a8ae59e06046 --- /dev/null +++ b/tools/ci/testlist/risc-v-04.dat @@ -0,0 +1,4 @@ +/risc-v/e[t-z]* +/risc-v/[f-p]* +/risc-v/q[0-d]* +-,arty_a7:.+ diff --git a/tools/ci/testlist/risc-v-05.dat b/tools/ci/testlist/risc-v-05.dat new file mode 100644 index 0000000000000..084e31c678d7b --- /dev/null +++ b/tools/ci/testlist/risc-v-05.dat @@ -0,0 +1 @@ +/risc-v/qemu-rv/rv-virt/configs/[a-c]* diff --git a/tools/ci/testlist/risc-v-06.dat b/tools/ci/testlist/risc-v-06.dat new file mode 100644 index 0000000000000..21b3406b5b519 --- /dev/null +++ b/tools/ci/testlist/risc-v-06.dat @@ -0,0 +1,7 @@ +/risc-v/qemu-rv/rv-virt/configs/[d-z]* +/risc-v/q[f-z]* +/risc-v/[r-z]* + +# Boards build by CMake +CMake,rv-virt:smp +CMake,rv-virt:smp64