// 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("Static analysis") { shwrap("./ci/codestyle.sh") } 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 """) } 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 bash -c '. /usr/lib/os-release && echo \$VERSION_ID' >\$(pwd)/installed/buildroot-id """) } stash includes: "installed/", name: 'build' } } // Build FCOS and run kola tests. // There's some parallelization in testiso up to 8G, add 1G for overhead cosaPod(runAsUser: 0, memory: "9Gi", cpu: "4") { stage("Build FCOS") { checkout scm unstash 'build' shwrap(""" chown -R -h builder: . # Move the bits into the cosa pod (but only if major versions match) buildroot_id=\$(cat installed/buildroot-id) osver=\$(. /usr/lib/os-release && echo \$VERSION_ID) if test \$osver = \$buildroot_id; then rsync -rlv installed/rootfs/ / fi rsync -rlv installed/tests/ / runuser -u builder -- coreos-assembler init --force https://github.com/coreos/fedora-coreos-config # And override the on-host bits mv installed/rootfs/* overrides/rootfs/ rm installed -rf runuser -u builder -- coreos-assembler fetch runuser -u builder -- coreos-assembler build runuser -u builder -- coreos-assembler buildextend-metal runuser -u builder -- coreos-assembler buildextend-metal4k runuser -u builder -- coreos-assembler buildextend-live --fast """) } kola(cosaDir: "${env.WORKSPACE}") kolaTestIso(cosaDir: "${env.WORKSPACE}", extraArgs: "--denylist-test *.4k.* --denylist-test *.mpath.*") }