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
|
- try
|
||||||
|
|
||||||
required: true
|
required: true
|
||||||
context: f25-sanitizer
|
context: f25-primary
|
||||||
|
|
||||||
container:
|
container:
|
||||||
image: projectatomic/ostree-tester
|
image: registry.fedoraproject.org/fedora:25
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
- libasan
|
|
||||||
- git
|
- git
|
||||||
- coccinelle
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
CFLAGS: '-fsanitize=undefined -fsanitize-undefined-trap-on-error -fsanitize=address -O2 -Wp,-D_FORTIFY_SOURCE=2'
|
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
|
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"
|
# 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:
|
tests:
|
||||||
- make syntax-check
|
- ci/ci-commitmessage-submodules.sh
|
||||||
- ./tests/ci-commitmessage-submodules.sh
|
- ci/build-check.sh
|
||||||
- make check
|
|
||||||
- /bin/sh -c 'gnome-desktop-testing-runner -p 0 --timeout $((10 * 60)) libostree/'
|
|
||||||
|
|
||||||
timeout: 30m
|
timeout: 30m
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
- test-suite.log
|
- test-suite.log
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
inherit: true
|
|
||||||
required: true
|
|
||||||
|
|
||||||
context: f25-clang
|
|
||||||
|
|
||||||
env:
|
|
||||||
CC: 'clang'
|
|
||||||
CFLAGS: '-Werror=unused-variable'
|
|
||||||
|
|
||||||
tests:
|
|
||||||
artifacts:
|
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
inherit: true
|
inherit: true
|
||||||
|
|
||||||
context: f25-rust
|
context: f25-rust
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
- cargo
|
- cargo
|
||||||
|
|
||||||
build:
|
|
||||||
config-opts: >
|
|
||||||
--prefix=/usr
|
|
||||||
--libdir=/usr/lib64
|
|
||||||
--enable-gtk-doc
|
|
||||||
--enable-rust
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
CC: 'gcc'
|
CONFIGOPTS: '--enable-rust'
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
|
- ci/build.sh
|
||||||
- make check TESTS=tests/test-rollsum
|
- make check TESTS=tests/test-rollsum
|
||||||
|
|
||||||
artifacts:
|
|
||||||
- test-suite.log
|
|
||||||
---
|
---
|
||||||
|
|
||||||
inherit: true
|
inherit: true
|
||||||
|
|
||||||
context: f25-experimental-api
|
context: f25-experimental-api
|
||||||
|
|
||||||
build:
|
|
||||||
config-opts: >
|
|
||||||
--prefix=/usr
|
|
||||||
--libdir=/usr/lib64
|
|
||||||
--enable-gtk-doc
|
|
||||||
--enable-experimental-api
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
CC: 'gcc'
|
CONFIGOPTS: '--enable-experimental-api'
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
- make check
|
- ci/build-check.sh
|
||||||
- /bin/sh -c 'gnome-desktop-testing-runner -p 0 --timeout $((10 * 60)) libostree/'
|
|
||||||
|
|
||||||
artifacts:
|
|
||||||
- test-suite.log
|
|
||||||
---
|
---
|
||||||
|
|
||||||
inherit: true
|
inherit: true
|
||||||
|
|
@ -111,21 +60,11 @@ packages:
|
||||||
- pkgconfig(libcurl)
|
- pkgconfig(libcurl)
|
||||||
- pkgconfig(openssl)
|
- pkgconfig(openssl)
|
||||||
|
|
||||||
build:
|
env:
|
||||||
config-opts: >
|
CONFIGOPTS: "--with-curl --with-openssl"
|
||||||
--prefix=/usr
|
|
||||||
--libdir=/usr/lib64
|
|
||||||
--enable-installed-tests=exclusive
|
|
||||||
--enable-gtk-doc
|
|
||||||
--with-curl
|
|
||||||
--with-openssl
|
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
- make check
|
- ci/build-check.sh
|
||||||
- /bin/sh -c 'gnome-desktop-testing-runner -p 0 --timeout $((10 * 60)) libostree/'
|
|
||||||
|
|
||||||
artifacts:
|
|
||||||
- test-suite.log
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -143,24 +82,16 @@ cluster:
|
||||||
- name: vmcheck
|
- name: vmcheck
|
||||||
distro: fedora/25/atomic
|
distro: fedora/25/atomic
|
||||||
container:
|
container:
|
||||||
image: projectatomic/ostree-tester
|
image: registry.fedoraproject.org/fedora:25
|
||||||
|
|
||||||
build:
|
|
||||||
config-opts: >
|
|
||||||
--prefix=/usr
|
|
||||||
--libdir=/usr/lib64
|
|
||||||
--enable-gtk-doc
|
|
||||||
|
|
||||||
# Copy the build from the container to the host; ideally down the line
|
# 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
|
# this is installing an RPM via https://github.com/jlebon/redhat-ci/issues/10
|
||||||
tests:
|
tests:
|
||||||
|
- ci/build.sh
|
||||||
- make install DESTDIR=$(pwd)/insttree
|
- make install DESTDIR=$(pwd)/insttree
|
||||||
- rsync -rl -e 'ssh -o User=root' . vmcheck:ostree/
|
- 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'
|
- 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
|
inherit: false
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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:-}
|
||||||
|
|
@ -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