rpm-ostree/.cci.jenkinsfile
Colin Walters 5060cdf7fc ci: Drop clang and unit tests from here
We're running them in Prow now and we're hitting capacity
issues in CentOS CI.  Bigger picture, the "just build and unit test"
stuff runs in any cluster, so let's save our bare metal capacity
for our compose/VM testing.
2021-02-04 15:19:36 -05:00

108 lines
3.3 KiB
Plaintext

// Documentation: https://github.com/coreos/coreos-ci/blob/master/README-upstream-ci.md
stage("Build") {
parallel rpms: {
def n = 5
cosaPod(buildroot: true, runAsUser: 0, memory: "2Gi", cpu: "${n}") {
checkout scm
shwrap("""RPM_BUILD_NCPUS=${n} ./ci/coreosci-rpmbuild.sh
mv packaging/*/*.rpm .
""")
// make it easy for anyone to download the RPMs
archiveArtifacts '*.rpm'
stash excludes: '*.src.rpm', includes: '*.rpm', name: 'rpms'
}
},
codestyle: {
cosaPod(buildroot: true) {
checkout scm
shwrap("""
# Ensures that we get refs to aid `git describe`
git fetch origin +refs/heads/master:refs/remotes/origin/master
ci/commit-validation.sh
""")
}
}
}
stage("Test") {
parallel insttests: {
def nhosts = 6
def mem = (nhosts * 1024) + 512
cosaPod(runAsUser: 0, memory: "${mem}Mi", cpu: "${nhosts}") {
stage("Build FCOS") {
checkout scm
unstash 'rpms'
// run this stage first without installing deps, so we match exactly the cosa pkgset
// (+ our built rpm-ostree)
shwrap("""
dnf install -y *.rpm
coreos-assembler init --force https://github.com/coreos/fedora-coreos-config
# include our built rpm-ostree in the image
mkdir -p overrides/rpm
mv *.rpm overrides/rpm
coreos-assembler fetch
coreos-assembler build
""")
}
stage("Install Deps") {
// really, we just need test deps, but meh...
shwrap("ci/installdeps.sh")
}
stage("Kola") {
// TODO upstream this into coreos-ci-lib
shwrap("make -C tests/kolainst install")
fcosKola(cosaDir: "${env.WORKSPACE}", extraArgs: "ext.*", parallel: nhosts)
}
stage("vmcheck") {
try {
timeout(time: 30, unit: 'MINUTES') {
shwrap("""
fcos=\$(ls builds/latest/*/*.qcow2) # */
ln -sf "\$(realpath \${fcos})" tests/vmcheck/image.qcow2
JOBS=${nhosts} tests/vmcheck.sh
""")
}
} finally {
shwrap("""
if [ -d vmcheck-logs ]; then
tar -C vmcheck-logs -cf- . | xz -c9 > vmcheck-logs.tar.xz
fi
""")
archiveArtifacts allowEmptyArchive: true, artifacts: 'vmcheck-logs.tar.xz'
}
}
}
},
compose: {
def jobs = 5
def mem = (jobs * 2048) + 512
cosaPod(runAsUser: 0, memory: "${mem}Mi", cpu: "${jobs}") {
checkout scm
unstash 'rpms'
stage("Install Deps") {
shwrap("""
ci/installdeps.sh # really, we just need test deps, but meh...
dnf install -y *.rpm # install our built rpm-ostree
""")
}
stage("Run") {
try {
timeout(time: 60, unit: 'MINUTES') {
shwrap("""
mkdir -p compose-logs /srv/tmpdir
TMPDIR=/srv/tmpdir JOBS=${jobs} ./tests/compose.sh
""")
}
} finally {
shwrap("""
if [ -d compose-logs ]; then
tar -C compose-logs -cf- . | xz -c9 > compose-logs.tar.xz
fi
""")
archiveArtifacts allowEmptyArchive: true, artifacts: 'compose-logs.tar.xz'
}
}
}
}}