@@ -136,24 +136,6 @@ jobs:
136136 , ADD_CABAL_ARGS: "--enable-split-sections"
137137 , runner: "ubuntu-latest"
138138 , ARCH: 64
139- },
140- { image: "arm64v8/alpine:3.21"
141- , installCmd: "apk add"
142- , toolRequirements: "curl gcc g++ binutils binutils-gold coreutils bsd-compat-headers gmp-dev ncurses-dev libffi-dev make xz tar perl bash diffutils git gzip gnupg autoconf automake patchelf zlib zlib-dev bzip2 bzip2-dev findutils"
143- , DISTRO: "Alpine"
144- , ARTIFACT: "aarch64-linux-alpine"
145- , ADD_CABAL_ARGS: "--enable-split-sections"
146- , runner: "ubuntu-22.04-arm"
147- , ARCH: "ARM64"
148- },
149- { image: "arm64v8/debian:10"
150- , installCmd: "apt-get update && apt-get install -y"
151- , toolRequirements: "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf"
152- , DISTRO: "Debian"
153- , ARTIFACT: "aarch64-linux-deb10"
154- , ADD_CABAL_ARGS: "--enable-split-sections"
155- , runner: "ubuntu-22.04-arm"
156- , ARCH: "ARM64"
157139 }
158140 ]
159141
@@ -195,6 +177,62 @@ jobs:
195177 path : |
196178 ./out-${{ matrix.platform.ARTIFACT }}-${{ matrix.ghc }}.tar
197179
180+ build-arm :
181+ name : Build ARM binary
182+ runs-on : [self-hosted, Linux, ARM64, maerwald]
183+ env :
184+ AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
185+ AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
186+ S3_HOST : ${{ secrets.S3_HOST }}
187+ TARBALL_EXT : tar.xz
188+ ADD_CABAL_ARGS : " "
189+ DEBIAN_FRONTEND : noninteractive
190+ TZ : Asia/Singapore
191+ DISTRO : Debian
192+ ARCH : " ARM64"
193+ ARTIFACT : " aarch64-linux-deb10"
194+ strategy :
195+ fail-fast : true
196+ matrix :
197+ ghc : ["9.12.2", "9.10.1", "9.8.4", "9.6.7", "9.4.8"]
198+ steps :
199+ - uses : docker://hasufell/arm64v8-debian-haskell:10
200+ name : Cleanup (aarch64 linux)
201+ with :
202+ args : " find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +"
203+
204+ - name : git config
205+ run : |
206+ git config --global --get-all safe.directory | grep '^\*$' || git config --global --add safe.directory "*"
207+ shell : bash
208+
209+ - name : Checkout code
210+ uses : actions/checkout@v4
211+
212+ - uses : docker://hasufell/arm64v8-debian-haskell:10
213+ name : Run build (aarch64 linux)
214+ with :
215+ args : bash .github/scripts/build.sh
216+ env :
217+ GHC_VERSION : ${{ matrix.ghc }}
218+
219+ - uses : docker://hasufell/arm64v8-debian-haskell:10
220+ name : Run build (aarch64 linux)
221+ with :
222+ args : bash .github/scripts/tar.sh
223+ env :
224+ GHC_VERSION : ${{ matrix.ghc }}
225+
226+ - if : always()
227+ name : Upload artifact
228+ uses : actions/upload-artifact@v4
229+ with :
230+ if-no-files-found : error
231+ retention-days : 2
232+ name : artifacts-arm-${{ matrix.ghc }}
233+ path : |
234+ ./out-${{ matrix.platform.ARTIFACT }}-${{ matrix.ghc }}.tar
235+
198236 build-freebsd :
199237 name : Build binary (FreeBSD)
200238 runs-on : [self-hosted, FreeBSD, X64]
@@ -439,20 +477,6 @@ jobs:
439477 ARCH : 64
440478 ARTIFACT : " x86_64-linux-mint21.3"
441479 runs-on : [self-hosted, linux-space, maerwald]
442- - image : " arm64v8/alpine:3.21"
443- installCmd : " apk add"
444- toolRequirements : " curl gcc g++ binutils binutils-gold coreutils bsd-compat-headers gmp-dev ncurses-dev libffi-dev make xz tar perl bash diffutils git gzip gnupg autoconf automake patchelf zlib zlib-dev bzip2 bzip2-dev findutils"
445- DISTRO : " Alpine"
446- ARCH : ARM64
447- ARTIFACT : " aarch64-linux-alpine"
448- runs-on : [self-hosted, ARM64, maerwald]
449- - image : arm64v8/debian:10
450- installCmd : apt-get update && apt-get install -y
451- toolRequirements : libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf tree
452- DISTRO : Debian
453- ARCH : ARM64
454- ARTIFACT : " aarch64-linux-deb10"
455- runs-on : [self-hosted, ARM64, maerwald]
456480
457481 container :
458482 image : ${{ matrix.image }}
@@ -501,6 +525,59 @@ jobs:
501525 with :
502526 name : artifacts-${{ matrix.ARTIFACT }}-*
503527
528+ bindist-arm :
529+ name : Tar linux bindists (arm)
530+ runs-on : [self-hosted, Linux, ARM64, maerwald]
531+ needs : ["build-arm"]
532+ env :
533+ TARBALL_EXT : tar.xz
534+ DEBIAN_FRONTEND : noninteractive
535+ TZ : Asia/Singapore
536+ ARCH : " ARM64"
537+ ARTIFACT : " aarch64-linux-deb10"
538+ steps :
539+ - uses : docker://hasufell/arm64v8-debian-haskell:10
540+ name : Cleanup (aarch64 linux)
541+ with :
542+ args : " find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +"
543+
544+ - name : git config
545+ run : |
546+ git config --global --get-all safe.directory | grep '^\*$' || git config --global --add safe.directory "*"
547+ shell : bash
548+
549+ - uses : actions/checkout@v4
550+
551+ - uses : actions/download-artifact@v4
552+ with :
553+ pattern : artifacts-arm-*
554+ merge-multiple : true
555+ path : ./
556+
557+ - uses : docker://hasufell/arm64v8-debian-haskell:10
558+ name : Unpack (aarch64)
559+ with :
560+ args : bash .github/scripts/untar.sh
561+
562+ - if : matrix.platform.ARCH == 'ARM64'
563+ uses : docker://hasufell/arm64v8-debian-haskell:10
564+ name : Create bindist (aarch64 linux)
565+ with :
566+ args : bash .github/scripts/bindist.sh
567+
568+ - name : Upload bindist
569+ uses : actions/upload-artifact@v4
570+ with :
571+ if-no-files-found : error
572+ name : bindists-arm
573+ path : |
574+ ./out/*.tar.xz
575+ ./out/plan.json/*
576+
577+ - uses : geekyeggo/delete-artifact@v5
578+ with :
579+ name : artifacts-arm-*
580+
504581 bindist-mac :
505582 name : Tar bindists
506583 runs-on : ${{ matrix.platform.os }}
@@ -765,20 +842,6 @@ jobs:
765842 ARTIFACT : " x86_64-linux-rocky9"
766843 ARCH : 64
767844 runs-on : ubuntu-latest
768- - image : " arm64v8/alpine:3.21"
769- installCmd : " apk add"
770- toolRequirements : " curl gcc g++ binutils binutils-gold coreutils bsd-compat-headers gmp-dev ncurses-dev libffi-dev make xz tar perl bash diffutils git gzip gnupg autoconf automake patchelf tree zlib zlib-dev bzip2 bzip2-dev findutils"
771- DISTRO : " Alpine"
772- ARTIFACT : " aarch64-linux-alpine"
773- ARCH : ARM64
774- runs-on : ubuntu-22.04-arm
775- - image : arm64v8/debian:10
776- installCmd : apt-get update && apt-get install -y
777- toolRequirements : libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf tree
778- DISTRO : Debian
779- ARTIFACT : " aarch64-linux-deb10"
780- ARCH : ARM64
781- runs-on : ubuntu-22.04-arm
782845 container :
783846 image : ${{ matrix.image }}
784847 steps :
@@ -807,6 +870,42 @@ jobs:
807870 DISTRO : ${{ matrix.DISTRO }}
808871 ARCH : ${{ matrix.ARCH }}
809872
873+ test-arm :
874+ runs-on : [self-hosted, Linux, ARM64, maerwald]
875+ needs : ["bindist-arm"]
876+ env :
877+ TARBALL_EXT : tar.xz
878+ DEBIAN_FRONTEND : noninteractive
879+ TZ : Asia/Singapore
880+ DISTRO : Debian
881+ ARCH : " ARM64"
882+ ARTIFACT : " aarch64-linux-deb10"
883+ strategy :
884+ fail-fast : true
885+ steps :
886+ - uses : docker://hasufell/arm64v8-debian-haskell:10
887+ name : Cleanup (aarch64 linux)
888+ with :
889+ args : " find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +"
890+
891+ - name : git config
892+ run : |
893+ git config --global --get-all safe.directory | grep '^\*$' || git config --global --add safe.directory "*"
894+ shell : bash
895+
896+ - name : Checkout code
897+ uses : actions/checkout@v4
898+
899+ - uses : actions/download-artifact@v4
900+ with :
901+ name : bindists-arm
902+ path : ./out
903+
904+ - uses : docker://hasufell/arm64v8-debian-haskell:10
905+ name : Run test (aarch64 linux)
906+ with :
907+ args : bash .github/scripts/test.sh
908+
810909 test-mac :
811910 name : Test binary
812911 runs-on : ${{ matrix.platform.os }}
0 commit comments