14
14
ghc_targets :
15
15
type : string
16
16
default : " install_bin install_lib update_package_db"
17
+ gmp :
18
+ type : string
19
+ default : 6.3.0
17
20
cabal :
18
21
type : string
19
22
default : 3.14.2.0
25
28
GHC_VERSION : ${{ inputs.ghc }}
26
29
GHC_TARGETS : ${{ inputs.ghc_targets }}
27
30
CABAL_VERSION : ${{ inputs.cabal }}
31
+ GMP_VERSION : ${{ inputs.gmp }}
28
32
DEBIAN_FRONTEND : noninteractive
29
33
TZ : Asia/Singapore
30
34
@@ -63,89 +67,19 @@ jobs:
63
67
fail-fast : false
64
68
matrix :
65
69
branch : ${{ fromJSON(inputs.branches) }}
66
- platform : [ { image: "debian:11"
67
- , installCmd: "apt-get update && apt-get install -y"
68
- , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
69
- , DISTRO: "Debian"
70
- , ARTIFACT: "x86_64-linux-deb11"
71
- , ADD_CABAL_ARGS: "--enable-split-sections"
72
- },
73
- { image: "debian:12"
74
- , installCmd: "apt-get update && apt-get install -y"
75
- , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
76
- , DISTRO: "Debian"
77
- , ARTIFACT: "x86_64-linux-deb12"
78
- , ADD_CABAL_ARGS: "--enable-split-sections"
79
- },
80
- { image: "ubuntu:20.04"
81
- , installCmd: "apt-get update && apt-get install -y"
82
- , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
83
- , DISTRO: "Ubuntu"
84
- , ARTIFACT: "x86_64-linux-ubuntu20.04"
85
- , ADD_CABAL_ARGS: "--enable-split-sections"
86
- },
87
- { image: "ubuntu:22.04"
88
- , installCmd: "apt-get update && apt-get install -y"
89
- , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
90
- , DISTRO: "Ubuntu"
91
- , ARTIFACT: "x86_64-linux-ubuntu22.04"
92
- , ADD_CABAL_ARGS: "--enable-split-sections"
93
- },
94
- { image: "ubuntu:24.04"
95
- , installCmd: "apt-get update && apt-get install -y"
96
- , toolRequirements: "${{ needs.tool-output.outputs.apt_tools_ncurses6 }}"
97
- , DISTRO: "Ubuntu"
98
- , ARTIFACT: "x86_64-linux-ubuntu24.04"
99
- , ADD_CABAL_ARGS: "--enable-split-sections"
100
- },
101
- { image: "fedora:33"
102
- , installCmd: "dnf install -y"
103
- , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
104
- , DISTRO: "Fedora"
105
- , ARTIFACT: "x86_64-linux-fedora33"
106
- , ADD_CABAL_ARGS: "--enable-split-sections"
107
- },
108
- { image: "fedora:36"
109
- , installCmd: "dnf install -y"
110
- , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
111
- , DISTRO: "Fedora"
112
- , ARTIFACT: "x86_64-linux-fedora36"
113
- , ADD_CABAL_ARGS: "--enable-split-sections"
114
- },
115
- { image: "fedora:38"
116
- , installCmd: "dnf install -y"
117
- , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
118
- , DISTRO: "Fedora"
119
- , ARTIFACT: "x86_64-linux-fedora38"
120
- , ADD_CABAL_ARGS: "--enable-split-sections"
121
- },
122
- { image: "rockylinux:8"
70
+ platform : [ { image: "rockylinux:8"
123
71
, installCmd: "yum -y install epel-release && yum install -y --allowerasing"
124
72
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
125
- , DISTRO: "Unknown "
126
- , ARTIFACT: "x86_64-linux-rocky8 "
73
+ , DISTRO: "Rockylinux "
74
+ , ARTIFACT: "x86_64-linux-glibc "
127
75
, ADD_CABAL_ARGS: "--enable-split-sections"
128
76
},
129
77
{ image: "alpine:3.20"
130
78
, installCmd: "apk update && apk add"
131
79
, toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
132
- , DISTRO: "Unknown "
133
- , ARTIFACT: "x86_64-linux-unknown "
80
+ , DISTRO: "Alpine "
81
+ , ARTIFACT: "x86_64-linux-musl-static "
134
82
, ADD_CABAL_ARGS: "--enable-split-sections --enable-executable-static"
135
- },
136
- { image: "alpine:3.12"
137
- , installCmd: "apk update && apk add"
138
- , toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
139
- , DISTRO: "Unknown"
140
- , ARTIFACT: "x86_64-linux-alpine312"
141
- , ADD_CABAL_ARGS: "--enable-split-sections"
142
- },
143
- { image: "alpine:3.20"
144
- , installCmd: "apk update && apk add"
145
- , toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
146
- , DISTRO: "Unknown"
147
- , ARTIFACT: "x86_64-linux-alpine320"
148
- , ADD_CABAL_ARGS: "--enable-split-sections"
149
83
}
150
84
]
151
85
container :
@@ -165,15 +99,35 @@ jobs:
165
99
with :
166
100
ref : ${{ matrix.branch }}
167
101
102
+ - name : install GMP
103
+ if : matrix.platform.DISTRO == 'Rockylinux'
104
+ run : |
105
+ set -eux
106
+
107
+ curl -O -L https://gmplib.org/download/gmp/gmp-${{ env.GMP_VERSION }}.tar.xz
108
+ tar xf gmp-${{ env.GMP_VERSION }}.tar.xz
109
+ cd gmp-${{ env.GMP_VERSION }}
110
+ ./configure --prefix=$HOME/.local/ --disable-shared
111
+ make install
112
+ cd ..
113
+ echo "extra-lib-dirs: $HOME/.local/lib/" >> cabal.release.project.local
114
+
168
115
- name : Run build
169
116
run : |
170
117
bash .github/scripts/build.sh
171
-
172
118
env :
173
119
ARTIFACT : ${{ matrix.platform.ARTIFACT }}
174
120
DISTRO : ${{ matrix.platform.DISTRO }}
175
121
ADD_CABAL_ARGS : ${{ matrix.platform.ADD_CABAL_ARGS }}
176
122
123
+ - name : check linking
124
+ if : matrix.platform.DISTRO == 'Rockylinux'
125
+ run : |
126
+ cd out
127
+ tar xf *.${TARBALL_EXT}
128
+ ldd cabal | grep --quiet gmp && exit 1
129
+ rm cabal plan.json
130
+
177
131
- if : always()
178
132
name : Upload artifact
179
133
uses : ./.github/actions/upload
@@ -456,6 +410,7 @@ jobs:
456
410
env :
457
411
TARBALL_EXT : tar.xz
458
412
ARCH : 64
413
+ ADD_CABAL_ARGS : " "
459
414
strategy :
460
415
fail-fast : false
461
416
matrix :
@@ -464,85 +419,91 @@ jobs:
464
419
, installCmd: "apt-get update && apt-get install -y"
465
420
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
466
421
, DISTRO: "Debian"
467
- , ARTIFACT: "x86_64-linux-deb11"
468
- , ADD_CABAL_ARGS: "--enable-split-sections"
422
+ , ARTIFACT: "x86_64-linux-glibc"
469
423
},
470
424
{ image: "debian:12"
471
425
, installCmd: "apt-get update && apt-get install -y"
472
426
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
473
427
, DISTRO: "Debian"
474
- , ARTIFACT: "x86_64-linux-deb12"
475
- , ADD_CABAL_ARGS: "--enable-split-sections"
428
+ , ARTIFACT: "x86_64-linux-glibc"
476
429
},
477
430
{ image: "ubuntu:20.04"
478
431
, installCmd: "apt-get update && apt-get install -y"
479
432
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
480
433
, DISTRO: "Ubuntu"
481
- , ARTIFACT: "x86_64-linux-ubuntu20.04"
482
- , ADD_CABAL_ARGS: "--enable-split-sections"
434
+ , ARTIFACT: "x86_64-linux-glibc"
483
435
},
484
436
{ image: "ubuntu:22.04"
485
437
, installCmd: "apt-get update && apt-get install -y"
486
438
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
487
439
, DISTRO: "Ubuntu"
488
- , ARTIFACT: "x86_64-linux-ubuntu22.04"
489
- , ADD_CABAL_ARGS: "--enable-split-sections"
440
+ , ARTIFACT: "x86_64-linux-glibc"
490
441
},
491
442
{ image: "ubuntu:24.04"
492
443
, installCmd: "apt-get update && apt-get install -y"
493
444
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools_ncurses6 }}"
494
445
, DISTRO: "Ubuntu"
495
- , ARTIFACT: "x86_64-linux-ubuntu24.04"
496
- , ADD_CABAL_ARGS: "--enable-split-sections"
446
+ , ARTIFACT: "x86_64-linux-glibc"
447
+ },
448
+ { image: "linuxmintd/mint20.3-amd64"
449
+ , installCmd: "apt-get update && apt-get install -y"
450
+ , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
451
+ , DISTRO: "Mint"
452
+ , ARTIFACT: "x86_64-linux-glibc"
453
+ },
454
+ { image: "linuxmintd/mint21.3-amd64"
455
+ , installCmd: "apt-get update && apt-get install -y"
456
+ , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
457
+ , DISTRO: "Mint"
458
+ , ARTIFACT: "x86_64-linux-glibc"
497
459
},
498
460
{ image: "fedora:33"
499
461
, installCmd: "dnf install -y"
500
462
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
501
463
, DISTRO: "Fedora"
502
- , ARTIFACT: "x86_64-linux-fedora33"
503
- , ADD_CABAL_ARGS: "--enable-split-sections"
464
+ , ARTIFACT: "x86_64-linux-glibc"
504
465
},
505
- { image: "fedora:36 "
466
+ { image: "fedora:37 "
506
467
, installCmd: "dnf install -y"
507
468
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
508
469
, DISTRO: "Fedora"
509
- , ARTIFACT: "x86_64-linux-fedora36"
510
- , ADD_CABAL_ARGS: "--enable-split-sections"
470
+ , ARTIFACT: "x86_64-linux-glibc"
511
471
},
512
- { image: "fedora:38 "
472
+ { image: "fedora:42 "
513
473
, installCmd: "dnf install -y"
514
474
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
515
475
, DISTRO: "Fedora"
516
- , ARTIFACT: "x86_64-linux-fedora38"
517
- , ADD_CABAL_ARGS: "--enable-split-sections"
476
+ , ARTIFACT: "x86_64-linux-glibc"
518
477
},
519
478
{ image: "rockylinux:8"
520
479
, installCmd: "yum -y install epel-release && yum install -y --allowerasing"
521
480
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
522
- , DISTRO: "Unknown"
523
- , ARTIFACT: "x86_64-linux-rocky8"
524
- , ADD_CABAL_ARGS: "--enable-split-sections"
481
+ , DISTRO: "Rockylinux"
482
+ , ARTIFACT: "x86_64-linux-glibc"
483
+ },
484
+ { image: "rockylinux:9"
485
+ , installCmd: "yum -y install epel-release && yum install -y --allowerasing"
486
+ , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
487
+ , DISTRO: "Rockylinux"
488
+ , ARTIFACT: "x86_64-linux-glibc"
525
489
},
526
490
{ image: "alpine:3.20"
527
491
, installCmd: "apk update && apk add"
528
492
, toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
529
- , DISTRO: "Unknown"
530
- , ARTIFACT: "x86_64-linux-unknown"
531
- , ADD_CABAL_ARGS: "--enable-split-sections --enable-executable-static"
493
+ , DISTRO: "Alpine"
494
+ , ARTIFACT: "x86_64-linux-musl-static"
532
495
},
533
496
{ image: "alpine:3.12"
534
497
, installCmd: "apk update && apk add"
535
498
, toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
536
- , DISTRO: "Unknown"
537
- , ARTIFACT: "x86_64-linux-alpine312"
538
- , ADD_CABAL_ARGS: "--enable-split-sections"
499
+ , DISTRO: "Alpine"
500
+ , ARTIFACT: "x86_64-linux-musl-static"
539
501
},
540
- { image: "alpine:3.20 "
541
- , installCmd: "apk update && apk add "
542
- , toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
502
+ { image: "ghcr.io/void-linux/void-glibc:latest "
503
+ , installCmd: "xbps-install -Suy xbps && xbps-install -Sy "
504
+ , toolRequirements: "${{ needs.tool-output.outputs.xbps_tools }}"
543
505
, DISTRO: "Unknown"
544
- , ARTIFACT: "x86_64-linux-alpine320"
545
- , ADD_CABAL_ARGS: "--enable-split-sections"
506
+ , ARTIFACT: "x86_64-linux-musl-static"
546
507
}
547
508
]
548
509
container :
0 commit comments