@@ -136,24 +136,6 @@ jobs:
136
136
, ADD_CABAL_ARGS: "--enable-split-sections"
137
137
, runner: "ubuntu-latest"
138
138
, 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"
157
139
}
158
140
]
159
141
@@ -195,6 +177,62 @@ jobs:
195
177
path : |
196
178
./out-${{ matrix.platform.ARTIFACT }}-${{ matrix.ghc }}.tar
197
179
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
+
198
236
build-freebsd :
199
237
name : Build binary (FreeBSD)
200
238
runs-on : [self-hosted, FreeBSD, X64]
@@ -439,20 +477,6 @@ jobs:
439
477
ARCH : 64
440
478
ARTIFACT : " x86_64-linux-mint21.3"
441
479
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]
456
480
457
481
container :
458
482
image : ${{ matrix.image }}
@@ -501,6 +525,59 @@ jobs:
501
525
with :
502
526
name : artifacts-${{ matrix.ARTIFACT }}-*
503
527
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
+
504
581
bindist-mac :
505
582
name : Tar bindists
506
583
runs-on : ${{ matrix.platform.os }}
@@ -765,20 +842,6 @@ jobs:
765
842
ARTIFACT : " x86_64-linux-rocky9"
766
843
ARCH : 64
767
844
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
782
845
container :
783
846
image : ${{ matrix.image }}
784
847
steps :
@@ -807,6 +870,42 @@ jobs:
807
870
DISTRO : ${{ matrix.DISTRO }}
808
871
ARCH : ${{ matrix.ARCH }}
809
872
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
+
810
909
test-mac :
811
910
name : Test binary
812
911
runs-on : ${{ matrix.platform.os }}
0 commit comments