diff --git a/.papr.yml b/.papr.yml index 67a01683..74c16900 100644 --- a/.papr.yml +++ b/.papr.yml @@ -26,9 +26,25 @@ artifacts: - test-suite.log --- +context: c7-build inherit: true +required: true + +container: + image: registry.centos.org/centos/centos:7 + +env: + CFLAGS: '' + +tests: + - ci/build-check.sh + +--- context: f25-rust +inherit: true +container: + image: registry.fedoraproject.org/fedora:25 packages: - cargo env: diff --git a/ci/build-check.sh b/ci/build-check.sh index 6123440e..d15032e7 100755 --- a/ci/build-check.sh +++ b/ci/build-check.sh @@ -10,11 +10,15 @@ make check make syntax-check # TODO: do syntax-check under check # And now run the installed tests make install -gnome-desktop-testing-runner -p 0 ostree +if test -x /usr/bin/gnome-desktop-testing-runner; then + gnome-desktop-testing-runner -p 0 ostree +fi -git clean -dfx && git submodule foreach git clean -dfx -# And now a clang build to find unused variables; perhaps -# in the future these could parallelize -export CC=clang -export CFLAGS='-Werror=unused-variable' -build +if test -x /usr/bin/clang; then + git clean -dfx && git submodule foreach git clean -dfx + # And now a clang build to find unused variables; perhaps + # in the future these could parallelize + export CC=clang + export CFLAGS='-Werror=unused-variable' + build +fi diff --git a/ci/build.sh b/ci/build.sh index d5bacd38..eefb7c3c 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -6,10 +6,14 @@ set -xeuo pipefail dn=$(dirname $0) . ${dn}/libbuild.sh -install_builddeps ostree - -dnf install -y sudo which attr fuse gjs parallel coccinelle clang \ - libubsan libasan libtsan PyYAML gnome-desktop-testing redhat-rpm-config \ +pkg_install_builddeps ostree +pkg_install sudo which attr fuse \ + libubsan libasan libtsan PyYAML redhat-rpm-config \ elfutils +pkg_install_if_os fedora gjs gnome-desktop-testing parallel coccinelle clang -build --enable-gtk-doc --enable-installed-tests=exclusive ${CONFIGOPTS:-} +DETECTED_CONFIGOPTS= +if test -x /usr/bin/gnome-desktop-testing-runner; then + DETECTED_CONFIGOPTS="${DETECTED_CONFIGOPTS} --enable-installed-tests=exclusive" +fi +build --enable-gtk-doc ${DETECTED_CONFIGOPTS} ${CONFIGOPTS:-} diff --git a/ci/libbuild.sh b/ci/libbuild.sh index b061a486..fef9d3ae 100644 --- a/ci/libbuild.sh +++ b/ci/libbuild.sh @@ -10,14 +10,45 @@ build() { make V=1 } -install_builddeps() { - pkg=$1 - dnf -y install dnf-plugins-core - dnf install -y @buildsys-build - dnf install -y 'dnf-command(builddep)' +pkg_install() { + yum -y install "$@" +} +pkg_install_if_os() { + os=$1 + shift + (. /etc/os-release; + if test "${os}" = "${ID}"; then + pkg_install "$@" + else + echo "Skipping installation on OS ${ID}: $@" + fi + ) +} + +pkg_builddep() { + # This is sadly the only case where it's a different command + if test -x /usr/bin/dnf; then + dnf builddep -y "$@" + else + yum-builddep -y "$@" + fi +} + +pkg_install_builddeps() { + pkg=$1 + if test -x /usr/bin/dnf; then + yum -y install dnf-plugins-core + yum install -y 'dnf-command(builddep)' + # Base buildroot + pkg_install @buildsys-build + else + yum -y install yum-utils + # Base buildroot, copied from the mock config sadly + yum -y install bash bzip2 coreutils cpio diffutils system-release findutils gawk gcc gcc-c++ grep gzip info make patch redhat-rpm-config rpm-build sed shadow-utils tar unzip util-linux which xz + fi # builddeps+runtime deps - dnf builddep -y $pkg - dnf install -y $pkg + pkg_builddep $pkg + pkg_install $pkg rpm -e $pkg }