Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion .github/workflows/build-systems.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@
# generate first, macOS and Windows having one (.github/scripts/comma-locale.sh,
# GAOL v5). The autotools jobs check that make distclean gives the sources back
# as git has them. One job builds GAOL as a subproject of a meson project
# (tests/meson_subproject, GAOL v5).
# (tests/meson_subproject, GAOL v5). An autotools job (--disable-exceptions)
# and a meson job (-Denable-exception=false) build GAOL without exceptions,
# where an error ends the program, and run the examples and the tests, which
# leave out the checks of an exception there (GAOL v5).
#
# Copyright (c) 2026 ENSTA, France
#
Expand Down Expand Up @@ -53,6 +56,7 @@ jobs:
- { os: macos-15-intel, configure: '', desc: 'Autotools, macOS 15 x86_64' }
- { os: ubuntu-24.04, configure: '--enable-preserve-rounding', desc: 'Autotools, Ubuntu 24.04 x86_64, rounding direction preserved' }
- { os: ubuntu-24.04-arm, configure: '--enable-preserve-rounding', desc: 'Autotools, Ubuntu 24.04 arm64, rounding direction preserved' }
- { os: ubuntu-24.04, configure: '--disable-exceptions --with-examples', desc: 'Autotools, Ubuntu 24.04 x86_64, without exceptions' }
steps:
- uses: actions/checkout@v7
- name: Tools
Expand Down Expand Up @@ -112,6 +116,9 @@ jobs:
run: sh .github/scripts/comma-locale.sh generate
- name: Tests (make test)
run: make -j 4 test || { cat tests/test-suite.log; exit 1; }
- name: The examples
if: contains(matrix.cfg.configure, '--with-examples')
run: make -j 4 -C examples check || { cat examples/test-suite.log; exit 1; }
- name: The test numbers ran under a locale writing a decimal comma
run: sh .github/scripts/comma-locale.sh check tests/numbers.log
- name: make distclean gives the sources back as git has them
Expand Down Expand Up @@ -151,6 +158,7 @@ jobs:
- { os: macos-15-intel, options: '', desc: 'Meson, macOS 15 x86_64' }
- { os: ubuntu-24.04, options: '-Denable-preserve-rounding=true', desc: 'Meson, Ubuntu 24.04 x86_64, rounding direction preserved' }
- { os: macos-15, options: '-Denable-preserve-rounding=true', desc: 'Meson, macOS 15 arm64, rounding direction preserved' }
- { os: ubuntu-24.04, options: '-Denable-exception=false -Dwith-examples=true', desc: 'Meson, Ubuntu 24.04 x86_64, without exceptions' }
steps:
- uses: actions/checkout@v7
- name: Tools
Expand Down Expand Up @@ -207,6 +215,9 @@ jobs:
run: sh .github/scripts/comma-locale.sh generate
- name: Tests (ninja test, make test of meson)
run: ninja -C build-meson test
- name: The examples
if: contains(matrix.cfg.options, '-Dwith-examples=true')
run: meson test -C build-meson --setup check --suite examples --print-errorlogs
- name: The test numbers ran under a locale writing a decimal comma
run: sh .github/scripts/comma-locale.sh check build-meson/meson-logs/testlog.txt
- name: Tests built with the installed GAOL
Expand Down
12 changes: 11 additions & 1 deletion .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
# checks after them that numbers used it (.github/scripts/comma-locale.sh)
# (GAOL v5).
#
# The job Ubuntu 24.04 x86_64 GCC also compiles the examples of the manual of
# GAOL v5 that show what they print with the GAOL it installs, and checks that
# they print it (manual/check_examples.py) (GAOL v5).
#
# Copyright (c) 2026 ENSTA, France
#
# Created 2026-09-20 by Jordan NININ
Expand Down Expand Up @@ -52,7 +56,7 @@ jobs:
- { os: ubuntu-26.04, cc: clang, cxx: clang++, desc: 'Ubuntu 26.04 x86_64 Clang' }
- { os: ubuntu-26.04-arm, cc: gcc, cxx: g++, desc: 'Ubuntu 26.04 arm64 GCC' }
- { os: ubuntu-26.04-arm, cc: clang, cxx: clang++, desc: 'Ubuntu 26.04 arm64 Clang' }
- { os: ubuntu-24.04, cc: gcc, cxx: g++, desc: 'Ubuntu 24.04 x86_64 GCC' }
- { os: ubuntu-24.04, cc: gcc, cxx: g++, manual: true, desc: 'Ubuntu 24.04 x86_64 GCC' }
- { os: ubuntu-24.04, cc: clang, cxx: clang++, desc: 'Ubuntu 24.04 x86_64 Clang' }
- { os: ubuntu-24.04-arm, cc: gcc, cxx: g++, desc: 'Ubuntu 24.04 arm64 GCC' }
- { os: ubuntu-24.04-arm, cc: clang, cxx: clang++, desc: 'Ubuntu 24.04 arm64 Clang' }
Expand Down Expand Up @@ -112,6 +116,12 @@ jobs:
cmake -S tests/find_package -B build-find-package -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=${{ matrix.cfg.cxx }} -DCMAKE_PREFIX_PATH="$PWD/gaol-install"
cmake --build build-find-package -j 4
cmake --build build-find-package --target test
- name: The examples of the manual print what it shows
if: matrix.cfg.manual
run: |
# Compiled with the flags of gaol.pc, in C++11, the oldest standard
# GAOL's headers compile in
PKG_CONFIG_PATH="$PWD/gaol-install/lib/pkgconfig" CXX=${{ matrix.cfg.cxx }} python3 manual/check_examples.py -j 4 --std c++11

clang-14-arm64:
name: Ubuntu 24.04 arm64 Clang 14, refused
Expand Down
13 changes: 10 additions & 3 deletions doc/continuous-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,11 @@ and Clang) on x64 and GCC 11 on x86,
clang-cl without `/fp:strict`. Jobs of each build
restore the rounding direction (`GAOL_PRESERVE_ROUNDING`): Ubuntu x86_64 GCC
and arm64 Clang, Debian i386 and armhf, macOS arm64, Visual Studio x64,
autotools and meson. The jobs built in Release print the time per operation in
their summary.
autotools and meson. Jobs of autotools and of meson on Ubuntu x86_64 build GAOL
without exceptions (`--disable-exceptions`, `-Denable-exception=false`),
where an error of GAOL ends the program, and run the examples and the tests,
which leave out there the checks of an exception (GAOL v5). The jobs built in
Release print the time per operation in their summary.

Two jobs of `linux.yml`, with the GCC and the Clang of Ubuntu 26.04, and one of
`macos.yml`, with the AppleClang of macOS 26 arm64, build the library, the
Expand Down Expand Up @@ -116,7 +119,11 @@ the same code, and once more than 400.
The manuals, that of GAOL v5 (`manual/v5/gaol.tex`) and that of GAOL 4
(`manual/v4/gaol.tex`), are built with the LaTeX of Ubuntu 24.04, by the
autotools and the meson builds, when `manual/` changes (`manual.yml`); the
PDFs are artifacts of the run.
PDFs are artifacts of the run. The examples of the manual of GAOL v5 that show
what they print are compiled in C++11 with the GAOL that the job Ubuntu 24.04
x86_64 GCC of `linux.yml` installs, at each run, so that a change of the
library that changes one of their outputs shows, and have to print what the
manual shows (`manual/check_examples.py`, GAOL v5).

## Configurations refused or left out, and why

Expand Down
Loading
Loading