Produce tarball and make check #93
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# A GitHub Actions workflow that builds a package on many platforms. | |
# Copyright (C) 2024 Free Software Foundation, Inc. | |
# | |
# This file is free software: you can redistribute it and/or modify | |
# it under the terms of the GNU General Public License as published | |
# by the Free Software Foundation, either version 3 of the License, | |
# or (at your option) any later version. | |
# | |
# This file is distributed in the hope that it will be useful, | |
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
# GNU General Public License for more details. | |
# | |
# You should have received a copy of the GNU General Public License | |
# along with this program. If not, see <https://www.gnu.org/licenses/>. | |
# Reference documentation for this file: | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions | |
# | |
# Syntax of multiline strings in YAML: https://yaml-multiline.info/ | |
# | |
# Customization: | |
# - Review and adapt the part of this file before the 'jobs:' line. | |
# - You can disable a particular job by adding a line | |
# if: ${{ false }} | |
# - You can disable a particular matrix value for a particular job by adding an | |
# 'exclude' element to the 'matrix' element, such as: | |
# exclude: | |
# - bitness: 64 | |
name: Produce tarball and make check | |
on: | |
push: | |
schedule: | |
# Doc: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule | |
# POSIX cron syntax: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07 | |
- cron: '50 9 * * 1' | |
# Variables. | |
env: | |
package: gettext | |
jobs: | |
build-tarball: | |
runs-on: ubuntu-22.04 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- uses: actions/checkout@v4 | |
- run: uname -a | |
- run: id | |
- run: env | LC_ALL=C sort | |
- run: pwd | |
# Install Ubuntu packages. | |
# List of packages: https://packages.ubuntu.com/ | |
- run: sudo apt update; sudo apt install gperf gobjc fp-compiler fp-units-fcl gettext groff texlive-base texlive-latex-base | |
- run: | | |
./build-tarball.sh '${{ env.package }}' | |
# Doc: https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-build-tarball-failed | |
path: | | |
${{ env.package }}/config.cache | |
${{ env.package }}/config.log | |
${{ env.package }}/config.status | |
${{ env.package }}/log[1234] | |
${{ env.package }}/gettext-runtime/tests/test-suite.log | |
${{ env.package }}/libtextstyle/tests/test-suite.log | |
${{ env.package }}/gettext-tools/tests/test-suite.log | |
${{ env.package }}/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}/gettext-tools/gnulib-tests/test-suite.log | |
retention-days: 7 | |
overwrite: true | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: tarball | |
path: ${{ env.package }}/${{ env.package }}-*.tar.gz | |
if-no-files-found: error | |
retention-days: 7 | |
compression-level: 0 | |
overwrite: true | |
# We can run max. 20 "make check" jobs in parallel, max. 5 of them being on macOS. | |
# See https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration | |
check-linux-gnu-ubuntu: | |
name: make check on Ubuntu GNU/Linux | |
needs: build-tarball | |
runs-on: ubuntu-22.04 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
- run: uname -a | |
- run: id | |
- run: env | LC_ALL=C sort | |
- run: pwd | |
# Install Ubuntu packages. | |
# List of packages: https://packages.ubuntu.com/ | |
# - run: sudo apt update; sudo apt install ... | |
- run: | | |
pwd | |
export CPPFLAGS="-Wall" | |
./build-on.sh '${{ env.package }}' '' 'make' "$HOME" '' 'sudo apt update; sudo apt install g++ gobjc python3 clisp rep guile-3.0 gnu-smalltalk openjdk-11-jdk mono-mcs fp-compiler fp-units-fcl tcl perl libintl-perl php ruby ruby-gettext lua5.4 gjs valac && sudo localedef -i ar_SA -f ISO-8859-6 ar_SA.ISO-8859-6 && sudo localedef -i de_DE -f ISO-8859-1 de_DE.ISO-8859-1 && 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' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-linux-gnu-ubuntu | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
${{ env.package }}-*/build-full/config.cache | |
${{ env.package }}-*/build-full/config.log | |
${{ env.package }}-*/build-full/config.status | |
${{ env.package }}-*/build-full/log[123] | |
${{ env.package }}-*/build-full/gettext-runtime/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build-full/libtextstyle/config.cache | |
${{ env.package }}-*/build-full/libtextstyle/config.log | |
${{ env.package }}-*/build-full/libtextstyle/config.status | |
${{ env.package }}-*/build-full/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/config.log | |
${{ env.package }}-*/build-full/gettext-tools/config.status | |
${{ env.package }}-*/build-full/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
check-linux-gnu-centos: | |
name: make check on CentOS GNU/Linux | |
needs: build-tarball | |
runs-on: ubuntu-22.04 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
- uses: addnab/docker-run-action@v3 | |
with: | |
image: centos:7 | |
options: -v ${{ github.workspace }}:/work | |
run: | | |
uname -a | |
id | |
env | LC_ALL=C sort | |
pwd | |
: "The CentOS packages repository has moved on 2024-07-01." | |
sed -i -e 's|^mirrorlist=|#mirrorlist=|' -e 's|^#baseurl=http://mirror\.centos\.org|baseurl=http://vault.centos.org|' /etc/yum.repos.d/CentOS-Base.repo | |
: "Install CentOS Linux packages" | |
: "List of packages: http://vault.centos.org/centos/7/os/x86_64/Packages/" | |
yum -y install wget make gcc gcc-c++ | |
cd /work | |
ls -l | |
export CPPFLAGS="-Wall" | |
wget -O make-4.2.1.tar.gz https://ftp.gnu.org/gnu/make/make-4.2.1.tar.gz | |
./build-on.sh '${{ env.package }}' '' 'make' '/usr/local' 'make-4.2.1' 'yum -y install epel-release && yum -y install gcc-c++ gcc-objc python3 guile gnu-smalltalk java-11-openjdk-devel mono-devel tcl perl perl-libintl php ruby ruby-gettext lua gjs vala glibc-common && localedef -i ar_SA -f ISO-8859-6 ar_SA.ISO-8859-6 && localedef -i de_DE -f ISO-8859-1 de_DE.ISO-8859-1 && 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' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-linux-gnu-centos | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
${{ env.package }}-*/build-full/config.cache | |
${{ env.package }}-*/build-full/config.log | |
${{ env.package }}-*/build-full/config.status | |
${{ env.package }}-*/build-full/log[123] | |
${{ env.package }}-*/build-full/gettext-runtime/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build-full/libtextstyle/config.cache | |
${{ env.package }}-*/build-full/libtextstyle/config.log | |
${{ env.package }}-*/build-full/libtextstyle/config.status | |
${{ env.package }}-*/build-full/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/config.log | |
${{ env.package }}-*/build-full/gettext-tools/config.status | |
${{ env.package }}-*/build-full/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
check-linux-gnu-alma: | |
name: make check on AlmaLinux GNU/Linux | |
needs: build-tarball | |
runs-on: ubuntu-22.04 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
- uses: addnab/docker-run-action@v3 | |
with: | |
image: almalinux:9 | |
options: -v ${{ github.workspace }}:/work | |
run: | | |
uname -a | |
id | |
env | LC_ALL=C sort | |
pwd | |
: "Install AlmaLinux packages" | |
: "List of packages: https://repo.almalinux.org/almalinux/9/BaseOS/x86_64/os/Packages/" | |
: " https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/" | |
: " https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/" | |
: " https://repo.almalinux.org/almalinux/9/devel/x86_64/os/Packages/" | |
: "Explanation: https://wiki.almalinux.org/repos/AlmaLinux.html" | |
yum -y install glibc-gconv-extra make gcc gcc-c++ diffutils | |
cd /work | |
ls -l | |
export CPPFLAGS="-Wall" | |
./build-on.sh '${{ env.package }}' '' 'make' '/usr/local' '' 'yum -y install epel-release && yum -y install gcc-c++ gcc-objc python3 guile30 java-11-openjdk-devel mono-devel fpc tcl perl perl-libintl php ruby lua gjs autoconf automake glibc-locale-source && ln -s guile3.0 /usr/bin/guile && localedef -i ar_SA -f ISO-8859-6 ar_SA.ISO-8859-6 && localedef -i de_DE -f ISO-8859-1 de_DE.ISO-8859-1 && 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' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-linux-gnu-alma | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
${{ env.package }}-*/build-full/config.cache | |
${{ env.package }}-*/build-full/config.log | |
${{ env.package }}-*/build-full/config.status | |
${{ env.package }}-*/build-full/log[123] | |
${{ env.package }}-*/build-full/gettext-runtime/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build-full/libtextstyle/config.cache | |
${{ env.package }}-*/build-full/libtextstyle/config.log | |
${{ env.package }}-*/build-full/libtextstyle/config.status | |
${{ env.package }}-*/build-full/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/config.log | |
${{ env.package }}-*/build-full/gettext-tools/config.status | |
${{ env.package }}-*/build-full/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
check-linux-alpine: | |
name: make check on Alpine Linux | |
needs: build-tarball | |
runs-on: ubuntu-22.04 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
- uses: addnab/docker-run-action@v3 | |
with: | |
image: alpine:3 | |
options: -v ${{ github.workspace }}:/work | |
run: | | |
uname -a | |
id | |
env | LC_ALL=C sort | |
pwd | |
: "Install Alpine Linux packages" | |
: "List of packages: https://pkgs.alpinelinux.org/packages" | |
apk add make gcc musl-dev g++ gnu-libiconv-dev | |
cd /work | |
ls -l | |
export CPPFLAGS="-I/usr/include/gnu-libiconv -Wall" | |
./build-on.sh '${{ env.package }}' '' 'make' '/usr/local' '' 'apk add g++ gcc-objc python3 clisp guile openjdk17 mono gawk fpc tcl perl perl-libintl-perl php83 ruby gjs vala musl-locales autoconf automake --repository=https://dl-cdn.alpinelinux.org/alpine/edge/testing' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-linux-alpine | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
${{ env.package }}-*/build-full/config.cache | |
${{ env.package }}-*/build-full/config.log | |
${{ env.package }}-*/build-full/config.status | |
${{ env.package }}-*/build-full/log[123] | |
${{ env.package }}-*/build-full/gettext-runtime/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build-full/libtextstyle/config.cache | |
${{ env.package }}-*/build-full/libtextstyle/config.log | |
${{ env.package }}-*/build-full/libtextstyle/config.status | |
${{ env.package }}-*/build-full/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/config.log | |
${{ env.package }}-*/build-full/gettext-tools/config.status | |
${{ env.package }}-*/build-full/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
check-macos: | |
name: make check on macOS | |
needs: build-tarball | |
# Doc: https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-13, macos-14, macos-15] | |
runs-on: ${{ matrix.os }} | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
- run: uname -a | |
- run: id | |
- run: env | LC_ALL=C sort | |
- run: pwd | |
# Install Homebrew packages. | |
# List of packages: https://formulae.brew.sh/ | |
- run: ${{ (matrix.os == 'macos-14' || matrix.os == 'macos-15') && 'brew install libiconv' || ':' }} | |
- run: | | |
pwd | |
export CPPFLAGS="-I$HOME/include -I${HOMEBREW_PREFIX-/usr/local}/opt/libiconv/include -Wall" | |
export LDFLAGS="-L$HOME/lib -L${HOMEBREW_PREFIX-/usr/local}/opt/libiconv/lib" | |
./build-on.sh '${{ env.package }}' '' 'make' "$HOME" '' 'brew install svn && brew install python clisp guile gnu-smalltalk openjdk mono gawk fpc tcl-tk perl php ruby lua gjs vala automake' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-${{ matrix.os }} | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
${{ env.package }}-*/build-full/config.cache | |
${{ env.package }}-*/build-full/config.log | |
${{ env.package }}-*/build-full/config.status | |
${{ env.package }}-*/build-full/log[123] | |
${{ env.package }}-*/build-full/gettext-runtime/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build-full/libtextstyle/config.cache | |
${{ env.package }}-*/build-full/libtextstyle/config.log | |
${{ env.package }}-*/build-full/libtextstyle/config.status | |
${{ env.package }}-*/build-full/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/config.log | |
${{ env.package }}-*/build-full/gettext-tools/config.status | |
${{ env.package }}-*/build-full/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
check-freebsd: | |
name: make check on FreeBSD | |
needs: build-tarball | |
# The FreeBSD runners sometimes get stuck. | |
timeout-minutes: 15 | |
runs-on: ubuntu-22.04 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
# Doc: https://github.com/vmactions/freebsd-vm | |
- uses: vmactions/freebsd-vm@v1 | |
with: | |
release: '14.0' | |
mem: 1024 | |
usesh: true | |
run: | | |
set -x | |
uname -a | |
id | |
env | LC_ALL=C sort | |
pwd | |
: "Install FreeBSD packages" | |
: "List of packages: https://ports.freebsd.org/cgi/ports.cgi" | |
: pkg install -y ... | |
: "Do only one build, not 'build' and 'build-full', here, because" | |
: "with two builds, this step often takes more than 14 min 45 sec" | |
: "and it then hangs." | |
pkg install -y python311 clisp librep guile3 mono gawk tcl86 p5-Locale-libintl php83 ruby lua54 gjs autoconf automake && ln -s python3.11 /usr/local/bin/python3 && ln -s guile-3.0 /usr/local/bin/guile && ln -s tclsh8.6 /usr/local/bin/tclsh && ln -s lua54 /usr/local/bin/lua | |
ls -l | |
export CPPFLAGS="-I/usr/local/include -Wall" | |
export LDFLAGS="-L/usr/local/lib" | |
./build-on.sh '${{ env.package }}' '--with-included-libunistring' 'make' '/usr/local' '' '' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-freebsd | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
${{ env.package }}-*/build-full/config.cache | |
${{ env.package }}-*/build-full/config.log | |
${{ env.package }}-*/build-full/config.status | |
${{ env.package }}-*/build-full/log[123] | |
${{ env.package }}-*/build-full/gettext-runtime/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build-full/libtextstyle/config.cache | |
${{ env.package }}-*/build-full/libtextstyle/config.log | |
${{ env.package }}-*/build-full/libtextstyle/config.status | |
${{ env.package }}-*/build-full/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/config.log | |
${{ env.package }}-*/build-full/gettext-tools/config.status | |
${{ env.package }}-*/build-full/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
check-netbsd: | |
name: make check on NetBSD | |
needs: build-tarball | |
runs-on: ubuntu-22.04 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
# Doc: https://github.com/vmactions/netbsd-vm | |
- uses: vmactions/netbsd-vm@v1 | |
with: | |
release: '10.0' | |
mem: 1024 | |
usesh: true | |
run: | | |
set -x | |
uname -a | |
id | |
env | LC_ALL=C sort | |
pwd | |
: "Install NetBSD packages" | |
: "List of packages: https://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/index-all.html" | |
: /usr/sbin/pkg_add ... | |
: "or" | |
: /usr/sbin/pkg_add pkgin | |
: pkgin install ... | |
ls -l | |
export CPPFLAGS="-I/usr/pkg/include -Wall" | |
export LDFLAGS="-L/usr/pkg/lib" | |
./build-on.sh '${{ env.package }}' '' 'make' '/usr/pkg' '' '/usr/sbin/pkg_add python312; /usr/sbin/pkg_add clisp; /usr/sbin/pkg_add librep; /usr/sbin/pkg_add guile30; /usr/sbin/pkg_add openjdk21; /usr/sbin/pkg_add mono; /usr/sbin/pkg_add gawk; /usr/sbin/pkg_add tcl; /usr/sbin/pkg_add p5-Locale-libintl; /usr/sbin/pkg_add php; /usr/sbin/pkg_add ruby ruby32-gettext; /usr/sbin/pkg_add lua54; /usr/sbin/pkg_add vala; /usr/sbin/pkg_add autoconf automake; ln -s python3.12 /usr/pkg/bin/python3 && ln -s ../guile/3.0/bin/guile /usr/pkg/bin/guile && ln -s ../java/openjdk21/bin/java /usr/pkg/bin/java && ln -s ../java/openjdk21/bin/javac /usr/pkg/bin/javac && ln -s ../java/openjdk21/bin/jar /usr/pkg/bin/jar' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-netbsd | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
${{ env.package }}-*/build-full/config.cache | |
${{ env.package }}-*/build-full/config.log | |
${{ env.package }}-*/build-full/config.status | |
${{ env.package }}-*/build-full/log[123] | |
${{ env.package }}-*/build-full/gettext-runtime/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build-full/libtextstyle/config.cache | |
${{ env.package }}-*/build-full/libtextstyle/config.log | |
${{ env.package }}-*/build-full/libtextstyle/config.status | |
${{ env.package }}-*/build-full/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/config.log | |
${{ env.package }}-*/build-full/gettext-tools/config.status | |
${{ env.package }}-*/build-full/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
check-openbsd: | |
name: make check on OpenBSD | |
needs: build-tarball | |
runs-on: ubuntu-22.04 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
# Doc: https://github.com/vmactions/openbsd-vm | |
- uses: vmactions/openbsd-vm@v1 | |
with: | |
release: '7.5' | |
mem: 1024 | |
usesh: true | |
# Avoid 'sync: sshfs' since it causes trouble with file timestamps | |
# and errors from chown() calls: | |
# - BSD tar error messages for r--r--r-- files: "tar: Unable to create ...: Permission denied" | |
# - GNU tar warnings "Cannot change ownership to uid 0, gid 0: Permission denied" | |
#sync: sshfs | |
run: | | |
set -x | |
uname -a | |
id | |
env | LC_ALL=C sort | |
pwd | |
: "Install OpenBSD packages" | |
: "List of packages: https://cdn.openbsd.org/pub/OpenBSD/7.5/packages/amd64/" | |
pkg_add gmake g++ | |
export PATH=/usr/local/bin:$PATH | |
: "The OpenBSD port of autoconf needs this. See <https://marc.info/?l=openbsd-misc&m=115868167816272&w=2>." | |
export AUTOCONF_VERSION=2.71 | |
: "The OpenBSD port of automake needs this, if more than one version is installed." | |
export AUTOMAKE_VERSION=1.16 | |
ls -l | |
export CPPFLAGS="-I/usr/local/include -Wall" | |
export LDFLAGS="-L/usr/local/lib" | |
./build-on.sh '${{ env.package }}' '' 'gmake' '/usr/local' '' 'pkg_add gobjc-11.2.0p11 python3 clisp librep guile3 gawk tcl-8.6.13 php-8.3.3 ruby-3.2.3 ruby32-gettext lua-5.4.6 vala autoconf-2.71 automake-1.16.5 && ln -s guile3.0 /usr/local/bin/guile && ln -s tclsh8.6 /usr/local/bin/tclsh && ln -s php-8.3 /usr/local/bin/php && ln -s lua54 /usr/local/bin/lua' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-openbsd | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
${{ env.package }}-*/build-full/config.cache | |
${{ env.package }}-*/build-full/config.log | |
${{ env.package }}-*/build-full/config.status | |
${{ env.package }}-*/build-full/log[123] | |
${{ env.package }}-*/build-full/gettext-runtime/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build-full/libtextstyle/config.cache | |
${{ env.package }}-*/build-full/libtextstyle/config.log | |
${{ env.package }}-*/build-full/libtextstyle/config.status | |
${{ env.package }}-*/build-full/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/config.log | |
${{ env.package }}-*/build-full/gettext-tools/config.status | |
${{ env.package }}-*/build-full/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
check-solaris11: | |
name: make check on Solaris 11 | |
needs: build-tarball | |
runs-on: ubuntu-22.04 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
# Doc: https://github.com/vmactions/solaris-vm | |
- uses: vmactions/solaris-vm@v1 | |
with: | |
# We can choose among | |
# - the '11.4' image and installing gcc from the Oracle packages site, or | |
# - the '11.4-gcc' image, that has gcc installed in /opt/csw/bin. | |
release: '11.4-gcc' | |
mem: 2048 | |
prepare: | | |
: "Install Solaris packages" | |
: "List of packages: http://pkg.oracle.com/solaris/release/en/index.shtml" | |
pkg install gcc-c++ gnu-make; ret=$?; test $ret = 0 || test $ret = 4 | |
run: | | |
set -x | |
uname -a | |
id | |
env | LC_ALL=C sort | |
pwd | |
ls -l | |
export CPPFLAGS="-Wall" | |
export CC="gcc -m64" | |
export CXX="g++ -m64" | |
./build-on.sh '${{ env.package }}' '' 'gmake' "$HOME" '' 'pkg install gcc-gobjc clisp jdk-8 gawk tcl-8 lua gjs vala automake system/locale' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-solaris11 | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
${{ env.package }}-*/build-full/config.cache | |
${{ env.package }}-*/build-full/config.log | |
${{ env.package }}-*/build-full/config.status | |
${{ env.package }}-*/build-full/log[123] | |
${{ env.package }}-*/build-full/gettext-runtime/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build-full/libtextstyle/config.cache | |
${{ env.package }}-*/build-full/libtextstyle/config.log | |
${{ env.package }}-*/build-full/libtextstyle/config.status | |
${{ env.package }}-*/build-full/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/config.log | |
${{ env.package }}-*/build-full/gettext-tools/config.status | |
${{ env.package }}-*/build-full/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
check-solaris11-omnios: | |
name: make check on Solaris 11 OmniOS | |
needs: build-tarball | |
runs-on: ubuntu-22.04 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
# Doc: https://github.com/vmactions/omnios-vm | |
- uses: vmactions/omnios-vm@v1 | |
with: | |
release: "r151048" | |
mem: 2048 | |
prepare: | | |
: "Install Solaris packages" | |
: "List of packages: https://pkg.omnios.org/r151048/core/en/index.shtml" | |
pkg install \ | |
developer/gcc13 developer/object-file system/header system/library/math \ | |
developer/build/gnu-make \ | |
system/library/iconv/unicode \ | |
system/library/g++-runtime | |
run: | | |
set -x | |
uname -a | |
id | |
env | LC_ALL=C sort | |
pwd | |
ls -l | |
export CPPFLAGS="-Wall" | |
./build-on.sh '${{ env.package }}' '' 'gmake' "$HOME" '' 'pkg install runtime/python-37 runtime/java/openjdk11 text/gawk runtime/perl developer/build/autoconf developer/build/automake locale/de locale/es locale/fr locale/tr' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-solaris11-omnios | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
${{ env.package }}-*/build-full/config.cache | |
${{ env.package }}-*/build-full/config.log | |
${{ env.package }}-*/build-full/config.status | |
${{ env.package }}-*/build-full/log[123] | |
${{ env.package }}-*/build-full/gettext-runtime/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build-full/libtextstyle/config.cache | |
${{ env.package }}-*/build-full/libtextstyle/config.log | |
${{ env.package }}-*/build-full/libtextstyle/config.status | |
${{ env.package }}-*/build-full/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/config.log | |
${{ env.package }}-*/build-full/gettext-tools/config.status | |
${{ env.package }}-*/build-full/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
check-cygwin: | |
name: make check on Cygwin | |
needs: build-tarball | |
# Doc: https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs | |
strategy: | |
fail-fast: false | |
matrix: | |
bitness: [32, 64] | |
# Disable the 64-bit build, due to too many regressions, see | |
# https://lists.gnu.org/archive/html/bug-gnulib/2024-12/msg00169.html | |
exclude: | |
- bitness: 64 | |
runs-on: windows-2022 | |
defaults: | |
run: | |
shell: C:\cygwin\bin\bash.exe -eo pipefail -o igncr '{0}' | |
env: | |
CYGWIN_NOWINPATH: 1 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- run: git config --global core.autocrlf input | |
shell: cmd | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
# Doc: https://github.com/cygwin/cygwin-install-action | |
- uses: cygwin/cygwin-install-action@v4 | |
with: | |
platform: ${{ matrix.bitness == 32 && 'x86' || 'x86_64' }} | |
# Install Cygwin packages. | |
# List of packages: https://cygwin.com/packages/package_list.html | |
packages: gcc-core gcc-g++ make libiconv-devel | |
- name: cygcheck | |
run: cygcheck -V | |
- name: cygcheck | |
run: cygcheck -s -r | |
- name: Windows version | |
run: cmd /c ver | |
- run: uname -a | |
- run: id | |
- run: env | LC_ALL=C sort | |
- run: pwd | |
- run: ls -l | |
- run: echo "$PATH" | |
- run: ls -l /usr/bin | |
- run: type java || true | |
- run: type tclsh || true | |
# Avoid errors such as | |
# child_info_fork::abort: \??\C:\cygwin\bin\cygiconv-2.dll: Loaded to different address: parent(0xEE0000) != child(0x820000) | |
# Cf. https://stackoverflow.com/questions/9300722/ | |
- if: ${{ matrix.bitness == 32 }} | |
run: /usr/bin/rebaseall | |
- name: Build in Cygwin | |
run: | | |
: "Set a PATH without native Windows implementations like java and tclsh." | |
export PATH="/usr/bin:/cygdrive/c/Windows/system32:/cygdrive/c/Windows" | |
export CPPFLAGS="-Wall" | |
./build-on.sh '${{ env.package }}' '${{ matrix.bitness == 32 && '--disable-shared' || '' }} --enable-csharp=dotnet' 'make' '/usr' '' '' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-cygwin${{ matrix.bitness }} | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
check-mingw: | |
name: make check on mingw | |
needs: build-tarball | |
# Doc: https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs | |
strategy: | |
fail-fast: false | |
matrix: | |
bitness: [32, 64] | |
runs-on: windows-2022 | |
defaults: | |
run: | |
shell: C:\cygwin\bin\bash.exe -eo pipefail -o igncr '{0}' | |
env: | |
CYGWIN_NOWINPATH: 1 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- run: git config --global core.autocrlf input | |
shell: cmd | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
# Doc: https://github.com/cygwin/cygwin-install-action | |
- uses: cygwin/cygwin-install-action@v4 | |
with: | |
platform: x86_64 | |
# Install Cygwin packages. | |
# List of packages: https://cygwin.com/packages/package_list.html | |
packages: wget ${{ matrix.bitness == 32 && 'mingw64-i686-gcc-core mingw64-i686-gcc-g++ mingw64-i686-headers mingw64-i686-runtime' || 'mingw64-x86_64-gcc-core mingw64-x86_64-gcc-g++ mingw64-x86_64-headers mingw64-x86_64-runtime' }} make | |
- name: cygcheck | |
run: cygcheck -V | |
- name: cygcheck | |
run: cygcheck -s -r | |
- name: Windows version | |
run: cmd /c ver | |
- run: uname -a | |
- run: id | |
- run: env | LC_ALL=C sort | |
- run: pwd | |
- run: ls -l | |
- run: echo "$PATH" | |
- run: ls -l /usr/bin | |
- name: Build in Cygwin | |
run: | | |
set -x | |
PATH=/usr/${{ matrix.bitness == 32 && 'i686' || 'x86_64' }}-w64-mingw32/sys-root/mingw/bin:$PATH | |
export CPPFLAGS="-Wall" | |
export CC=${{ matrix.bitness == 32 && 'i686' || 'x86_64' }}-w64-mingw32-gcc | |
export CXX=${{ matrix.bitness == 32 && 'i686' || 'x86_64' }}-w64-mingw32-g++ | |
wget -O libiconv-1.17.tar.gz https://ftp.gnu.org/gnu/libiconv/libiconv-1.17.tar.gz | |
./build-on.sh '${{ env.package }}' '--host=${{ matrix.bitness == 32 && 'i686' || 'x86_64' }}-w64-mingw32 --enable-csharp=dotnet' 'make' '/usr/${{ matrix.bitness == 32 && 'i686' || 'x86_64' }}-w64-mingw32/sys-root/mingw' 'libiconv-1.17' '' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-mingw${{ matrix.bitness }} | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
check-msvc: | |
name: make check on MSVC | |
needs: build-tarball | |
# Doc: https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs | |
strategy: | |
fail-fast: false | |
matrix: | |
bitness: [32, 64] | |
runs-on: windows-2022 | |
defaults: | |
run: | |
shell: C:\cygwin\bin\bash.exe -eo pipefail -o igncr '{0}' | |
env: | |
CYGWIN_NOWINPATH: 1 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- run: git config --global core.autocrlf input | |
shell: cmd | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
# Doc: https://github.com/ilammy/msvc-dev-cmd | |
- uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: ${{ matrix.bitness == 32 && 'x86' || 'x64' }} | |
# Doc: https://github.com/cygwin/cygwin-install-action | |
- uses: cygwin/cygwin-install-action@v4 | |
with: | |
platform: x86_64 | |
# Install Cygwin packages. | |
# List of packages: https://cygwin.com/packages/package_list.html | |
packages: wget ${{ matrix.bitness == 32 && 'mingw64-i686-binutils mingw64-i686-gcc-core' || 'mingw64-x86_64-binutils mingw64-x86_64-gcc-core' }} make | |
- name: cygcheck | |
run: cygcheck -V | |
- name: cygcheck | |
run: cygcheck -s -r | |
- name: Windows version | |
run: cmd /c ver | |
- run: uname -a | |
- run: id | |
- run: env | LC_ALL=C sort | |
- run: pwd | |
- run: ls -l | |
- run: echo "$PATH" | |
- run: ls -l /usr/bin | |
- run: | | |
wget -O ar-lib 'https://git.savannah.gnu.org/gitweb/?p=automake.git;a=blob_plain;f=lib/ar-lib;hb=HEAD' | |
wget -O compile 'https://git.savannah.gnu.org/gitweb/?p=automake.git;a=blob_plain;f=lib/compile;hb=HEAD' | |
chmod a+x ar-lib compile | |
- name: Build in Cygwin | |
env: | |
arch: ${{ matrix.bitness == 32 && 'x86' || 'x64' }} | |
pathelementsuffix: ${{ matrix.bitness == 64 && '/amd64' || '' }} | |
libelementsuffix: ${{ matrix.bitness == 64 && '\amd64' || '' }} | |
run: | | |
set -x | |
: "Windows C library headers and libraries." | |
WindowsCrtIncludeDir='C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt' | |
WindowsCrtLibDir='C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\' | |
INCLUDE="${WindowsCrtIncludeDir};$INCLUDE" | |
LIB="${WindowsCrtLibDir}${arch};$LIB" | |
: "Windows API headers and libraries." | |
WindowsSdkIncludeDir='C:\Program Files (x86)\Windows Kits\8.1\Include\' | |
WindowsSdkLibDir='C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\' | |
INCLUDE="${WindowsSdkIncludeDir}um;${WindowsSdkIncludeDir}shared;$INCLUDE" | |
LIB="${WindowsSdkLibDir}${arch};$LIB" | |
: "Visual C++ tools, headers and libraries." | |
VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio 14.0' | |
VCINSTALLDIR="${VSINSTALLDIR}"'\VC' | |
PATH=`cygpath -u "${VCINSTALLDIR}"`/bin${pathelementsuffix}:"$PATH" | |
INCLUDE="${VCINSTALLDIR}"'\include;'"${INCLUDE}" | |
LIB="${VCINSTALLDIR}"'\lib'"${libelementsuffix};${LIB}" | |
export INCLUDE LIB | |
: "Possible values are _WIN32_WINNT_WINXP, _WIN32_WINNT_VISTA, _WIN32_WINNT_WIN7" | |
win32_target=_WIN32_WINNT_WINXP | |
export CPPFLAGS="-D_WIN32_WINNT=$win32_target -I/usr/local/msvc${{ matrix.bitness }}/include" | |
export LDFLAGS="-L/usr/local/msvc${{ matrix.bitness }}/lib" | |
export CC="`pwd`/compile cl -nologo"; export CFLAGS="-MD" | |
export CXX="`pwd`/compile cl -nologo"; export CXXFLAGS="-MD" | |
export LD="link" | |
export NM="dumpbin -symbols" | |
export STRIP=":" | |
export AR="`pwd`/ar-lib lib" | |
export RANLIB=":" | |
wget -O libiconv-1.17.tar.gz https://ftp.gnu.org/gnu/libiconv/libiconv-1.17.tar.gz | |
./build-on.sh '${{ env.package }}' '--host=${{ matrix.bitness == 32 && 'i686' || 'x86_64' }}-w64-mingw32 --disable-shared --enable-csharp=dotnet' 'make' '/usr/local/msvc${{ matrix.bitness }}' 'libiconv-1.17' '' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-msvc${{ matrix.bitness }} | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
# This is not a platform-specific test, but very useful for finding bugs. | |
check-sanitized: | |
name: make check with sanitizers | |
needs: build-tarball | |
runs-on: ubuntu-22.04 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
- run: uname -a | |
- run: id | |
- run: env | LC_ALL=C sort | |
- run: pwd | |
# Install Ubuntu packages. | |
# List of packages: https://packages.ubuntu.com/ | |
# - run: sudo apt update; sudo apt install ... | |
- run: | | |
pwd | |
export CPPFLAGS="-Wall" | |
export CC="clang -fsanitize=address,undefined,signed-integer-overflow,shift,integer-divide-by-zero" | |
export CFLAGS="-O0 -fno-omit-frame-pointer -ggdb" | |
export CXX="clang++ -fsanitize=address,undefined,signed-integer-overflow,shift,integer-divide-by-zero" | |
export CXXFLAGS="-O0 -fno-omit-frame-pointer -ggdb" | |
export ASAN_OPTIONS="detect_leaks=0 abort_on_error=1 allocator_may_return_null=1" | |
./build-on.sh '${{ env.package }}' '' 'make' "$HOME" '' '' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-sanitized | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true | |
# This is not a platform-specific test, but very useful for finding ISO C23 compliance bugs. | |
check-newest-clang: | |
name: make check with the newest clang release | |
needs: build-tarball | |
runs-on: ubuntu-22.04 | |
steps: | |
# This is needed because we run a script stored in this repository. | |
- uses: actions/checkout@v4 | |
# Download the artifact to $GITHUB_WORKSPACE. | |
# Doc: https://github.com/actions/download-artifact?tab=readme-ov-file#usage | |
- uses: actions/download-artifact@v4 | |
with: | |
name: tarball | |
- uses: addnab/docker-run-action@v3 | |
with: | |
# A Docker container with the newest clang release, based on Debian 11. | |
image: tuxmake/clang-18:latest | |
options: -v ${{ github.workspace }}:/work | |
run: | | |
uname -a | |
id | |
env | LC_ALL=C sort | |
pwd | |
: "Install Debian packages." | |
: "List of packages: https://packages.debian.org/" | |
: "apt update; apt -y install ..." | |
cd /work | |
ls -l | |
export CPPFLAGS="-Wall" | |
export CC=clang | |
export CXX=clang++ | |
./build-on.sh '${{ env.package }}' '' 'make' '/usr/local' '' 'apt update; apt -y install locales && localedef -i ar_SA -f ISO-8859-6 ar_SA.ISO-8859-6 && localedef -i de_DE -f ISO-8859-1 de_DE.ISO-8859-1 && 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' | |
# Doc: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts | |
# https://github.com/actions/upload-artifact?tab=readme-ov-file#usage | |
- if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-newest-clang | |
path: | | |
${{ env.package }}-*/build/config.cache | |
${{ env.package }}-*/build/config.log | |
${{ env.package }}-*/build/config.status | |
${{ env.package }}-*/build/log[123] | |
${{ env.package }}-*/build/gettext-runtime/config.cache | |
${{ env.package }}-*/build/gettext-runtime/config.log | |
${{ env.package }}-*/build/gettext-runtime/config.status | |
${{ env.package }}-*/build/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build/libtextstyle/config.cache | |
${{ env.package }}-*/build/libtextstyle/config.log | |
${{ env.package }}-*/build/libtextstyle/config.status | |
${{ env.package }}-*/build/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/config.cache | |
${{ env.package }}-*/build/gettext-tools/config.log | |
${{ env.package }}-*/build/gettext-tools/config.status | |
${{ env.package }}-*/build/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build/gettext-tools/examples/config.log | |
${{ env.package }}-*/build/gettext-tools/examples/config.status | |
${{ env.package }}-*/build-full/config.cache | |
${{ env.package }}-*/build-full/config.log | |
${{ env.package }}-*/build-full/config.status | |
${{ env.package }}-*/build-full/log[123] | |
${{ env.package }}-*/build-full/gettext-runtime/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/intl/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.cache | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.log | |
${{ env.package }}-*/build-full/gettext-runtime/libasprintf/config.status | |
${{ env.package }}-*/build-full/gettext-runtime/tests/test-suite.log | |
${{ env.package }}-*/build-full/libtextstyle/config.cache | |
${{ env.package }}-*/build-full/libtextstyle/config.log | |
${{ env.package }}-*/build-full/libtextstyle/config.status | |
${{ env.package }}-*/build-full/libtextstyle/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/config.log | |
${{ env.package }}-*/build-full/gettext-tools/config.status | |
${{ env.package }}-*/build-full/gettext-tools/tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/system-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/gnulib-tests/test-suite.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.cache | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.log | |
${{ env.package }}-*/build-full/gettext-tools/examples/config.status | |
retention-days: 7 | |
overwrite: true |