mirror of
https://github.com/ostreedev/ostree.git
synced 2025-01-10 05:18:30 +03:00
ci: Update to match current rpm-ostree
This copies the `ci/` directory from rpm-ostree, with much the same rationale; among other things we don't want to depend on the Docker hub. The specific reason I'm doing this is that I want to add a CentOS7 build, but that means we can't use `projectatomic/ostree-tester`, and at that point we might as well unwind it all. Closes: #917 Approved by: jlebon
This commit is contained in:
parent
2a3f17c7aa
commit
a98faa9113
@ -1,27 +0,0 @@
|
||||
FROM fedora:25
|
||||
|
||||
RUN dnf install -y \
|
||||
gcc \
|
||||
git \
|
||||
sudo \
|
||||
which \
|
||||
attr \
|
||||
fuse \
|
||||
gjs \
|
||||
parallel \
|
||||
coccinelle \
|
||||
clang \
|
||||
libubsan \
|
||||
libasan \
|
||||
libtsan \
|
||||
PyYAML \
|
||||
gnome-desktop-testing \
|
||||
redhat-rpm-config \
|
||||
elfutils \
|
||||
'dnf-command(builddep)' \
|
||||
&& dnf builddep -y \
|
||||
ostree \
|
||||
&& dnf clean all
|
||||
|
||||
# create an unprivileged user for testing
|
||||
RUN adduser testuser
|
97
.papr.yml
97
.papr.yml
@ -4,102 +4,51 @@ branches:
|
||||
- try
|
||||
|
||||
required: true
|
||||
context: f25-sanitizer
|
||||
context: f25-primary
|
||||
|
||||
container:
|
||||
image: projectatomic/ostree-tester
|
||||
|
||||
image: registry.fedoraproject.org/fedora:25
|
||||
packages:
|
||||
- libasan
|
||||
- git
|
||||
- coccinelle
|
||||
|
||||
env:
|
||||
CFLAGS: '-fsanitize=undefined -fsanitize-undefined-trap-on-error -fsanitize=address -O2 -Wp,-D_FORTIFY_SOURCE=2'
|
||||
ASAN_OPTIONS: 'detect_leaks=0' # Right now we're not fully clean, but this gets us use-after-free etc
|
||||
# TODO when we're doing leak checks: G_SLICE: "always-malloc"
|
||||
|
||||
build:
|
||||
config-opts: >
|
||||
--prefix=/usr
|
||||
--libdir=/usr/lib64
|
||||
--enable-installed-tests=exclusive
|
||||
--enable-gtk-doc
|
||||
|
||||
# The g-d-t-r timeout is for test-pull-many.sh; if tweaking this,
|
||||
# also be sure to change the other cases below
|
||||
tests:
|
||||
- make syntax-check
|
||||
- ./tests/ci-commitmessage-submodules.sh
|
||||
- make check
|
||||
- /bin/sh -c 'gnome-desktop-testing-runner -p 0 --timeout $((10 * 60)) libostree/'
|
||||
- ci/ci-commitmessage-submodules.sh
|
||||
- ci/build-check.sh
|
||||
|
||||
timeout: 30m
|
||||
|
||||
artifacts:
|
||||
- test-suite.log
|
||||
|
||||
---
|
||||
|
||||
inherit: true
|
||||
required: true
|
||||
|
||||
context: f25-clang
|
||||
|
||||
env:
|
||||
CC: 'clang'
|
||||
CFLAGS: '-Werror=unused-variable'
|
||||
|
||||
tests:
|
||||
artifacts:
|
||||
|
||||
|
||||
- test-suite.log
|
||||
---
|
||||
|
||||
inherit: true
|
||||
|
||||
context: f25-rust
|
||||
|
||||
packages:
|
||||
- cargo
|
||||
|
||||
build:
|
||||
config-opts: >
|
||||
--prefix=/usr
|
||||
--libdir=/usr/lib64
|
||||
--enable-gtk-doc
|
||||
--enable-rust
|
||||
|
||||
env:
|
||||
CC: 'gcc'
|
||||
CONFIGOPTS: '--enable-rust'
|
||||
|
||||
tests:
|
||||
- ci/build.sh
|
||||
- make check TESTS=tests/test-rollsum
|
||||
|
||||
artifacts:
|
||||
- test-suite.log
|
||||
---
|
||||
|
||||
inherit: true
|
||||
|
||||
context: f25-experimental-api
|
||||
|
||||
build:
|
||||
config-opts: >
|
||||
--prefix=/usr
|
||||
--libdir=/usr/lib64
|
||||
--enable-gtk-doc
|
||||
--enable-experimental-api
|
||||
|
||||
env:
|
||||
CC: 'gcc'
|
||||
CONFIGOPTS: '--enable-experimental-api'
|
||||
|
||||
tests:
|
||||
- make check
|
||||
- /bin/sh -c 'gnome-desktop-testing-runner -p 0 --timeout $((10 * 60)) libostree/'
|
||||
- ci/build-check.sh
|
||||
|
||||
artifacts:
|
||||
- test-suite.log
|
||||
---
|
||||
|
||||
inherit: true
|
||||
@ -111,21 +60,11 @@ packages:
|
||||
- pkgconfig(libcurl)
|
||||
- pkgconfig(openssl)
|
||||
|
||||
build:
|
||||
config-opts: >
|
||||
--prefix=/usr
|
||||
--libdir=/usr/lib64
|
||||
--enable-installed-tests=exclusive
|
||||
--enable-gtk-doc
|
||||
--with-curl
|
||||
--with-openssl
|
||||
env:
|
||||
CONFIGOPTS: "--with-curl --with-openssl"
|
||||
|
||||
tests:
|
||||
- make check
|
||||
- /bin/sh -c 'gnome-desktop-testing-runner -p 0 --timeout $((10 * 60)) libostree/'
|
||||
|
||||
artifacts:
|
||||
- test-suite.log
|
||||
- ci/build-check.sh
|
||||
|
||||
---
|
||||
|
||||
@ -143,24 +82,16 @@ cluster:
|
||||
- name: vmcheck
|
||||
distro: fedora/25/atomic
|
||||
container:
|
||||
image: projectatomic/ostree-tester
|
||||
|
||||
build:
|
||||
config-opts: >
|
||||
--prefix=/usr
|
||||
--libdir=/usr/lib64
|
||||
--enable-gtk-doc
|
||||
image: registry.fedoraproject.org/fedora:25
|
||||
|
||||
# Copy the build from the container to the host; ideally down the line
|
||||
# this is installing an RPM via https://github.com/jlebon/redhat-ci/issues/10
|
||||
tests:
|
||||
- ci/build.sh
|
||||
- make install DESTDIR=$(pwd)/insttree
|
||||
- rsync -rl -e 'ssh -o User=root' . vmcheck:ostree/
|
||||
- ssh root@vmcheck './ostree/tests/installed/fah-prep.sh && ostree admin unlock && rsync -rlv ./ostree/insttree/usr/ /usr/ && ./ostree/tests/installed/run.sh'
|
||||
|
||||
artifacts:
|
||||
- test-suite.log
|
||||
|
||||
---
|
||||
|
||||
inherit: false
|
||||
|
20
ci/build-check.sh
Executable file
20
ci/build-check.sh
Executable file
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/bash
|
||||
# Install build dependencies, run unit tests and installed tests.
|
||||
|
||||
set -xeuo pipefail
|
||||
|
||||
dn=$(dirname $0)
|
||||
. ${dn}/libbuild.sh
|
||||
${dn}/build.sh
|
||||
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
|
||||
|
||||
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
|
15
ci/build.sh
Executable file
15
ci/build.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#!/usr/bin/bash
|
||||
# Install build dependencies, run unit tests and installed tests.
|
||||
|
||||
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 \
|
||||
elfutils
|
||||
|
||||
build --enable-gtk-doc --enable-installed-tests=exclusive ${CONFIGOPTS:-}
|
23
ci/libbuild.sh
Normal file
23
ci/libbuild.sh
Normal file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
make() {
|
||||
/usr/bin/make -j $(getconf _NPROCESSORS_ONLN) "$@"
|
||||
}
|
||||
|
||||
build() {
|
||||
env NOCONFIGURE=1 ./autogen.sh
|
||||
./configure --prefix=/usr --libdir=/usr/lib64 "$@"
|
||||
make V=1
|
||||
}
|
||||
|
||||
install_builddeps() {
|
||||
pkg=$1
|
||||
dnf -y install dnf-plugins-core
|
||||
dnf install -y @buildsys-build
|
||||
dnf install -y 'dnf-command(builddep)'
|
||||
|
||||
# builddeps+runtime deps
|
||||
dnf builddep -y $pkg
|
||||
dnf install -y $pkg
|
||||
rpm -e $pkg
|
||||
}
|
Loading…
Reference in New Issue
Block a user