@@ -400,9 +400,141 @@ jobs:
400
400
path : |
401
401
./out/*
402
402
403
+ test-linux :
404
+ name : Test linux binaries
405
+ runs-on : ubuntu-latest
406
+ needs : ["build-linux"]
407
+ env :
408
+ TARBALL_EXT : tar.xz
409
+ ARCH : 64
410
+ DEBIAN_FRONTEND : noninteractive
411
+ TZ : Asia/Singapore
412
+ GHC_VERSION : 9.8.4
413
+ strategy :
414
+ fail-fast : false
415
+ matrix :
416
+ platform : [ { image: "debian:10"
417
+ , installCmd: "apt-get update && apt-get install -y"
418
+ , 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"
419
+ , DISTRO: "Debian"
420
+ , ARTIFACT: "x86_64-linux-deb10"
421
+ },
422
+ { image: "debian:11"
423
+ , installCmd: "apt-get update && apt-get install -y"
424
+ , 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"
425
+ , DISTRO: "Debian"
426
+ , ARTIFACT: "x86_64-linux-deb11"
427
+ },
428
+ { image: "debian:12"
429
+ , installCmd: "apt-get update && apt-get install -y"
430
+ , 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"
431
+ , DISTRO: "Debian"
432
+ , ARTIFACT: "x86_64-linux-deb12"
433
+ },
434
+ { image: "ubuntu:20.04"
435
+ , installCmd: "apt-get update && apt-get install -y"
436
+ , 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"
437
+ , DISTRO: "Ubuntu"
438
+ , ARTIFACT: "x86_64-linux-ubuntu20.04"
439
+ },
440
+ { image: "ubuntu:22.04"
441
+ , installCmd: "apt-get update && apt-get install -y"
442
+ , 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"
443
+ , DISTRO: "Ubuntu"
444
+ , ARTIFACT: "x86_64-linux-ubuntu22.04"
445
+ },
446
+ { image: "ubuntu:24.04"
447
+ , installCmd: "apt-get update && apt-get install -y"
448
+ , 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 libncurses6 libtinfo6 patchelf"
449
+ , DISTRO: "Ubuntu"
450
+ , ARTIFACT: "x86_64-linux-ubuntu24.04"
451
+ },
452
+ { image: "linuxmintd/mint20.3-amd64"
453
+ , installCmd: "apt-get update && apt-get install -y"
454
+ , 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"
455
+ , DISTRO: "Mint"
456
+ , ARTIFACT: "x86_64-linux-mint20"
457
+ },
458
+ { image: "linuxmintd/mint21.3-amd64"
459
+ , installCmd: "apt-get update && apt-get install -y"
460
+ , 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"
461
+ , DISTRO: "Mint"
462
+ , ARTIFACT: "x86_64-linux-mint21"
463
+ },
464
+ { image: "fedora:33"
465
+ , installCmd: "dnf install -y"
466
+ , toolRequirements: "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf"
467
+ , DISTRO: "Fedora"
468
+ , ARTIFACT: "x86_64-linux-fedora33"
469
+ },
470
+ { image: "fedora:37"
471
+ , installCmd: "dnf install -y"
472
+ , toolRequirements: "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf"
473
+ , DISTRO: "Fedora"
474
+ , ARTIFACT: "x86_64-linux-fedora37"
475
+ },
476
+ { image: "rockylinux:8"
477
+ , installCmd: "yum -y install epel-release && yum install -y --allowerasing"
478
+ , toolRequirements: "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf"
479
+ , DISTRO: "Unknown"
480
+ , ARTIFACT: "x86_64-linux-rocky8"
481
+ },
482
+ { image: "rockylinux:9"
483
+ , installCmd: "yum -y install epel-release && yum install -y --allowerasing"
484
+ , toolRequirements: "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf"
485
+ , DISTRO: "Unknown"
486
+ , ARTIFACT: "x86_64-linux-rocky9"
487
+ },
488
+ { image: "alpine:latest"
489
+ , installCmd: "apk update && apk add"
490
+ , toolRequirements: "binutils-gold curl gcc g++ gmp-dev gmp-static libc-dev libffi-dev make musl-dev ncurses-dev perl tar xz autoconf automake bzip2 coreutils elfutils-dev findutils git jq bzip2-dev patch python3 sqlite sudo wget which zlib-dev patchelf zlib zlib-dev zlib-static"
491
+ , DISTRO: "Unknown"
492
+ , ARTIFACT: "x86_64-linux-unknown"
493
+ },
494
+ { image: "alpine:3.12"
495
+ , installCmd: "apk update && apk add"
496
+ , toolRequirements: "binutils-gold curl gcc g++ gmp-dev libc-dev libffi-dev make musl-dev ncurses-dev perl tar xz autoconf automake bzip2 coreutils elfutils-dev findutils git jq bzip2-dev patch python3 sqlite sudo wget which zlib-dev patchelf zlib zlib-dev zlib-static"
497
+ , DISTRO: "Unknown"
498
+ , ARTIFACT: "x86_64-linux-alpine312"
499
+ },
500
+ { image: "alpine:3.19"
501
+ , installCmd: "apk update && apk add"
502
+ , toolRequirements: "binutils-gold curl gcc g++ gmp-dev libc-dev libffi-dev make musl-dev ncurses-dev perl tar xz autoconf automake bzip2 coreutils elfutils-dev findutils git jq bzip2-dev patch python3 sqlite sudo wget which zlib-dev patchelf zlib zlib-dev zlib-static"
503
+ , DISTRO: "Unknown"
504
+ , ARTIFACT: "x86_64-linux-alpine319"
505
+ },
506
+ { image: "ghcr.io/void-linux/void-glibc:latest"
507
+ , installCmd: "xbps-install -Suy xbps && xbps-install -Sy"
508
+ , toolRequirements: "ncurses-libtinfo-libs autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils findutils gcc gmp gmp-devel jq lbzip2 make ncurses ncurses-devel openssh patch perl python3 sqlite sudo wget which xz tar zlib-devel patchelf"
509
+ , DISTRO: "Unknown"
510
+ , ARTIFACT: "x86_64-linux-void-glibc"
511
+ }
512
+ ]
513
+ container :
514
+ image : ${{ matrix.platform.image }}
515
+ steps :
516
+ - name : Install requirements
517
+ shell : sh
518
+ run : |
519
+ ${{ matrix.platform.installCmd }} curl bash git ${{ matrix.platform.toolRequirements }}
520
+
521
+ - uses : actions/download-artifact@v4
522
+ with :
523
+ name : artifacts-${{ matrix.platform.ARTIFACT }}
524
+ path : ./out
525
+
526
+ - uses : actions/checkout@v4
527
+
528
+ - name : Run test
529
+ run : |
530
+ bash .github/scripts/test.sh
531
+ env :
532
+ ARTIFACT : ${{ matrix.platform.ARTIFACT }}
533
+ DISTRO : ${{ matrix.platform.DISTRO }}
534
+
403
535
release :
404
536
name : release
405
- needs : ["build-linux", "build-linux-32bit", "build-arm", "build-mac-x86_64", "build-mac-aarch64", "build-win", "build-freebsd-x86_64"]
537
+ needs : ["build-linux", "build-linux-32bit", "build-arm", "build-mac-x86_64", "build-mac-aarch64", "build-win", "build-freebsd-x86_64", "test-linux" ]
406
538
runs-on : ubuntu-latest
407
539
if : startsWith(github.ref, 'refs/tags/')
408
540
steps :
0 commit comments