Skip to content

Commit

Permalink
Add Ubuntu 24.04 CI builds
Browse files Browse the repository at this point in the history
Also, increase build parallelism to match new GHA machine cores,
remove an unneeded dependency on macOS 14, bump base image for coverage
build.
  • Loading branch information
dfandrich committed May 29, 2024
1 parent 5ab890c commit de2b4b9
Showing 1 changed file with 123 additions and 6 deletions.
129 changes: 123 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ on:
- master

env:
MAKEFLAGS: -j 2
MAKEFLAGS: -j 4

jobs:
build-22_04:
Expand Down Expand Up @@ -134,6 +134,123 @@ jobs:
- name: 'install test'
run: make prefix= DESTDIR="${PWD}" ${{ matrix.build.install_target }}

build-24_04:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
build:
- cc: gcc
gtk: 3
install: desktop-file-utils docbook-xsl exiv2 libexiv2-dev libgtk-3-dev xsltproc gettext
cflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1
cxx: g++
target: all
install_target: install install-po install-desktop-file
- cc: clang
gtk: 3
install: desktop-file-utils docbook-xsl exiv2 libexiv2-dev libgtk-3-dev xsltproc gettext
cflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1
cxx: clang++
target: all
install_target: install install-po install-desktop-file
- name: no-nls
cc: gcc
gtk: 3
install: desktop-file-utils docbook-xsl exiv2 libexiv2-dev libgtk-3-dev xsltproc
cflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3
cxx: g++
target: all
install_target: install install-desktop-file
- name: debuglog
cc: gcc
gtk: 3
install: desktop-file-utils docbook-xsl exiv2 libexiv2-dev libgtk-3-dev xsltproc gettext
cflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1 -DDEBUG
cxx: g++
target: all
install_target: install install-po install-desktop-file
failing_tests: 16
- name: sanitize
cc: clang
gtk: 3
install: desktop-file-utils docbook-xsl exiv2 libexiv2-dev libgtk-3-dev xsltproc gettext
cflags: -g -O0 -fsanitize=address -fsanitize=undefined -DENABLE_NLS=1
ldflags: -g -O0 -fsanitize=address -fsanitize=undefined
cxx: clang++
target: all
install_target: install install-po install-desktop-file
asan_options: strict_string_checks=0:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1:use_sigaltstack=0
- name: 'compile as c++'
cc: g++
gtk: 3
install: desktop-file-utils docbook-xsl exiv2 libexiv2-dev libgtk-3-dev xsltproc gettext
cflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1
cxx: g++
target: all
install_target: install install-po install-desktop-file
- name: 'valgrind tests'
cc: gcc
install: docbook-xsl exiv2 libexiv2-dev libgtk-3-dev xsltproc gettext valgrind
cflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1
cxx: g++
target: gpscorrelate
install_target: install
valgrind: yes
- name: 'locale tests'
cc: gcc
gtk: 3
install: desktop-file-utils docbook-xsl exiv2 libexiv2-dev libgtk-3-dev xsltproc gettext locales-all
cflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1
cxx: g++
target: all
install_target: install install-po install-desktop-file
# Turkish is one of the better locales to test in that it has unusual
# upper/lowercase folding and comma as decimal separator.
locale: tr_TR

steps:
- uses: actions/checkout@v4
- name: 'install deps'
run: sudo apt-get update -y; sudo apt-get install -y --no-install-suggests --no-install-recommends ${{ matrix.build.install }}
- name: 'build'
run: make CFLAGS="${{ matrix.build.cflags }}" LDFLAGS="${{ matrix.build.ldflags }}" CC="${{ matrix.build.cc }}" CXX="${{ matrix.build.cxx }}" GTK="${{ matrix.build.gtk }}" ${{ matrix.build.make_opts }} ${{ matrix.build.target }}
- name: 'smoke test'
# ASAN_OPTIONS is to work around https://bugzilla.redhat.com/show_bug.cgi?id=1950244
run: env ASAN_OPTIONS="${{ matrix.build.asan_options }}" ./gpscorrelate -V
- name: 'test'
run: |
if [[ -z "${{ matrix.build.failing_tests }}" ]] ; then
make check CHECK_OPTIONS=-v ASAN_OPTIONS="${{ matrix.build.asan_options }}"
else
# Debug logging enabled makes some tests fail due to differing output
echo 'Expecting ${{ matrix.build.failing_tests }} test failures'
make check CHECK_OPTIONS=-v | tee /dev/stderr | grep -q '${{ matrix.build.failing_tests }} test(s) have FAILED'
fi
- if: matrix.build.valgrind == 'yes'
name: 'valgrind test'
run: make check CHECK_OPTIONS='-v -m'
- if: matrix.build.locale
name: 'locale test'
env:
LC_ADDRESS: ${{ matrix.build.locale }}
LC_COLLATE: ${{ matrix.build.locale }}
LC_CTYPE: ${{ matrix.build.locale }}
LC_IDENTIFICATION: ${{ matrix.build.locale }}
LC_MEASUREMENT: ${{ matrix.build.locale }}
LC_MESSAGES: ${{ matrix.build.locale }}
LC_MONETARY: ${{ matrix.build.locale }}
LC_NAME: ${{ matrix.build.locale }}
LC_NUMERIC: ${{ matrix.build.locale }}
LC_PAPER: ${{ matrix.build.locale }}
LC_SOURCED: ${{ matrix.build.locale }}
LC_TELEPHONE: ${{ matrix.build.locale }}
LC_TIME: ${{ matrix.build.locale }}
run: make check CHECK_OPTIONS='-v'
- name: 'install test'
run: make prefix= DESTDIR="${PWD}" ${{ matrix.build.install_target }}


build-20_04:
runs-on: ubuntu-20.04
strategy:
Expand Down Expand Up @@ -258,7 +375,7 @@ jobs:
run: make prefix= DESTDIR="${PWD}" ${{ matrix.build.install_target }}

coverage:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
build:
Expand Down Expand Up @@ -297,7 +414,7 @@ jobs:
build:
- cc: gcc
gtk: 2
install: gettext desktop-file-utils docbook-xsl exiv2 gtk+
install: desktop-file-utils docbook-xsl exiv2 gtk+
cflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1
cxxflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1 -std=c++11
ldflags: -O3 -lintl
Expand All @@ -306,7 +423,7 @@ jobs:
install_target: install install-po install-desktop-file
- cc: gcc
gtk: 3
install: gettext desktop-file-utils docbook-xsl exiv2 gtk+3
install: desktop-file-utils docbook-xsl exiv2 gtk+3
cflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1
cxxflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1 -std=c++11
ldflags: -O3 -lintl
Expand All @@ -315,7 +432,7 @@ jobs:
install_target: install install-po install-desktop-file
- cc: clang
gtk: 2
install: gettext desktop-file-utils docbook-xsl exiv2 gtk+
install: desktop-file-utils docbook-xsl exiv2 gtk+
cflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1
cxxflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1 -std=c++11
ldflags: -O3 -lintl
Expand All @@ -324,7 +441,7 @@ jobs:
install_target: install install-po install-desktop-file
- cc: clang
gtk: 3
install: gettext desktop-file-utils docbook-xsl exiv2 gtk+3
install: desktop-file-utils docbook-xsl exiv2 gtk+3
cflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1
cxxflags: -Wall -Wextra -Werror -Wno-error=deprecated-declarations -O3 -DENABLE_NLS=1 -std=c++11
ldflags: -O3 -lintl
Expand Down

0 comments on commit de2b4b9

Please sign in to comment.