Skip to content

Split autotools and meson #458

Split autotools and meson

Split autotools and meson #458

Workflow file for this run

name: Flatpak-builder CI
on:
push:
branches:
- main
pull_request:
branches:
- main
env:
DEBIAN_FRONTEND: noninteractive
TESTS_TIMEOUT: 10 # in minutes
jobs:
check-autotools:
name: Build with gcc and test
runs-on: ubuntu-22.04
steps:
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y libglib2.0 attr automake appstream-compose gettext autopoint bison dbus gtk-doc-tools \
libfuse-dev ostree libostree-dev libarchive-dev libcap-dev libattr1-dev libdw-dev libelf-dev \
libjson-glib-dev shared-mime-info desktop-file-utils libpolkit-agent-1-dev libpolkit-gobject-1-dev \
libseccomp-dev libsystemd-dev libxml2-utils libgpgme11-dev gobject-introspection \
libgirepository1.0-dev libappstream-dev libdconf-dev clang socat flatpak \
libcurl4-gnutls-dev libflatpak-dev libyaml-dev elfutils git patch unzip
- name: Check out flatpak
uses: actions/checkout@v4
with:
submodules: true
- name: configure
# TODO: Enable gtk-doc builds
run: ./autogen.sh
env:
CFLAGS: -fsanitize=undefined -fsanitize-undefined-trap-on-error -fsanitize=address -O2 -Wp,-D_FORTIFY_SOURCE=2
- name: Build flatpak
run: make -j $(getconf _NPROCESSORS_ONLN)
- name: Run tests
run: make check
env:
ASAN_OPTIONS: detect_leaks=0 # Right now we're not fully clean, but this gets us use-after-free etc
- name: Check distribution
run: make distcheck
env:
ASAN_OPTIONS: detect_leaks=0
clang:
name: Build with clang
runs-on: ubuntu-22.04
steps:
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y libglib2.0 attr automake appstream-compose gettext autopoint bison dbus gtk-doc-tools \
libfuse-dev ostree libostree-dev libarchive-dev libcap-dev libattr1-dev libdw-dev libelf-dev \
libjson-glib-dev shared-mime-info desktop-file-utils libpolkit-agent-1-dev libpolkit-gobject-1-dev \
libseccomp-dev libsystemd-dev libxml2-utils libgpgme11-dev gobject-introspection \
libgirepository1.0-dev libappstream-dev libdconf-dev clang flatpak \
libcurl4-gnutls-dev libflatpak-dev libyaml-dev elfutils git patch unzip
- name: Check out flatpak
uses: actions/checkout@v4
with:
submodules: true
- name: configure
# We disable introspection because it fails with clang: https://bugzilla.redhat.com/show_bug.cgi?id=1543295
run: ./autogen.sh --disable-introspection
env:
CC: clang
CFLAGS: -Werror=unused-variable
- name: Build flatpak
run: make -j $(getconf _NPROCESSORS_ONLN)
check-meson:
name: Ubuntu 22.04 meson build
runs-on: ubuntu-22.04
strategy:
matrix:
compiler: ['gcc', 'clang']
env:
UBUNTU_VERSION: '22.04'
CC: ${{ matrix.compiler }}
BASE_CFLAGS: -Wp,-D_FORTIFY_SOURCE=2
BUILDDIR: builddir
steps:
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y \
${{ matrix.compiler }} \
attr \
automake \
autopoint \
appstream-compose \
bison \
debugedit \
dbus \
desktop-file-utils \
elfutils \
flatpak \
gettext \
git \
gobject-introspection \
gtk-doc-tools \
libappstream-dev \
libarchive-dev \
libattr1-dev \
libcap-dev \
libcurl4-gnutls-dev \
libdconf-dev \
libdw-dev \
libelf-dev \
libflatpak-dev \
libfuse-dev \
libgirepository1.0-dev \
libglib2.0-dev \
libgpgme11-dev \
libjson-glib-dev \
libostree-dev \
libpolkit-agent-1-dev \
libpolkit-gobject-1-dev \
libseccomp-dev \
libsystemd-dev \
libxml2-utils \
libyaml-dev \
meson \
ostree \
patch \
shared-mime-info \
socat \
unzip
- name: Check out flatpak-builder
uses: actions/checkout@v4
- name: Configure flatpak-builder
# TODO: Enable gtk-doc builds
run: meson . ${BUILDDIR}
- name: Build flatpak-builder with Meson
run: meson compile -C ${BUILDDIR}
- name: Run tests with Meson
run: timeout --signal=KILL -v ${TESTS_TIMEOUT}m meson test -C ${BUILDDIR} --verbose
- name: Upload test logs
uses: actions/upload-artifact@v2
if: failure() || cancelled()
with:
name: test logs
path: |
builddir/meson-logs/testlog.txt
installed-test-logs/