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
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
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