GH actions is fast zero cost system that covers these build matrix things well. Let's keep our Fedora CI system doing more of the qemu heavy lifting.
77 lines
2.3 KiB
Plaintext
77 lines
2.3 KiB
Plaintext
// Documentation: https://github.com/coreos/coreos-ci/blob/main/README-upstream-ci.md
|
|
|
|
stage("Build") {
|
|
def n = 5
|
|
buildPod(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 {
|
|
shwrap("cat test-suite.log || true")
|
|
archiveArtifacts allowEmptyArchive: true, artifacts: 'test-suite.log'
|
|
}
|
|
}
|
|
stage("Build installed tests") {
|
|
shwrap("make -C tests/kolainst")
|
|
}
|
|
stage("Generate artifacts") {
|
|
shwrap("""
|
|
make install DESTDIR=\$(pwd)/installed/rootfs
|
|
make -C tests/kolainst install DESTDIR=\$(pwd)/installed/tests
|
|
""")
|
|
}
|
|
stash includes: "installed/", name: 'build'
|
|
}
|
|
}
|
|
|
|
// Build FCOS and do a kola basic run
|
|
stage("FCOS") {
|
|
cosaPod(runAsUser: 0, memory: "3072Mi", cpu: "4") {
|
|
stage("Build FCOS") {
|
|
checkout scm
|
|
unstash 'build'
|
|
shwrap("""
|
|
# Move the bits into the cosa pod
|
|
rsync -rlv installed/rootfs/ /
|
|
rsync -rlv installed/tests/ /
|
|
coreos-assembler init --force https://github.com/coreos/fedora-coreos-config
|
|
mkdir -p overrides/rootfs
|
|
# And override the on-host bits
|
|
mv installed/rootfs/* overrides/rootfs/
|
|
rm installed -rf
|
|
coreos-assembler fetch
|
|
coreos-assembler build
|
|
coreos-assembler buildextend-metal
|
|
coreos-assembler buildextend-metal4k
|
|
coreos-assembler buildextend-live --fast
|
|
|
|
""")
|
|
}
|
|
stage("Test") {
|
|
parallel metal: {
|
|
try {
|
|
shwrap("kola testiso -S --scenarios pxe-install,iso-offline-install,pxe-offline-install --output-dir tmp/kola-testiso-metal")
|
|
} finally {
|
|
shwrap("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}")
|
|
}
|
|
}
|
|
}
|
|
}
|