Skip to content

Commit 29a624a

Browse files
committed
Build once without and once with optional dependencies.
1 parent b4a568a commit 29a624a

File tree

2 files changed

+114
-20
lines changed

2 files changed

+114
-20
lines changed

.github/workflows/many-platforms.yml

Lines changed: 88 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ jobs:
103103
- run: |
104104
pwd
105105
export CPPFLAGS="-Wall"
106-
./build-on.sh '${{ env.package }}' '' 'make'
106+
./build-on.sh '${{ env.package }}' '' 'make' 'sudo apt update; sudo apt install libacl1-dev libattr1-dev libgmp-dev libcap-dev libsystemd-dev libssl-dev && sudo localedef -i ar_SA -f ISO-8859-6 ar_SA.ISO-8859-6 && sudo localedef -i de_DE -f UTF-8 de_DE.UTF-8 && sudo localedef -i es_ES -f UTF-8 es_ES.UTF-8 && sudo localedef -i fa_IR -f UTF-8 fa_IR && sudo localedef -i fr_FR -f ISO-8859-1 fr_FR.ISO-8859-1 && sudo localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 && sudo localedef -i ja_JP -f EUC-JP ja_JP.EUC-JP && sudo localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 && sudo localedef -i zh_CN -f GB18030 zh_CN.GB18030 && sudo localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS'
107107
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
108108
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
109109
- if: ${{ always() }}
@@ -117,6 +117,12 @@ jobs:
117117
${{ env.package }}-*/build/log[123]
118118
${{ env.package }}-*/build/tests/test-suite.log
119119
${{ env.package }}-*/build/gnulib-tests/test-suite.log
120+
${{ env.package }}-*/build-full/config.cache
121+
${{ env.package }}-*/build-full/config.log
122+
${{ env.package }}-*/build-full/config.status
123+
${{ env.package }}-*/build-full/log[123]
124+
${{ env.package }}-*/build-full/tests/test-suite.log
125+
${{ env.package }}-*/build-full/gnulib-tests/test-suite.log
120126
retention-days: 7
121127
overwrite: true
122128
check-linux-gnu-centos:
@@ -148,7 +154,7 @@ jobs:
148154
cd /work
149155
ls -l
150156
export CPPFLAGS="-Wall"
151-
./build-on.sh '${{ env.package }}' '' 'make'
157+
./build-on.sh '${{ env.package }}' '' 'make' 'yum -y install libacl-devel libattr-devel gmp-devel libcap-devel systemd-devel openssl-devel glibc-common && localedef -i ar_SA -f ISO-8859-6 ar_SA.ISO-8859-6 && localedef -i de_DE -f UTF-8 de_DE.UTF-8 && localedef -i es_ES -f UTF-8 es_ES.UTF-8 && localedef -i fa_IR -f UTF-8 fa_IR && localedef -i fr_FR -f ISO-8859-1 fr_FR.ISO-8859-1 && localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 && localedef -i ja_JP -f EUC-JP ja_JP.EUC-JP && localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 && localedef -i zh_CN -f GB18030 zh_CN.GB18030 && localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS'
152158
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
153159
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
154160
- if: ${{ always() }}
@@ -162,6 +168,12 @@ jobs:
162168
${{ env.package }}-*/build/log[123]
163169
${{ env.package }}-*/build/tests/test-suite.log
164170
${{ env.package }}-*/build/gnulib-tests/test-suite.log
171+
${{ env.package }}-*/build-full/config.cache
172+
${{ env.package }}-*/build-full/config.log
173+
${{ env.package }}-*/build-full/config.status
174+
${{ env.package }}-*/build-full/log[123]
175+
${{ env.package }}-*/build-full/tests/test-suite.log
176+
${{ env.package }}-*/build-full/gnulib-tests/test-suite.log
165177
retention-days: 7
166178
overwrite: true
167179
check-linux-gnu-alma:
@@ -195,7 +207,7 @@ jobs:
195207
cd /work
196208
ls -l
197209
export CPPFLAGS="-Wall"
198-
./build-on.sh '${{ env.package }}' '' 'make'
210+
./build-on.sh '${{ env.package }}' '' 'make' 'yum -y install libacl-devel libattr-devel gmp-devel libcap-devel systemd-devel openssl-devel glibc-locale-source && localedef -i en_US -f UTF-8 en_US.UTF-8 && localedef -i ar_SA -f ISO-8859-6 ar_SA.ISO-8859-6 && localedef -i de_DE -f UTF-8 de_DE.UTF-8 && localedef -i es_ES -f UTF-8 es_ES.UTF-8 && localedef -i fa_IR -f UTF-8 fa_IR && localedef -i fr_FR -f ISO-8859-1 fr_FR.ISO-8859-1 && localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 && localedef -i ja_JP -f EUC-JP ja_JP.EUC-JP && localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 && localedef -i zh_CN -f GB18030 zh_CN.GB18030 && localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS'
199211
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
200212
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
201213
- if: ${{ always() }}
@@ -209,6 +221,12 @@ jobs:
209221
${{ env.package }}-*/build/log[123]
210222
${{ env.package }}-*/build/tests/test-suite.log
211223
${{ env.package }}-*/build/gnulib-tests/test-suite.log
224+
${{ env.package }}-*/build-full/config.cache
225+
${{ env.package }}-*/build-full/config.log
226+
${{ env.package }}-*/build-full/config.status
227+
${{ env.package }}-*/build-full/log[123]
228+
${{ env.package }}-*/build-full/tests/test-suite.log
229+
${{ env.package }}-*/build-full/gnulib-tests/test-suite.log
212230
retention-days: 7
213231
overwrite: true
214232
check-linux-alpine:
@@ -238,7 +256,7 @@ jobs:
238256
cd /work
239257
ls -l
240258
export CPPFLAGS="-Wall"
241-
./build-on.sh '${{ env.package }}' '' 'make'
259+
./build-on.sh '${{ env.package }}' '' 'make' 'apk add musl-libintl libacl libattr gmp libcap openssl musl-locales'
242260
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
243261
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
244262
- if: ${{ always() }}
@@ -252,6 +270,12 @@ jobs:
252270
${{ env.package }}-*/build/log[123]
253271
${{ env.package }}-*/build/tests/test-suite.log
254272
${{ env.package }}-*/build/gnulib-tests/test-suite.log
273+
${{ env.package }}-*/build-full/config.cache
274+
${{ env.package }}-*/build-full/config.log
275+
${{ env.package }}-*/build-full/config.status
276+
${{ env.package }}-*/build-full/log[123]
277+
${{ env.package }}-*/build-full/tests/test-suite.log
278+
${{ env.package }}-*/build-full/gnulib-tests/test-suite.log
255279
retention-days: 7
256280
overwrite: true
257281
check-macos:
@@ -280,8 +304,9 @@ jobs:
280304
# - run: brew install ...
281305
- run: |
282306
pwd
283-
export CPPFLAGS="-Wall"
284-
./build-on.sh '${{ env.package }}' '' 'make'
307+
export CPPFLAGS="-I$HOME/include -I${HOMEBREW_PREFIX-/usr/local}/opt/gettext/include -I${HOMEBREW_PREFIX-/usr/local}/opt/libiconv/include -Wall"
308+
export LDFLAGS="-L$HOME/lib -L${HOMEBREW_PREFIX-/usr/local}/opt/gettext/lib -L${HOMEBREW_PREFIX-/usr/local}/opt/libiconv/lib"
309+
./build-on.sh '${{ env.package }}' '' 'make' ${{ (matrix.os == 'macos-14' || matrix.os == 'macos-15') && 'brew install gettext gmp openssl@3' || 'brew install gmp openssl@3' }}
285310
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
286311
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
287312
- if: ${{ always() }}
@@ -295,6 +320,12 @@ jobs:
295320
${{ env.package }}-*/build/log[123]
296321
${{ env.package }}-*/build/tests/test-suite.log
297322
${{ env.package }}-*/build/gnulib-tests/test-suite.log
323+
${{ env.package }}-*/build-full/config.cache
324+
${{ env.package }}-*/build-full/config.log
325+
${{ env.package }}-*/build-full/config.status
326+
${{ env.package }}-*/build-full/log[123]
327+
${{ env.package }}-*/build-full/tests/test-suite.log
328+
${{ env.package }}-*/build-full/gnulib-tests/test-suite.log
298329
retention-days: 7
299330
overwrite: true
300331
check-freebsd:
@@ -329,7 +360,7 @@ jobs:
329360
ls -l
330361
export CPPFLAGS="-I/usr/local/include -Wall"
331362
export LDFLAGS="-L/usr/local/lib"
332-
./build-on.sh '${{ env.package }}' '' 'make'
363+
./build-on.sh '${{ env.package }}' '' 'make' 'pkg install -y gmp openssl'
333364
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
334365
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
335366
- if: ${{ always() }}
@@ -343,6 +374,12 @@ jobs:
343374
${{ env.package }}-*/build/log[123]
344375
${{ env.package }}-*/build/tests/test-suite.log
345376
${{ env.package }}-*/build/gnulib-tests/test-suite.log
377+
${{ env.package }}-*/build-full/config.cache
378+
${{ env.package }}-*/build-full/config.log
379+
${{ env.package }}-*/build-full/config.status
380+
${{ env.package }}-*/build-full/log[123]
381+
${{ env.package }}-*/build-full/tests/test-suite.log
382+
${{ env.package }}-*/build-full/gnulib-tests/test-suite.log
346383
retention-days: 7
347384
overwrite: true
348385
check-netbsd:
@@ -378,7 +415,7 @@ jobs:
378415
ls -l
379416
export CPPFLAGS="-I/usr/pkg/include -Wall"
380417
export LDFLAGS="-L/usr/pkg/lib"
381-
./build-on.sh '${{ env.package }}' '' 'make'
418+
./build-on.sh '${{ env.package }}' '' 'make' '/usr/sbin/pkg_add gettext-lib gmp openssl'
382419
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
383420
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
384421
- if: ${{ always() }}
@@ -392,6 +429,12 @@ jobs:
392429
${{ env.package }}-*/build/log[123]
393430
${{ env.package }}-*/build/tests/test-suite.log
394431
${{ env.package }}-*/build/gnulib-tests/test-suite.log
432+
${{ env.package }}-*/build-full/config.cache
433+
${{ env.package }}-*/build-full/config.log
434+
${{ env.package }}-*/build-full/config.status
435+
${{ env.package }}-*/build-full/log[123]
436+
${{ env.package }}-*/build-full/tests/test-suite.log
437+
${{ env.package }}-*/build-full/gnulib-tests/test-suite.log
395438
retention-days: 7
396439
overwrite: true
397440
check-openbsd:
@@ -430,7 +473,7 @@ jobs:
430473
ls -l
431474
export CPPFLAGS="-I/usr/local/include -Wall"
432475
export LDFLAGS="-L/usr/local/lib"
433-
./build-on.sh '${{ env.package }}' '' 'gmake'
476+
./build-on.sh '${{ env.package }}' '' 'gmake' 'pkg_add gmp openssl-3.2.1p1v0'
434477
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
435478
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
436479
- if: ${{ always() }}
@@ -444,6 +487,12 @@ jobs:
444487
${{ env.package }}-*/build/log[123]
445488
${{ env.package }}-*/build/tests/test-suite.log
446489
${{ env.package }}-*/build/gnulib-tests/test-suite.log
490+
${{ env.package }}-*/build-full/config.cache
491+
${{ env.package }}-*/build-full/config.log
492+
${{ env.package }}-*/build-full/config.status
493+
${{ env.package }}-*/build-full/log[123]
494+
${{ env.package }}-*/build-full/tests/test-suite.log
495+
${{ env.package }}-*/build-full/gnulib-tests/test-suite.log
447496
retention-days: 7
448497
overwrite: true
449498
check-solaris11:
@@ -477,9 +526,12 @@ jobs:
477526
env | LC_ALL=C sort
478527
pwd
479528
ls -l
529+
: "The locale set by default, C.UTF-8, is not a valid locale on Solaris 11."
530+
: "This causes a failure of the test-update-copyright.sh test."
531+
export LANG=en_US.UTF-8
480532
export CPPFLAGS="-Wall"
481533
export CC="gcc -m64"
482-
./build-on.sh '${{ env.package }}' '' 'make'
534+
./build-on.sh '${{ env.package }}' '' 'make' 'pkg install library/gmp library/security/openssl-3 system/locale'
483535
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
484536
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
485537
- if: ${{ always() }}
@@ -493,6 +545,12 @@ jobs:
493545
${{ env.package }}-*/build/log[123]
494546
${{ env.package }}-*/build/tests/test-suite.log
495547
${{ env.package }}-*/build/gnulib-tests/test-suite.log
548+
${{ env.package }}-*/build-full/config.cache
549+
${{ env.package }}-*/build-full/config.log
550+
${{ env.package }}-*/build-full/config.status
551+
${{ env.package }}-*/build-full/log[123]
552+
${{ env.package }}-*/build-full/tests/test-suite.log
553+
${{ env.package }}-*/build-full/gnulib-tests/test-suite.log
496554
retention-days: 7
497555
overwrite: true
498556
check-solaris11-omnios:
@@ -528,7 +586,7 @@ jobs:
528586
pwd
529587
ls -l
530588
export CPPFLAGS="-Wall"
531-
./build-on.sh '${{ env.package }}' '' 'gmake'
589+
./build-on.sh '${{ env.package }}' '' 'gmake' 'pkg install library/gmp library/security/openssl-3 locale/de locale/es locale/fr locale/tr'
532590
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
533591
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
534592
- if: ${{ always() }}
@@ -542,6 +600,12 @@ jobs:
542600
${{ env.package }}-*/build/log[123]
543601
${{ env.package }}-*/build/tests/test-suite.log
544602
${{ env.package }}-*/build/gnulib-tests/test-suite.log
603+
${{ env.package }}-*/build-full/config.cache
604+
${{ env.package }}-*/build-full/config.log
605+
${{ env.package }}-*/build-full/config.status
606+
${{ env.package }}-*/build-full/log[123]
607+
${{ env.package }}-*/build-full/tests/test-suite.log
608+
${{ env.package }}-*/build-full/gnulib-tests/test-suite.log
545609
retention-days: 7
546610
overwrite: true
547611
check-cygwin:
@@ -574,7 +638,7 @@ jobs:
574638
platform: ${{ matrix.bitness == 32 && 'x86' || 'x86_64' }}
575639
# Install Cygwin packages.
576640
# List of packages: https://cygwin.com/packages/package_list.html
577-
packages: gcc-core make perl
641+
packages: gcc-core make perl libgmp-devel libssl-devel
578642
- name: cygcheck
579643
run: cygcheck -V
580644
- name: cygcheck
@@ -591,7 +655,7 @@ jobs:
591655
- name: Build in Cygwin
592656
run: |
593657
export CPPFLAGS="-Wall"
594-
./build-on.sh '${{ env.package }}' '' 'make'
658+
./build-on.sh '${{ env.package }}' '' 'make' ''
595659
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
596660
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
597661
- if: ${{ always() }}
@@ -639,7 +703,7 @@ jobs:
639703
platform: x86_64
640704
# Install Cygwin packages.
641705
# List of packages: https://cygwin.com/packages/package_list.html
642-
packages: ${{ matrix.bitness == 32 && 'mingw64-i686-gcc-core mingw64-i686-headers mingw64-i686-runtime' || 'mingw64-x86_64-gcc-core mingw64-x86_64-headers mingw64-x86_64-runtime' }} make
706+
packages: ${{ matrix.bitness == 32 && 'mingw64-i686-gcc-core mingw64-i686-headers mingw64-i686-runtime mingw64-i686-gmp' || 'mingw64-x86_64-gcc-core mingw64-x86_64-headers mingw64-x86_64-runtime mingw64-x86_64-gmp' }} make
643707
- name: cygcheck
644708
run: cygcheck -V
645709
- name: cygcheck
@@ -659,7 +723,7 @@ jobs:
659723
PATH=/usr/${{ matrix.bitness == 32 && 'i686' || 'x86_64' }}-w64-mingw32/sys-root/mingw/bin:$PATH
660724
export CPPFLAGS="-Wall"
661725
export CC=${{ matrix.bitness == 32 && 'i686' || 'x86_64' }}-w64-mingw32-gcc
662-
./build-on.sh '${{ env.package }}' '--host=${{ matrix.bitness == 32 && 'i686' || 'x86_64' }}-w64-mingw32' 'make'
726+
./build-on.sh '${{ env.package }}' '--host=${{ matrix.bitness == 32 && 'i686' || 'x86_64' }}-w64-mingw32' 'make' ''
663727
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
664728
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
665729
- if: ${{ always() }}
@@ -762,7 +826,7 @@ jobs:
762826
export STRIP=":"
763827
export AR="`pwd`/ar-lib lib"
764828
export RANLIB=":"
765-
./build-on.sh '${{ env.package }}' '--host=${{ matrix.bitness == 32 && 'i686' || 'x86_64' }}-w64-mingw32' 'make'
829+
./build-on.sh '${{ env.package }}' '--host=${{ matrix.bitness == 32 && 'i686' || 'x86_64' }}-w64-mingw32' 'make' ''
766830
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
767831
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
768832
- if: ${{ always() }}
@@ -804,7 +868,7 @@ jobs:
804868
export CC="clang -fsanitize=address,undefined,signed-integer-overflow,shift,integer-divide-by-zero"
805869
export CFLAGS="-O0 -fno-omit-frame-pointer -ggdb"
806870
export ASAN_OPTIONS="detect_leaks=0 abort_on_error=1 allocator_may_return_null=1"
807-
./build-on.sh '${{ env.package }}' '' 'make'
871+
./build-on.sh '${{ env.package }}' '' 'make' ''
808872
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
809873
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
810874
- if: ${{ always() }}
@@ -850,7 +914,7 @@ jobs:
850914
ls -l
851915
export CPPFLAGS="-Wall"
852916
export CC=clang
853-
./build-on.sh '${{ env.package }}' '' 'make'
917+
./build-on.sh '${{ env.package }}' '' 'make' 'apt update; apt -y install libacl1-dev libattr1-dev libgmp-dev libcap-dev libsystemd-dev libssl-dev locales && localedef -i en_US -f UTF-8 en_US.UTF-8 && localedef -i ar_SA -f ISO-8859-6 ar_SA.ISO-8859-6 && localedef -i de_DE -f UTF-8 de_DE.UTF-8 && localedef -i es_ES -f UTF-8 es_ES.UTF-8 && localedef -i fa_IR -f UTF-8 fa_IR && localedef -i fr_FR -f ISO-8859-1 fr_FR.ISO-8859-1 && localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 && localedef -i ja_JP -f EUC-JP ja_JP.EUC-JP && localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 && localedef -i zh_CN -f GB18030 zh_CN.GB18030 && localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS'
854918
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
855919
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage
856920
- if: ${{ always() }}
@@ -864,5 +928,11 @@ jobs:
864928
${{ env.package }}-*/build/log[123]
865929
${{ env.package }}-*/build/tests/test-suite.log
866930
${{ env.package }}-*/build/gnulib-tests/test-suite.log
931+
${{ env.package }}-*/build-full/config.cache
932+
${{ env.package }}-*/build-full/config.log
933+
${{ env.package }}-*/build-full/config.status
934+
${{ env.package }}-*/build-full/log[123]
935+
${{ env.package }}-*/build-full/tests/test-suite.log
936+
${{ env.package }}-*/build-full/gnulib-tests/test-suite.log
867937
retention-days: 7
868938
overwrite: true

0 commit comments

Comments
 (0)