mirror of
https://github.com/flatpak/flatpak.git
synced 2026-01-29 01:51:20 -05:00
227 lines
8.3 KiB
YAML
227 lines
8.3 KiB
YAML
name: Flatpak CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- flatpak-1.0.x
|
|
- flatpak-1.2.x
|
|
- flatpak-1.4.x
|
|
- flatpak-1.6.x
|
|
- flatpak-1.8.x
|
|
pull_request:
|
|
paths-ignore:
|
|
- README.md
|
|
- NEWS
|
|
- INSTALL
|
|
- COPYING
|
|
- CODE_OF_CONDUCT.md
|
|
- .lgtm.yml
|
|
- uncrustify.cfg
|
|
- uncrustify.sh
|
|
branches:
|
|
- master
|
|
- flatpak-1.0.x
|
|
- flatpak-1.2.x
|
|
- flatpak-1.4.x
|
|
- flatpak-1.6.x
|
|
- flatpak-1.8.x
|
|
|
|
jobs:
|
|
check:
|
|
name: Build with gcc and test
|
|
runs-on: ubuntu-18.04
|
|
steps:
|
|
- name: Install Dependencies
|
|
run: |
|
|
sudo add-apt-repository ppa:alexlarsson/flatpak
|
|
sudo add-apt-repository ppa:alexlarsson/glib260
|
|
sudo apt-get update
|
|
sudo apt-get install -y libglib2.0 attr automake gettext autopoint bison dbus gtk-doc-tools \
|
|
libfuse-dev ostree libostree-dev libarchive-dev libzstd-dev libcap-dev libattr1-dev libdw-dev libelf-dev python3-pyparsing \
|
|
libjson-glib-dev shared-mime-info desktop-file-utils libpolkit-agent-1-dev libpolkit-gobject-1-dev \
|
|
libseccomp-dev libsoup2.4-dev libsystemd-dev libxml2-utils libgpgme11-dev gobject-introspection \
|
|
libgirepository1.0-dev libappstream-glib-dev libdconf-dev clang socat meson libdbus-1-dev e2fslibs-dev
|
|
- name: Check out flatpak
|
|
uses: actions/checkout@v1
|
|
with:
|
|
submodules: true
|
|
- name: Build malcontent dependency
|
|
run: |
|
|
git clone https://gitlab.freedesktop.org/pwithnall/malcontent.git ./malcontent
|
|
pushd ./malcontent
|
|
git checkout tags/0.4.0
|
|
meson setup --prefix=/usr _build
|
|
ninja -C _build
|
|
sudo ninja -C _build install
|
|
popd
|
|
- name: Build ostree dependency
|
|
run: |
|
|
git clone https://github.com/ostreedev/ostree.git ./ostree
|
|
pushd ./ostree
|
|
git checkout 7bc53f006351fcf5d32d9427e61a4f842f57f67b
|
|
./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --sysconfdir=/etc --localstatedir=/var
|
|
make -j $(getconf _NPROCESSORS_ONLN)
|
|
sudo make install
|
|
popd
|
|
- name: Create logs dir
|
|
run: mkdir test-logs
|
|
- name: autogen.sh
|
|
run: NOCONFIGURE=1 ./autogen.sh --enable-internal-checks
|
|
- name: configure
|
|
# TODO: Enable gtk-doc builds
|
|
run: |
|
|
mkdir _build
|
|
pushd _build
|
|
../configure
|
|
popd
|
|
env:
|
|
CFLAGS: -fsanitize=undefined -fsanitize-undefined-trap-on-error -fsanitize=address -O2 -Wp,-D_FORTIFY_SOURCE=2
|
|
- name: Build flatpak
|
|
run: make -C _build -j $(getconf _NPROCESSORS_ONLN)
|
|
- name: Run tests
|
|
# TODO: Build with -j (currently ends up with hangs in the tests)
|
|
run: make -C _build check
|
|
env:
|
|
ASAN_OPTIONS: detect_leaks=0 # Right now we're not fully clean, but this gets us use-after-free etc
|
|
- name: Collect overall test logs on failure
|
|
if: failure()
|
|
run: mv _build/test-suite.log test-logs/ || true
|
|
- name: Collect individual test logs on cancel
|
|
if: failure() || cancelled()
|
|
run: mv _build/tests/*.log test-logs/ || true
|
|
- name: Upload test logs
|
|
uses: actions/upload-artifact@v1
|
|
if: failure() || cancelled()
|
|
with:
|
|
name: test logs
|
|
path: test-logs
|
|
|
|
clang:
|
|
name: Build with clang
|
|
runs-on: ubuntu-18.04
|
|
steps:
|
|
- name: Install Dependencies
|
|
run: |
|
|
sudo add-apt-repository ppa:alexlarsson/flatpak
|
|
sudo add-apt-repository ppa:alexlarsson/glib260
|
|
sudo apt-get update
|
|
sudo apt-get install -y libglib2.0 attr automake gettext autopoint bison dbus gtk-doc-tools \
|
|
libfuse-dev ostree libostree-dev libarchive-dev libzstd-dev libcap-dev libattr1-dev libdw-dev libelf-dev python3-pyparsing \
|
|
libjson-glib-dev shared-mime-info desktop-file-utils libpolkit-agent-1-dev libpolkit-gobject-1-dev \
|
|
libseccomp-dev libsoup2.4-dev libsystemd-dev libxml2-utils libgpgme11-dev gobject-introspection \
|
|
libgirepository1.0-dev libappstream-glib-dev libdconf-dev clang e2fslibs-dev
|
|
- name: Build ostree dependency
|
|
run: |
|
|
git clone https://github.com/ostreedev/ostree.git ./ostree
|
|
pushd ./ostree
|
|
git checkout 7bc53f006351fcf5d32d9427e61a4f842f57f67b
|
|
./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --sysconfdir=/etc --localstatedir=/var
|
|
make -j $(getconf _NPROCESSORS_ONLN)
|
|
sudo make install
|
|
popd
|
|
- name: Check out flatpak
|
|
uses: actions/checkout@v1
|
|
with:
|
|
submodules: true
|
|
- name: configure
|
|
run: ./autogen.sh --enable-gtk-doc --enable-gtk-doc-html
|
|
env:
|
|
CC: clang
|
|
CFLAGS: -Werror=unused-variable
|
|
- name: Build flatpak
|
|
run: make -j $(getconf _NPROCESSORS_ONLN)
|
|
|
|
xenial:
|
|
name: Build with old glib
|
|
runs-on: ubuntu-16.04
|
|
steps:
|
|
- name: Install Dependencies
|
|
run: |
|
|
sudo add-apt-repository ppa:alexlarsson/flatpak
|
|
sudo apt-get update
|
|
sudo apt-get install -y libglib2.0 attr automake gettext autopoint bison dbus gtk-doc-tools \
|
|
libfuse-dev ostree libostree-dev libarchive-dev libzstd-dev libcap-dev libattr1-dev libdw-dev libelf-dev python3-pyparsing \
|
|
libjson-glib-dev shared-mime-info desktop-file-utils libpolkit-agent-1-dev libpolkit-gobject-1-dev \
|
|
libseccomp-dev libsoup2.4-dev libsystemd-dev libxml2-utils libgpgme11-dev gobject-introspection \
|
|
libgirepository1.0-dev libappstream-glib-dev libdconf-dev clang e2fslibs-dev
|
|
- name: Check out flatpak
|
|
uses: actions/checkout@v1
|
|
with:
|
|
submodules: true
|
|
- name: Build ostree dependency
|
|
run: |
|
|
git clone https://github.com/ostreedev/ostree.git ./ostree
|
|
pushd ./ostree
|
|
git checkout 7bc53f006351fcf5d32d9427e61a4f842f57f67b
|
|
./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --sysconfdir=/etc --localstatedir=/var
|
|
make -j $(getconf _NPROCESSORS_ONLN)
|
|
sudo make install
|
|
popd
|
|
- name: configure
|
|
run: ./autogen.sh
|
|
env:
|
|
CC: clang
|
|
CFLAGS: -Werror=unused-variable
|
|
- name: Build flatpak
|
|
run: make -j $(getconf _NPROCESSORS_ONLN)
|
|
|
|
valgrind:
|
|
name: Run tests in valgrind
|
|
needs: check # Don't run expensive test if main check fails
|
|
runs-on: ubuntu-20.04 # Might as well test with a different one too
|
|
steps:
|
|
- name: Install Dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libglib2.0 attr automake gettext autopoint bison dbus gtk-doc-tools \
|
|
libfuse-dev ostree libostree-dev libarchive-dev libzstd-dev libcap-dev libattr1-dev libdw-dev libelf-dev python3-pyparsing \
|
|
libjson-glib-dev shared-mime-info desktop-file-utils libpolkit-agent-1-dev libpolkit-gobject-1-dev \
|
|
libseccomp-dev libsoup2.4-dev libsystemd-dev libxml2-utils libgpgme11-dev gobject-introspection \
|
|
libgirepository1.0-dev libappstream-glib-dev libdconf-dev clang socat meson libdbus-1-dev \
|
|
valgrind e2fslibs-dev
|
|
- name: Check out flatpak
|
|
uses: actions/checkout@v1
|
|
with:
|
|
submodules: true
|
|
- name: Build ostree dependency
|
|
run: |
|
|
git clone https://github.com/ostreedev/ostree.git ./ostree
|
|
pushd ./ostree
|
|
git checkout 7bc53f006351fcf5d32d9427e61a4f842f57f67b
|
|
./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --sysconfdir=/etc --localstatedir=/var
|
|
make -j $(getconf _NPROCESSORS_ONLN)
|
|
sudo make install
|
|
popd
|
|
- name: Create logs dir
|
|
run: mkdir test-logs
|
|
- name: autogen.sh
|
|
run: NOCONFIGURE=1 ./autogen.sh
|
|
- name: configure
|
|
# TODO: Enable gtk-doc builds
|
|
run: |
|
|
mkdir _build
|
|
pushd _build
|
|
../configure
|
|
popd
|
|
env:
|
|
CFLAGS: -O2
|
|
- name: Build flatpak
|
|
run: make -C _build -j $(getconf _NPROCESSORS_ONLN)
|
|
- name: Run tests
|
|
run: make -C _build check
|
|
env:
|
|
FLATPAK_TESTS_VALGRIND: true
|
|
- name: Collect overall test logs on failure
|
|
if: failure()
|
|
run: mv _build/test-suite.log test-logs/ || true
|
|
- name: Collect individual test logs on cancel
|
|
if: failure() || cancelled()
|
|
run: mv _build/tests/*.log test-logs/ || true
|
|
- name: Upload test logs
|
|
uses: actions/upload-artifact@v1
|
|
if: failure() || cancelled()
|
|
with:
|
|
name: test logs
|
|
path: test-logs
|