-
Notifications
You must be signed in to change notification settings - Fork 305
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
WIP: ci: Add experiment with Fedora Standard Test interface
Reusing the way `standard-test-roles` has support for booting a qcow2 actually gets us to the "VM-in-container" flow. Plus Ansible over shell script is sometimes nicer. https://fedoraproject.org/wiki/CI/Tests#Testing_an_Atomic_Host This is just an experiment to see if this works; right now we aren't even injecting the built ostree into the VM, or doing any interesting tests. One thing that I'm sure we're going to hit is a need to cache the qcow2 in the CI environment.
- Loading branch information
Showing
6 changed files
with
59 additions
and
209 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,219 +1,18 @@ | ||
branches: | ||
- master | ||
- auto | ||
- try | ||
|
||
required: true | ||
context: f27-primary | ||
|
||
container: | ||
image: registry.fedoraproject.org/fedora:27 | ||
|
||
env: | ||
# Enable all the sanitizers for this primary build. | ||
# We only use -Werror=maybe-uninitialized here with a "fixed" toolchain | ||
CFLAGS: '-fsanitize=undefined -fsanitize-undefined-trap-on-error -fsanitize=address -O2 -Wp,-D_FORTIFY_SOURCE=2' | ||
# Only for CI with a known g-ir-scanner | ||
GI_SCANNERFLAGS: '--warn-error' | ||
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" | ||
CONFIGOPTS: '--with-curl --with-openssl' | ||
|
||
tests: | ||
- ci/ci-commitmessage-submodules.sh | ||
- ci/build-check.sh | ||
- ci/ci-release-build.sh | ||
|
||
timeout: 30m | ||
|
||
# Keep this in sync with build-check.sh | ||
artifacts: | ||
- test-suite.log | ||
- config.log | ||
- gdtr-results | ||
--- | ||
|
||
context: c7-primary | ||
inherit: true | ||
required: true | ||
|
||
host: | ||
distro: centos/7/atomic | ||
|
||
env: | ||
CFLAGS: '' | ||
CONFIGOPTS: '--with-curl --with-openssl' | ||
|
||
tests: | ||
- docker run --privileged -v $PWD:$PWD --workdir $PWD | ||
registry.centos.org/centos/centos:7 sh -c | ||
'yum install -y git && ci/build-check.sh' | ||
|
||
--- | ||
|
||
context: f27-rust | ||
inherit: true | ||
container: | ||
image: registry.fedoraproject.org/fedora:27 | ||
env: | ||
CONFIGOPTS: '--enable-rust' | ||
CI_PKGS: cargo | ||
|
||
tests: | ||
- ci/build.sh | ||
- make check TESTS=tests/test-rollsum | ||
|
||
--- | ||
|
||
context: f27-gnutls | ||
inherit: true | ||
container: | ||
image: registry.fedoraproject.org/fedora:27 | ||
env: | ||
CONFIGOPTS: '--with-crypto=gnutls' | ||
CI_PKGS: pkgconfig(gnutls) | ||
|
||
tests: | ||
- ci/build.sh | ||
- make check TESTS=tests/test-basic.sh | ||
|
||
--- | ||
|
||
inherit: true | ||
|
||
context: f27-experimental-api | ||
env: | ||
CONFIGOPTS: '--enable-experimental-api' | ||
|
||
tests: | ||
- ci/build-check.sh | ||
|
||
--- | ||
|
||
inherit: true | ||
|
||
context: f27-minimal | ||
env: | ||
CONFIGOPTS: '--without-curl --without-soup --disable-gtk-doc --disable-man | ||
--disable-rust --without-libarchive --without-selinux --without-smack | ||
--without-openssl --without-avahi --without-libmount --disable-rofiles-fuse | ||
--disable-experimental-api' | ||
|
||
tests: | ||
- ci/build.sh | ||
|
||
--- | ||
|
||
inherit: true | ||
required: true | ||
|
||
context: f27-libsoup | ||
|
||
env: | ||
CONFIGOPTS: "--without-curl --without-openssl --with-libsoup" | ||
|
||
tests: | ||
- ci/build-check.sh | ||
|
||
--- | ||
|
||
inherit: true | ||
required: true | ||
|
||
context: f27-introspection-tests | ||
|
||
env: | ||
# ASAN conflicts with introspection testing; | ||
# See https://github.com/ostreedev/ostree/issues/1014 | ||
INSTALLED_TESTS_PATTERN: "libostree/test-sizes.js libostree/test-sysroot.js libostree/test-core.js" | ||
|
||
tests: | ||
- ci/build-check.sh | ||
|
||
--- | ||
|
||
inherit: false | ||
branches: | ||
- master | ||
- auto | ||
- try | ||
|
||
context: f27ah-insttest | ||
required: false | ||
|
||
cluster: | ||
hosts: | ||
- name: vmcheck | ||
distro: fedora/27/atomic | ||
container: | ||
image: registry.fedoraproject.org/fedora:27 | ||
|
||
# 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 | ||
- yum -y install rsync | ||
- rsync -rl -e 'ssh -o User=root' . vmcheck:ostree/ | ||
- ssh root@vmcheck './ostree/tests/installed/fah-prep.sh && ./ostree/tests/installed/run.sh' | ||
|
||
--- | ||
|
||
# https://fedoraproject.org/wiki/CI/Tests | ||
inherit: false | ||
branches: | ||
- master | ||
- auto | ||
- try | ||
|
||
context: f27-flatpak | ||
context: f27ah-str | ||
required: false | ||
|
||
# This test case wants an "unprivileged container with bubblewrap", | ||
# which we don't have right now; so just provision a VM and do a | ||
# docker --privileged run. | ||
host: | ||
distro: fedora/27/atomic | ||
specs: | ||
ram: 4096 # build-bundle is a static delta, which needs RAM right now | ||
|
||
tests: | ||
- docker run --rm --privileged -v $(pwd):/srv/code registry.fedoraproject.org/fedora:27 /bin/sh -c "cd /srv/code && ./ci/flatpak.sh" | ||
|
||
artifacts: | ||
- test-suite.log | ||
|
||
--- | ||
|
||
# Run rpm-ostree's vmcheck. This is a temporary hack until | ||
# we share more code. https://github.com/projectatomic/rpm-ostree/issues/662 | ||
inherit: false | ||
|
||
branches: | ||
- master | ||
- auto | ||
- try | ||
|
||
context: f27-rpmostree | ||
required: true | ||
|
||
cluster: | ||
hosts: | ||
- name: vmcheck | ||
distro: fedora/27/atomic | ||
container: | ||
image: registry.fedoraproject.org/fedora:27 | ||
|
||
env: | ||
HOSTS: vmcheck | ||
# This should roughly match the Fedora spec file, although right now we don't | ||
# explicitly enable gtk-doc because we don't really need it | ||
CONFIGOPTS: '--with-selinux --with-dracut=yesbutnoconf --with-curl --with-openssl' | ||
container: | ||
image: registry.fedoraproject.org/fedora:27 | ||
|
||
tests: | ||
- ./ci/rpmostree.sh | ||
|
||
artifacts: | ||
- test-suite.log | ||
- vmcheck | ||
|
||
timeout: 60m | ||
- ./tests/fedora-str/provision.sh | ||
# TODO: enhance papr to have caching, a bit like https://docs.travis-ci.com/user/caching/ | ||
- curl -Lo fedora-atomic-host.qcow2 https://getfedora.org/atomic_qcow2_latest | ||
- env "TEST_SUBJECTS=$(pwd)/fedora-atomic-host.qcow2" ./tests/fedora-str/run.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
This directory holds tests that use the | ||
[Fedora Standard Test Interface](https://fedoraproject.org/wiki/CI/Standard_Test_Interface). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
--- | ||
- hosts: localhost | ||
tags: | ||
- atomic | ||
remote_user: root | ||
tasks: | ||
- shell: ostree --version | ||
changed_when: False |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#!/usr/bin/bash | ||
set -xeuo pipefail | ||
|
||
dn=$(dirname $0) | ||
cd ${dn} | ||
|
||
. ../../ci/libbuild.sh | ||
|
||
pkg_upgrade | ||
pkg_install ansible standard-test-roles |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
#!/usr/bin/bash | ||
set -xeuo pipefail | ||
|
||
dn=$(dirname $0) | ||
cd ${dn} | ||
|
||
# https://fedoraproject.org/wiki/CI/Tests | ||
if test -z "${TEST_SUBJECTS:-}"; then | ||
cat <<EOF | ||
error: TEST_SUBJECTS must be set; e.g.: | ||
curl -Lo fedora-atomic-host.qcow2 'https://getfedora.org/atomic_qcow2_latest' | ||
export TEST_SUBJECTS=\$(pwd)/fedora-atomic-host.qcow2 | ||
If you're doing interactive development, we recommend caching the qcow2 | ||
somewhere persistent. | ||
EOF | ||
exit 1 | ||
fi | ||
ls -al ${TEST_SUBJECTS} | ||
|
||
export ANSIBLE_INVENTORY=$(test -e inventory && echo inventory || echo /usr/share/ansible/inventory) | ||
ls -al /dev/kvm | ||
if ! ansible-playbook --tags=atomic tests.yml; then | ||
for x in artifacts/*.log; do | ||
cat $x || true | ||
done | ||
exit 1 | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
- include: basic.yml |