rpm-ostree/.papr.yml
Colin Walters 6a274b831d build-sys: Hard require Rust
As something that manages your base operating system, we care
about reliability, predictability, as well as performance and
low-level access to native operating system facilities.  The
C programming language is great for the latter two, but fails
at providing a truly memory-safe environment.  Rust is fairly
unique in providing a language that doesn't carry a runtime,
so we can gradually "oxidize" and convert our C code without
imposing additional overhead.  It's also got a lot of modern
design niceties, like not having a null pointer.

Let's pull the trigger here and hard require Rust.  It's the
programming language I personally want to be primarily writing in for
years to come.

This is also in line with a recent trend of reducing our
experimental/optional matrix.

Closes: #1509
Approved by: jlebon
2018-08-21 14:49:26 +00:00

176 lines
3.9 KiB
YAML

branches:
- master
- auto
- try
context: f28-codestyle
required: true
container:
image: registry.fedoraproject.org/fedora:28
tests:
- ci/ci-commitmessage-submodules.sh
- ci/codestyle.sh
---
context: f28-primary
inherit: true
cluster:
hosts:
- name: vmcheck1
distro: fedora/28/atomic
- name: vmcheck2
distro: fedora/28/atomic
- name: vmcheck3
distro: fedora/28/atomic
container:
image: registry.fedoraproject.org/fedora:28
env:
HOSTS: vmcheck1 vmcheck2 vmcheck3
# TODO use -fsanitize=address
CFLAGS: '-fsanitize=undefined -fsanitize-undefined-trap-on-error -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
CI_PKGS: rsync
tests:
- ci/build-check.sh
- ci/vmcheck-provision.sh
- make vmcheck
# make sure we're aware of any tests that were skipped
- "grep -nr '^SKIP: ' vmcheck/ || :"
timeout: 60m
artifacts:
- test-suite.log
- config.log
- vmcheck
---
inherit: true
context: c7-primary
required: true
cluster:
hosts:
- name: vmcheck1
distro: centos/7/atomic/smoketested
# XXX: temp hack until smoketested has newer glib2
# XXX: and also causes layering-relabel to fail?
# https://github.com/projectatomic/rpm-ostree/pull/1406
ostree:
branch: centos-atomic-host/7/x86_64/devel/continuous
- name: vmcheck2
distro: centos/7/atomic/smoketested
ostree:
branch: centos-atomic-host/7/x86_64/devel/continuous
- name: vmcheck3
distro: centos/7/atomic/smoketested
ostree:
branch: centos-atomic-host/7/x86_64/devel/continuous
container:
image: registry.centos.org/centos/centos:7
# We only want the sanitizers on Fedora
env:
HOSTS: vmcheck1 vmcheck2 vmcheck3
CFLAGS: ''
extra-repos:
- name: atomic-centos-continuous
baseurl: https://ci.centos.org/artifacts/sig-atomic/rdgo/centos-continuous/build
gpgcheck: 0
tests:
# we're still on devmapper here; we need to expand rootfs for tests
- for vm in vmcheck{1..3}; do ssh $vm lvresize -r -L +5G atomicos/root; done
- ci/vmcheck-provision.sh
- yum install -y epel-release
- ci/build-check.sh
- make vmcheck
---
branches:
- master
- auto
- try
# NB: when bumping 28 here, also bump fedora.repo, and compose script
context: f28-compose1
build: false
timeout: 30m
required: true
# 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/28/atomic
# Compose tests are slow and should be parallelized
specs:
cpus: 4
env:
RPMOSTREE_COMPOSE_TEST_FILTER: odd
# Copy yum.repos.d to get any injected repos from the host, which
# will point to a closer mirror. Note we substitute $releasever
# since https://github.com/projectatomic/rpm-ostree/pull/875
tests:
- docker run --privileged --rm
-e RPMOSTREE_COMPOSE_TEST_FILTER
-e RPMOSTREE_COMPOSE_TEST_USE_REPOS=/etc/yum.repos.d.host
-v /etc/yum.repos.d:/etc/yum.repos.d.host:ro
-v $(pwd):/srv/code -w /srv/code
registry.fedoraproject.org/fedora:28 /bin/sh -c
"./ci/build.sh && make install && ./tests/compose"
artifacts:
- test-compose-logs
---
inherit: true
context: f28-compose2
env:
RPMOSTREE_COMPOSE_TEST_FILTER: even
---
branches:
- master
- auto
- try
context: f28-ex-container
build: false
timeout: 30m
required: false
# See the f28-compose context for why we do things this way.
host:
distro: fedora/28/atomic
tests:
- docker run --privileged --rm
-e RPMOSTREE_COMPOSE_TEST_USE_REPOS=/etc/yum.repos.d.host
-v /etc/yum.repos.d:/etc/yum.repos.d.host:ro
-v $(pwd):/srv/code -w /srv/code
registry.fedoraproject.org/fedora:28 /bin/sh -c
"./ci/build.sh && make install && adduser unpriv && setfacl -m u:unpriv:rwX . && runuser -u unpriv ./tests/ex-container"
artifacts:
- ex-container-logs