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

CI: Split the Build Jobs for Arm64 and x86_64 #14282

Merged
merged 1 commit into from
Oct 20, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 17 additions & 11 deletions .github/workflows/arch.yml
Original file line number Diff line number Diff line change
@@ -42,10 +42,16 @@ jobs:
exit
fi

# Ignore the Label "Area: Documentation", because it won't affect the Build Targets
query='.labels | map(select(.name != "Area: Documentation")) | '
select_name='.[].name'
select_length='length'

# Get the Labels for the PR: "Arch: risc-v \n Board: risc-v \n Size: XS"
# If GitHub CLI Fails: Build all targets
labels=$(gh pr view $pr --repo $GITHUB_REPOSITORY --json labels --jq '.labels[] | .name' || echo "")
numlabels=$(gh pr view $pr --repo $GITHUB_REPOSITORY --json labels --jq '.[] | length' || echo "")
labels=$(gh pr view $pr --repo $GITHUB_REPOSITORY --json labels --jq "$query$select_name" || echo "")
numlabels=$(gh pr view $pr --repo $GITHUB_REPOSITORY --json labels --jq "$query$select_length" || echo "")
echo "labels=$labels"
echo "numlabels=$numlabels" | tee -a $GITHUB_OUTPUT

# Identify the Size, Arch and Board Labels
@@ -190,37 +196,37 @@ jobs:

# For "Arch / Board: arm": Build arm-01, arm-02, ...
if [[ "$arch_contains_arm" == "1" || "$board_contains_arm" == "1" ]]; then
if [[ "$board" != *"arm"* ]]; then
if [[ "$board" != *"arm-"* ]]; then
skip_build=1
fi

# For "Arch / Board: arm64": Build other
# For "Arch / Board: arm64": Build arm64-01
elif [[ "$arch_contains_arm64" == "1" || "$board_contains_arm64" == "1" ]]; then
if [[ "$board" != *"other"* ]]; then
if [[ "$board" != *"arm64-"* ]]; then
skip_build=1
fi

# For "Arch / Board: risc-v": Build risc-v-01, risc-v-02
# For "Arch / Board: risc-v": Build risc-v-01, risc-v-02, ...
elif [[ "$arch_contains_riscv" == "1" || "$board_contains_riscv" == "1" ]]; then
if [[ "$board" != *"risc-v"* ]]; then
if [[ "$board" != *"risc-v-"* ]]; then
skip_build=1
fi

# For "Arch / Board: simulator": Build sim-01, sim-02
elif [[ "$arch_contains_sim" == "1" || "$board_contains_sim" == "1" ]]; then
if [[ "$board" != *"sim"* ]]; then
if [[ "$board" != *"sim-"* ]]; then
skip_build=1
fi

# For "Arch / Board: x86_64": Build other
# For "Arch / Board: x86_64": Build x86_64-01
elif [[ "$arch_contains_x86_64" == "1" || "$board_contains_x86_64" == "1" ]]; then
if [[ "$board" != *"other"* ]]; then
if [[ "$board" != *"x86_64-"* ]]; then
skip_build=1
fi

# For "Arch / Board: xtensa": Build xtensa-01, xtensa-02
elif [[ "$arch_contains_xtensa" == "1" || "$board_contains_xtensa" == "1" ]]; then
if [[ "$board" != *"xtensa"* ]]; then
if [[ "$board" != *"xtensa-"* ]]; then
skip_build=1
fi

2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -125,7 +125,7 @@ jobs:
os: Linux
boards: |
[
"arm-01", "other", "risc-v-01", "sim-01", "xtensa-01",
"arm-01", "risc-v-01", "sim-01", "xtensa-01", "arm64-01", "x86_64-01", "other",
"arm-02", "risc-v-02", "sim-02", "xtensa-02",
"arm-03", "risc-v-03",
"arm-04", "risc-v-04",
11 changes: 11 additions & 0 deletions tools/ci/testlist/arm64-01.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/arm64

# arm64 Boards build by CMake
CMake,qemu-armv8a:citest
CMake,qemu-armv8a:citest_smp
CMake,qemu-armv8a:nsh
CMake,qemu-armv8a:nsh_fiq
CMake,qemu-armv8a:nsh_gicv2
CMake,qemu-armv8a:nsh_smp
CMake,qemu-armv8a:nsh_smp_tickless
CMake,qemu-armv8a:sotest
16 changes: 0 additions & 16 deletions tools/ci/testlist/other.dat
Original file line number Diff line number Diff line change
@@ -11,22 +11,6 @@

/x86

# x86_64-elf-gcc from homebrew doesn't seem to
# provide __udivdi3 etc for -m32
/x86_64

# Sparc-gaisler-elf toolchain doesn't provide macOS binaries
/sparc
-xx3823:nsh

/arm64

# arm64 Boards build by CMake
CMake,qemu-armv8a:citest
CMake,qemu-armv8a:citest_smp
CMake,qemu-armv8a:nsh
CMake,qemu-armv8a:nsh_fiq
CMake,qemu-armv8a:nsh_gicv2
CMake,qemu-armv8a:nsh_smp
CMake,qemu-armv8a:nsh_smp_tickless
CMake,qemu-armv8a:sotest
3 changes: 3 additions & 0 deletions tools/ci/testlist/x86_64-01.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# x86_64-elf-gcc from homebrew doesn't seem to
# provide __udivdi3 etc for -m32
/x86_64