Make sure we don't break the FCOS live image. PXE is probably sufficient, but also test the ISO image for good measure.
121 lines
3.7 KiB
Plaintext
121 lines
3.7 KiB
Plaintext
// Documentation: https://github.com/coreos/coreos-ci/blob/master/README-upstream-ci.md
|
|
|
|
stage("Build") {
|
|
parallel normal: {
|
|
def n = 5
|
|
cosaPod(buildroot: true, runAsUser: 0, memory: "2Gi", cpu: "${n}") {
|
|
checkout scm
|
|
stage("Core build") {
|
|
shwrap("""
|
|
# fetch tags so `git describe` gives a nice NEVRA when building the RPM
|
|
git fetch origin --tags
|
|
git submodule update --init
|
|
|
|
env MAKE_JOBS=${n} SKIP_INSTALLDEPS=1 ./ci/build.sh
|
|
""")
|
|
}
|
|
stage("Unit tests") {
|
|
try {
|
|
shwrap("""
|
|
make check
|
|
make syntax-check
|
|
""")
|
|
} finally {
|
|
archiveArtifacts allowEmptyArchive: true, artifacts: 'test-suite.log'
|
|
}
|
|
}
|
|
shwrap("""
|
|
make install DESTDIR=\$(pwd)/insttree/
|
|
tar -c -C insttree/ -zvf insttree.tar.gz .
|
|
""")
|
|
stash includes: 'insttree.tar.gz', name: 'build'
|
|
}
|
|
},
|
|
// A minimal build, helps test our build options
|
|
minimal: {
|
|
cosaPod(buildroot: true, runAsUser: 0) {
|
|
checkout scm
|
|
shwrap("""
|
|
git submodule update --init
|
|
|
|
env NOCONFIGURE=1 ./autogen.sh
|
|
./configure --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 --without-libsodium
|
|
make
|
|
""")
|
|
}
|
|
},
|
|
codestyle: {
|
|
cosaPod {
|
|
checkout scm
|
|
shwrap("""
|
|
# Jenkins by default only fetches the branch it's testing. Explicitly fetch master
|
|
# for ci-commitmessage-submodules.sh
|
|
git fetch origin +refs/heads/master:refs/remotes/origin/master
|
|
ci/ci-commitmessage-submodules.sh
|
|
""")
|
|
}
|
|
}
|
|
}
|
|
|
|
// Build FCOS and do a kola basic run
|
|
stage("More builds and test") {
|
|
parallel fcos: {
|
|
cosaPod(buildroot: true, runAsUser: 0, memory: "3072Mi", cpu: "4") {
|
|
stage("Build FCOS") {
|
|
checkout scm
|
|
unstash 'build'
|
|
shwrap("""
|
|
mkdir insttree
|
|
tar -C insttree -xzvf insttree.tar.gz
|
|
rsync -rlv insttree/ /
|
|
coreos-assembler init --force https://github.com/coreos/fedora-coreos-config
|
|
mkdir -p overrides/rootfs
|
|
mv insttree/* overrides/rootfs/
|
|
rmdir insttree
|
|
coreos-assembler fetch
|
|
coreos-assembler build
|
|
coreos-assembler buildextend-metal
|
|
coreos-assembler buildextend-metal4k
|
|
coreos-assembler buildextend-live
|
|
# Install the tests
|
|
make -C tests/kolainst install
|
|
""")
|
|
}
|
|
stage("Test") {
|
|
parallel metal: {
|
|
try {
|
|
shwrap("cd /srv/fcos && kola testiso -S --scenarios pxe-install,iso-offline-install --output-dir tmp/kola-testiso-metal")
|
|
} finally {
|
|
shwrap("cd /srv/fcos && tar -cf - tmp/kola-testiso-metal/ | xz -c9 > ${env.WORKSPACE}/kola-testiso-metal.tar.xz")
|
|
archiveArtifacts allowEmptyArchive: true, artifacts: 'kola-testiso*.tar.xz'
|
|
}
|
|
}, kola: {
|
|
fcosKola(cosaDir: "${env.WORKSPACE}")
|
|
}
|
|
}
|
|
}
|
|
},
|
|
buildopts: {
|
|
def n = 5
|
|
cosaPod(buildroot: true, runAsUser: 0, memory: "2Gi", cpu: "${n}") {
|
|
checkout scm
|
|
shwrap("""
|
|
git submodule update --init
|
|
|
|
git worktree add build-rust && cd build-rust
|
|
env MAKE_JOBS=${n} CONFIGOPTS="--enable-rust" SKIP_INSTALLDEPS=1 ./ci/build.sh
|
|
make check TESTS=tests/test-rollsum
|
|
cd .. && rm -rf build-rust
|
|
|
|
git worktree add build-libsoup && cd build-libsoup
|
|
env MAKE_JOBS=${n} CONFIGOPTS="--without-curl --without-openssl --with-soup" SKIP_INSTALLDEPS=1 ./ci/build.sh
|
|
make check
|
|
cd .. && rm -rf build-libsoup
|
|
""")
|
|
}
|
|
}
|
|
}
|