Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update CI settings (2025-01) #1507

Merged
merged 2 commits into from
Jan 18, 2025
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
152 changes: 66 additions & 86 deletions .github/workflows/ccpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ on:

jobs:

ASan-22:
runs-on: ubuntu-22.04
ASan-24:
runs-on: ubuntu-24.04
env:
CC: gcc-11
CXX: g++-11
CC: gcc-13
CXX: g++-13
# Avoid crash for calling crypt_r() that is pointing invalid address.
# https://github.com/JDimproved/JDim/issues/943
AVOID_CRASH: -Wl,--push-state,--no-as-needed -lcrypt -Wl,--pop-state
Expand All @@ -24,64 +24,25 @@ jobs:
- name: dependencies installation
run: |
sudo apt update
sudo apt install libgnutls28-dev libgtest-dev libgtkmm-3.0-dev meson zlib1g-dev g++-11
- name: meson setup builddir -Db_sanitize=address,undefined -Dbuildtype=debug -Dcpp_args="-D_DEBUG" -Dcpp_link_args="${AVOID_CRASH}"
run: meson setup builddir -Db_sanitize=address,undefined -Dbuildtype=debug -Dcpp_args="-D_DEBUG" -Dcpp_link_args="${AVOID_CRASH}"
sudo apt install libgnutls28-dev libgtest-dev libgtkmm-3.0-dev meson zlib1g-dev g++-13
- run: meson setup builddir -Db_sanitize=address,undefined -Dbuildtype=debug -Dcpp_args="-D_DEBUG" -Dcpp_link_args="${AVOID_CRASH}"
# `compile` subcommand requires Meson 0.54 or later.
- name: ninja -C builddir
run: ninja -C builddir
- run: ninja -C builddir
# Since Meson 0.57, `test` subcommand will only rebuild test program.
- name: meson test -v -C builddir
run: meson test -v -C builddir
- name: ./builddir/src/jdim -V
run: ./builddir/src/jdim -V
- run: meson test -v -C builddir
- run: ./builddir/src/jdim -V

compiler-20:
runs-on: ubuntu-20.04
compiler-22:
runs-on: ubuntu-22.04
env:
CC: ${{ matrix.sets.cc }}
CXX: ${{ matrix.sets.cxx }}
strategy:
matrix:
sets:
- cc: gcc-9
cxx: g++-9
package: g++-9
- cc: gcc-10
cxx: g++-10
package: g++-10
- cc: clang-10
cxx: clang++-10
package: clang-10
- cc: clang-11
cxx: clang++-11
package: clang-11
- cc: clang-12
cxx: clang++-12
package: clang-12
steps:
- uses: actions/checkout@v4
- name: dependencies installation
run: |
sudo apt update
sudo apt install libgnutls28-dev libgtest-dev libgtkmm-3.0-dev meson zlib1g-dev ${{ matrix.sets.package }}
- name: meson setup builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG"
run: meson setup builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG"
- name: ninja -C builddir
run: ninja -C builddir
- name: meson test -v -C builddir
run: meson test -v -C builddir
- name: ./builddir/src/jdim -V
run: ./builddir/src/jdim -V

compiler-22:
runs-on: ubuntu-22.04
env:
CC: ${{ matrix.sets.cc }}
CXX: ${{ matrix.sets.cxx }}
strategy:
matrix:
sets:
- cc: gcc-11
cxx: g++-11
package: g++-11
Expand Down Expand Up @@ -109,21 +70,50 @@ jobs:
run: |
sudo apt update
sudo apt install libgnutls28-dev libgtest-dev libgtkmm-3.0-dev meson zlib1g-dev ${{ matrix.sets.package }}
- name: meson setup builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG"
run: meson setup builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG"
- name: ninja -C builddir
run: ninja -C builddir
- name: meson test -v -C builddir
run: meson test -v -C builddir
- name: ./builddir/src/jdim -V
run: ./builddir/src/jdim -V
- run: meson setup builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG"
- run: ninja -C builddir
- run: meson test -v -C builddir
- run: ./builddir/src/jdim -V

library-20:
compiler-24:
runs-on: ubuntu-24.04
env:
CC: ${{ matrix.sets.cc }}
CXX: ${{ matrix.sets.cxx }}
strategy:
matrix:
sets:
- cc: gcc-13
cxx: g++-13
package: g++-13
- cc: gcc-14
cxx: g++-14
package: g++-14
- cc: clang-16
cxx: clang++-16
package: clang-16
- cc: clang-17
cxx: clang++-17
package: clang-17
- cc: clang-18
cxx: clang++-18
package: clang-18
steps:
- uses: actions/checkout@v4
- name: dependencies installation
run: |
sudo apt update
sudo apt install libgnutls28-dev libgtest-dev libgtkmm-3.0-dev meson zlib1g-dev ${{ matrix.sets.package }}
- run: meson setup builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG"
- run: ninja -C builddir
- run: meson test -v -C builddir
- run: ./builddir/src/jdim -V

runs-on: ubuntu-20.04
library-22:
runs-on: ubuntu-22.04
env:
CC: gcc-9
CXX: g++-9
CC: gcc-11
CXX: g++-11
strategy:
matrix:
deps:
Expand All @@ -138,22 +128,17 @@ jobs:
- name: dependencies installation (${{ matrix.deps.packages }})
run: |
sudo apt update
sudo apt install meson libgtest-dev libgtkmm-3.0-dev ${{ matrix.deps.packages }} g++-9
- name: meson setup builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG" ${{ matrix.deps.config_args }}
run: meson setup builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG" ${{ matrix.deps.config_args }}
- name: ninja -C builddir
run: ninja -C builddir
- name: meson test -v -C builddir
run: meson test -v -C builddir
- name: ./builddir/src/jdim -V
run: ./builddir/src/jdim -V

library-22:
sudo apt install meson libgtest-dev libgtkmm-3.0-dev ${{ matrix.deps.packages }} g++-11
- run: meson setup builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG" ${{ matrix.deps.config_args }}
- run: ninja -C builddir
- run: meson test -v -C builddir
- run: ./builddir/src/jdim -V

runs-on: ubuntu-22.04
library-24:
runs-on: ubuntu-24.04
env:
CC: gcc-11
CXX: g++-11
CC: gcc-13
CXX: g++-13
strategy:
matrix:
deps:
Expand All @@ -168,18 +153,13 @@ jobs:
- name: dependencies installation (${{ matrix.deps.packages }})
run: |
sudo apt update
sudo apt install meson libgtest-dev libgtkmm-3.0-dev ${{ matrix.deps.packages }} g++-11
- name: meson setup builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG" ${{ matrix.deps.config_args }}
run: meson setup builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG" ${{ matrix.deps.config_args }}
- name: ninja -C builddir
run: ninja -C builddir
- name: meson test -v -C builddir
run: meson test -v -C builddir
- name: ./builddir/src/jdim -V
run: ./builddir/src/jdim -V
sudo apt install meson libgtest-dev libgtkmm-3.0-dev ${{ matrix.deps.packages }} g++-13
- run: meson setup builddir -Dbuildtype=debug -Dcpp_args="-D_DEBUG" ${{ matrix.deps.config_args }}
- run: ninja -C builddir
- run: meson test -v -C builddir
- run: ./builddir/src/jdim -V

manual-build:

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand Down
89 changes: 36 additions & 53 deletions .github/workflows/weekly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,82 +9,68 @@ on:

jobs:

Unity-build-gcc12-Werror:
runs-on: ubuntu-22.04
Unity-build-gcc14-Werror:
runs-on: ubuntu-24.04
env:
CC: gcc-12
CXX: g++-12
CC: gcc-14
CXX: g++-14
steps:
- uses: actions/checkout@v4
- name: dependencies installation
run: |
sudo apt update
sudo apt install libgnutls28-dev libgtest-dev libgtkmm-3.0-dev meson zlib1g-dev g++-12
- name: meson setup builddir -Dunity=on -Dunity_size=1000 -Dbuildtype=debug -Dcpp_args="-D_DEBUG" -Dwerror=true
run: meson setup builddir -Dunity=on -Dunity_size=1000 -Dbuildtype=debug -Dcpp_args="-D_DEBUG" -Dwerror=true
- name: ninja -C builddir -k0
run: ninja -C builddir -k0
- name: meson test -v -C builddir
run: meson test -v -C builddir
- name: ./builddir/src/jdim -V
run: ./builddir/src/jdim -V
sudo apt install libgnutls28-dev libgtest-dev libgtkmm-3.0-dev meson zlib1g-dev g++-14
- run: meson setup builddir -Dunity=on -Dunity_size=1000 -Dbuildtype=debug -Dcpp_args="-D_DEBUG" -Dwerror=true
- run: ninja -C builddir -k0
- run: meson test -v -C builddir
- run: ./builddir/src/jdim -V

Unity-build-clang15-Werror:
runs-on: ubuntu-22.04
Unity-build-clang18-Werror:
runs-on: ubuntu-24.04
env:
CC: clang-15
CXX: clang++-15
CC: clang-18
CXX: clang++-18
steps:
- uses: actions/checkout@v4
- name: dependencies installation
run: |
sudo apt update
sudo apt install libgnutls28-dev libgtest-dev libgtkmm-3.0-dev meson zlib1g-dev clang-15
- name: meson setup builddir -Dunity=on -Dunity_size=1000 -Dbuildtype=debug -Dcpp_args="-D_DEBUG" -Dwerror=true
run: meson setup builddir -Dunity=on -Dunity_size=1000 -Dbuildtype=debug -Dcpp_args="-D_DEBUG" -Dwerror=true
- name: ninja -C builddir -k0
run: ninja -C builddir -k0
- name: meson test -v -C builddir
run: meson test -v -C builddir
- name: ./builddir/src/jdim -V
run: ./builddir/src/jdim -V
sudo apt install libgnutls28-dev libgtest-dev libgtkmm-3.0-dev meson zlib1g-dev clang-18
- run: meson setup builddir -Dunity=on -Dunity_size=1000 -Dbuildtype=debug -Dcpp_args="-D_DEBUG" -Dwerror=true
- run: ninja -C builddir -k0
- run: meson test -v -C builddir
- run: ./builddir/src/jdim -V

Unity-build-gcc12-with-options-Werror:
runs-on: ubuntu-22.04
Unity-build-gcc14-with-options-Werror:
runs-on: ubuntu-24.04
env:
CC: gcc-12
CXX: g++-12
CC: gcc-14
CXX: g++-14
steps:
- uses: actions/checkout@v4
- name: dependencies installation
run: |
sudo apt update
sudo apt install g++-12 libasound2-dev libgtest-dev libgtkmm-3.0-dev libmigemo-dev libssl-dev meson zlib1g-dev
- name: meson setup builddir -Dunity=on -Dunity_size=1000 -Dbuildtype=debug -Dcpp_args="-D_DEBUG" -Dalsa=enabled -Dmigemo=enabled -Dtls=openssl -Dcompat_cache_dir=disabled -Dsessionlib=no -Dwerror=true
run: meson setup builddir -Dunity=on -Dunity_size=1000 -Dbuildtype=debug -Dcpp_args="-D_DEBUG" -Dalsa=enabled -Dmigemo=enabled -Dtls=openssl -Dcompat_cache_dir=disabled -Dsessionlib=no -Dwerror=true
- name: ninja -C builddir -k0
run: ninja -C builddir -k0
- name: meson test -v -C builddir
run: meson test -v -C builddir
- name: ./builddir/src/jdim -V
run: ./builddir/src/jdim -V
sudo apt install g++-14 libasound2-dev libgtest-dev libgtkmm-3.0-dev libmigemo-dev libssl-dev meson zlib1g-dev
- run: meson setup builddir -Dunity=on -Dunity_size=1000 -Dbuildtype=debug -Dcpp_args="-D_DEBUG" -Dalsa=enabled -Dmigemo=enabled -Dtls=openssl -Dcompat_cache_dir=disabled -Dsessionlib=no -Dwerror=true
- run: ninja -C builddir -k0
- run: meson test -v -C builddir
- run: ./builddir/src/jdim -V

muon-master:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
env:
CC: gcc-11
CXX: g++-11
CC: gcc-13
CXX: g++-13
steps:
- uses: actions/checkout@v4
- name: dependencies installation
run: |
sudo apt update
sudo apt install git libgnutls28-dev libpkgconf-dev libgtest-dev libgtkmm-3.0-dev zlib1g-dev g++-11
- name: git clone muon
run: |
sudo apt install git libgnutls28-dev libpkgconf-dev libgtest-dev libgtkmm-3.0-dev zlib1g-dev g++-13
- run: |
git clone --depth 1 https://git.sr.ht/~lattis/muon muon-src
- name: git log -n1 muon
run: git -C muon-src log -n1
- run: git -C muon-src log -n1
# Since 2024-11-03 07:27:25 -0500 (6ec469bb42), bootstrapping has used muon-bootstrap as exe name.
- name: build muon stage1
run: |
Expand All @@ -98,16 +84,13 @@ jobs:
./stage1/muon-bootstrap setup -Ddocs=disabled -Dlibarchive=disabled -Dlibcurl=disabled -Dlibpkgconf=enabled ../muon-build
./stage1/muon-bootstrap samu -C ../muon-build
cd ..
- name: muon version
run: ./muon-build/muon version
- name: muon setup builddir
run: ./muon-build/muon setup -Dcompat_cache_dir=disabled jdim-build
- run: ./muon-build/muon version
- run: ./muon-build/muon setup -Dcompat_cache_dir=disabled jdim-build
# Use embedded samurai instead of ninja
- run: ./muon-build/muon samu -C jdim-build -k0
- name: muon test
run: |
cd jdim-build
../muon-build/muon test -v
cd ..
- name: ./jdim-build/src/jdim -V
run: ./jdim-build/src/jdim -V
- run: ./jdim-build/src/jdim -V
Loading