Skip to content

Commit d98845a

Browse files
authored
Merge pull request #6772 from BOINC/vko_arm_build
[ci][linux] add arm32 build
2 parents c3f5295 + ba738a2 commit d98845a

File tree

17 files changed

+612
-64
lines changed

17 files changed

+612
-64
lines changed

.github/workflows/debrepo/package_depends.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# This file is part of BOINC.
44
# http://boinc.berkeley.edu
5-
# Copyright (C) 2024 University of California
5+
# Copyright (C) 2026 University of California
66
#
77
# BOINC is free software; you can redistribute it and/or modify it
88
# under the terms of the GNU Lesser General Public License
@@ -28,7 +28,7 @@ function exit_usage() {
2828

2929
case "$1_$2" in
3030
"focal_linux_client" | "jammy_linux_client" | "noble_linux_client" | "buster_linux_client" | "bullseye_linux_client" | "bookworm_linux_client" | "trixie_linux_client")
31-
echo "libc6,libxss1 (>= 1.2.3),ca-certificates"
31+
echo "libc6,libxss1 (>= 1.2.3),ca-certificates,libatomic1"
3232
;;
3333
*) echo "libc6"
3434
;;

.github/workflows/linux-package.yml

Lines changed: 66 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This file is part of BOINC.
22
# https://boinc.berkeley.edu
3-
# Copyright (C) 2025 University of California
3+
# Copyright (C) 2026 University of California
44
#
55
# BOINC is free software; you can redistribute it and/or modify it
66
# under the terms of the GNU Lesser General Public License
@@ -55,7 +55,7 @@ jobs:
5555
strategy:
5656
matrix:
5757
type: [client, manager]
58-
arch: [arm64, amd64]
58+
arch: [arm64, amd64, armhf]
5959
fail-fast: false
6060
steps:
6161
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
@@ -93,6 +93,11 @@ jobs:
9393
run: |
9494
apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu binutils-aarch64-linux-gnu
9595
96+
- name: Install dependencies for armhf
97+
if: matrix.arch == 'armhf'
98+
run: |
99+
apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf binutils-arm-linux-gnueabihf
100+
96101
- name: Install updated version of autoconf
97102
run: |
98103
if [ ! -f ${{ env.AUTOCONF_WITH_VERSION }}.tar.gz ]; then
@@ -128,6 +133,18 @@ jobs:
128133
. linux/arm64/ci_configure_manager.sh --exec_prefix "/usr/local"
129134
make -j $(nproc --all)
130135
136+
- name: Configure client (for armhf)
137+
if: success() && matrix.type == 'client' && matrix.arch == 'armhf'
138+
run: |
139+
. linux/armhf/ci_configure_client.sh --exec_prefix "/usr/local"
140+
make -j $(nproc --all)
141+
142+
- name: Configure manager (for armhf)
143+
if: success() && matrix.type == 'manager' && matrix.arch == 'armhf'
144+
run: |
145+
. linux/armhf/ci_configure_manager.sh --exec_prefix "/usr/local"
146+
make -j $(nproc --all)
147+
131148
- name: Configure client (for amd64)
132149
if: success() && matrix.type == 'client' && matrix.arch == 'amd64'
133150
run: |
@@ -170,7 +187,7 @@ jobs:
170187
matrix:
171188
os: [focal, jammy, noble, buster, bullseye, bookworm, trixie]
172189
type: [client, manager]
173-
arch: [arm64, amd64]
190+
arch: [arm64, amd64, armhf]
174191
fail-fast: false
175192
steps:
176193
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
@@ -278,7 +295,7 @@ jobs:
278295
matrix:
279296
os: [fc37, fc38, fc39, fc40, fc41, fc42, fc43, suse15_4, suse15_5, suse15_6, suse16_0]
280297
type: [client, manager]
281-
arch: [arm64, amd64]
298+
arch: [arm64, amd64, armhf]
282299
fail-fast: false
283300
env:
284301
PUBKEY_HASH: D4460B4F0EEDE2C0662092F640254C9B29853EA6
@@ -313,6 +330,8 @@ jobs:
313330
arch="x86_64"
314331
elif [ "${{ matrix.arch }}" == "arm64" ]; then
315332
arch="aarch64"
333+
elif [ "${{ matrix.arch }}" == "armhf" ]; then
334+
arch="armv7hl"
316335
else
317336
echo "Unsupported architecture ${arch}"
318337
exit 1
@@ -667,12 +686,14 @@ jobs:
667686
matrix:
668687
os: [buster, bullseye, bookworm, trixie]
669688
type: [install, upgrade, upgrade-from-alpha, upgrade-from-stable]
670-
arch: [amd64, arm64]
689+
arch: [amd64, arm64, armhf]
671690
include:
672691
- arch: amd64
673692
runner: ubuntu-latest
674693
- arch: arm64
675694
runner: ubuntu-24.04-arm
695+
- arch: armhf
696+
runner: ubuntu-24.04-arm
676697
fail-fast: false
677698
steps:
678699
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
@@ -684,6 +705,13 @@ jobs:
684705
run: |
685706
sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list
686707
sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list
708+
709+
- name: Enable armhf architecture
710+
if: success() && matrix.arch == 'armhf'
711+
run: |
712+
dpkg --add-architecture armhf
713+
apt update
714+
687715
- name: Install dependencies
688716
if: success()
689717
run: |
@@ -748,18 +776,26 @@ jobs:
748776
matrix:
749777
os: [focal, jammy, noble]
750778
type: [install, upgrade, upgrade-from-ppa, upgrade-from-alpha, upgrade-from-stable]
751-
arch: [amd64, arm64]
779+
arch: [amd64, arm64, armhf]
752780
include:
753781
- arch: amd64
754782
runner: ubuntu-latest
755783
- arch: arm64
756784
runner: ubuntu-24.04-arm
785+
- arch: armhf
786+
runner: ubuntu-24.04-arm
757787
fail-fast: false
758788
steps:
759789
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
760790
with:
761791
fetch-depth: 2
762792

793+
- name: Enable armhf architecture
794+
if: success() && matrix.arch == 'armhf'
795+
run: |
796+
dpkg --add-architecture armhf
797+
apt update
798+
763799
- name: Install dependencies
764800
if: success()
765801
run: |
@@ -1069,6 +1105,12 @@ jobs:
10691105
with:
10701106
name: linux-package_client_amd64_${{ matrix.os }}_${{ github.event.pull_request.head.sha }}
10711107

1108+
- name: Download client armhf
1109+
if: ${{ success() && env.SKIP_RUN == 0 }}
1110+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
1111+
with:
1112+
name: linux-package_client_armhf_${{ matrix.os }}_${{ github.event.pull_request.head.sha }}
1113+
10721114
- name: Download manager arm64
10731115
if: ${{ success() && env.SKIP_RUN == 0 }}
10741116
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
@@ -1081,6 +1123,12 @@ jobs:
10811123
with:
10821124
name: linux-package_manager_amd64_${{ matrix.os }}_${{ github.event.pull_request.head.sha }}
10831125

1126+
- name: Download manager armhf
1127+
if: ${{ success() && env.SKIP_RUN == 0 }}
1128+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
1129+
with:
1130+
name: linux-package_manager_armhf_${{ matrix.os }}_${{ github.event.pull_request.head.sha }}
1131+
10841132
- name: Update or create the repository using aptly
10851133
if: ${{ success() && env.SKIP_RUN == 0 }}
10861134
run: |
@@ -1179,6 +1227,12 @@ jobs:
11791227
with:
11801228
name: linux-package_client_amd64_${{ matrix.os }}_${{ github.event.pull_request.head.sha }}
11811229

1230+
- name: Download client armhf
1231+
if: ${{ success() && env.SKIP_RUN == 0 }}
1232+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
1233+
with:
1234+
name: linux-package_client_armhf_${{ matrix.os }}_${{ github.event.pull_request.head.sha }}
1235+
11821236
- name: Download manager arm64
11831237
if: ${{ success() && env.SKIP_RUN == 0 }}
11841238
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
@@ -1191,6 +1245,12 @@ jobs:
11911245
with:
11921246
name: linux-package_manager_amd64_${{ matrix.os }}_${{ github.event.pull_request.head.sha }}
11931247

1248+
- name: Download manager armhf
1249+
if: ${{ success() && env.SKIP_RUN == 0 }}
1250+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
1251+
with:
1252+
name: linux-package_manager_armhf_${{ matrix.os }}_${{ github.event.pull_request.head.sha }}
1253+
11941254
- name: Update or create the repository
11951255
if: ${{ success() && env.SKIP_RUN == 0 }}
11961256
run: |

0 commit comments

Comments
 (0)