From 972764b5539f8db79020b6954023d1191c19e403 Mon Sep 17 00:00:00 2001 From: Matt Jolly Date: Sat, 17 Aug 2024 18:02:46 +1000 Subject: [PATCH] Add additional CI pipelines - Gentoo Linux GCC and Clang (via gentoo/stage3:nomultilib) - GCC LTO (via fvwmorg/fvwm3-build) While the issue with LTO builds has been resolved in this PR, it was incidental and we should introduce a CI pipeline that will catch LTO errors before they make it into a release. Closes: https://github.com/fvwmorg/fvwm3/issues/1056 Signed-off-by: Matt Jolly --- .github/workflows/ccpp.yml | 62 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 2d0570878..e689e1cf4 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -37,6 +37,64 @@ jobs: - name: run build run: ninja -C builddir + build-gcc-lto: + runs-on: ubuntu-latest + container: fvwmorg/fvwm3-build:latest + steps: + - name: checkout + uses: actions/checkout@v4 + - name: set git safe directory + run: git config --global --add safe.directory ${GITHUB_WORKSPACE} + - name: configure meson build + run: CFLAGS="-flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing" meson setup builddir -Dhtmldoc=true -Dmandoc=true -Dxent=true -Drsvg=true -Dpng=true -Dauto_features=enabled + - name: run build + run: ninja -C builddir + + gentoo-build: + runs-on: ubuntu-latest + container: + image: gentoo/stage3:nomultilib + steps: + - name: Install dependencies + run: > + emerge-webrsync && getuto && + echo "x11-wm/fvwm3" > /etc/portage/package.accept_keywords/foo && + echo "dev-python/pillow truetype" > /etc/portage/package.use/pillow && + USE="-harfbuzz" emerge media-libs/freetype && + emerge --autounmask-continue --getbinpkg --onlydeps x11-wm/fvwm3 && + emerge --getbinpkg dev-vcs/git + - name: Check out repository code + uses: actions/checkout@v4 + - name: set git safe directory + run: git config --global --add safe.directory ${GITHUB_WORKSPACE} + - name: configure meson build + run: meson setup builddir + - name: run build + run: ninja -C builddir + + gentoo-build-clang: + runs-on: ubuntu-latest + container: + image: gentoo/stage3:nomultilib + steps: + - name: Install dependencies + run: > + emerge-webrsync && getuto && + echo "x11-wm/fvwm3" > /etc/portage/package.accept_keywords/foo && + echo "dev-python/pillow truetype" > /etc/portage/package.use/pillow && + USE="-harfbuzz" emerge media-libs/freetype && + emerge --autounmask-continue --getbinpkg --onlydeps x11-wm/fvwm3 && + emerge --getbinpkg sys-devel/clang sys-devel/lld dev-vcs/git && + env-update + - name: Check out repository code + uses: actions/checkout@v4 + - name: set git safe directory + run: git config --global --add safe.directory ${GITHUB_WORKSPACE} + - name: configure meson build + run: . /etc/profile && CC=clang CC_LD=lld meson setup builddir + - name: run build + run: . /etc/profile && ninja -C builddir + notification: runs-on: ubuntu-20.04 name: notifications @@ -45,7 +103,7 @@ jobs: uses: Gottox/irc-message-action@v2.1.3 if: github.event_name == 'pull_request' with: - server: "irc.libera.chat" + server: irc.libera.chat notice: false channel: "#fvwm" nickname: fvwm3-gh-pr @@ -54,7 +112,7 @@ jobs: uses: Gottox/irc-message-action@v2.1.3 if: github.event_name == 'create' && github.event.ref_type == 'tag' with: - server: "irc.libera.chat" + server: irc.libera.chat notice: false channel: "#fvwm" nickname: fvwm-gh