Skip to content

Commit

Permalink
Add additional CI pipelines
Browse files Browse the repository at this point in the history
- 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: fvwmorg#1056
Signed-off-by: Matt Jolly <Kangie@gentoo.org>
  • Loading branch information
Kangie committed Aug 22, 2024
1 parent 04aaa4d commit 87598a8
Showing 1 changed file with 64 additions and 4 deletions.
68 changes: 64 additions & 4 deletions .github/workflows/ccpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
branches:
- main
jobs:
build:
build-autotools-gcc:
runs-on: ubuntu-latest
container:
image: fvwmorg/fvwm3-build:latest
Expand All @@ -24,7 +24,7 @@ jobs:
- name: Autotools build
run: make -j

build-meson:
build-meson-clang:
runs-on: ubuntu-latest
container: fvwmorg/fvwm3-build:latest
steps:
Expand All @@ -37,6 +37,66 @@ jobs:
- name: run build
run: ninja -C builddir

build-meson-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

build-gentoo-gcc:
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-build/meson" > /etc/portage/package.accept_keywords/meson &&
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 dev-build/meson
- 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

build-gentoo-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-build/meson" > /etc/portage/package.accept_keywords/meson &&
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-build/meson 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
Expand All @@ -45,7 +105,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
Expand All @@ -54,7 +114,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
Expand Down

0 comments on commit 87598a8

Please sign in to comment.