1
0
mirror of https://github.com/coreos/fedora-coreos-config.git synced 2026-02-05 09:45:30 +01:00
Files
fedora-coreos-config/.cci.jenkinsfile

65 lines
2.3 KiB
Plaintext

// Documentation: https://github.com/coreos/coreos-ci/blob/main/README-upstream-ci.md
properties([
// abort previous runs when a PR is updated to save resources
disableConcurrentBuilds(abortPrevious: true)
])
// We run `kolaTestIso` which requires at least 8Gi. Add 1Gi for overhead.
cosaPod(cpus: 4, memory: "9Gi") {
checkoutToDir(scm, 'config')
def basearch = shwrapCapture("cosa basearch")
def mechanical_streams = ['branched', 'rawhide']
shwrap("cd config && ci/validate")
shwrap("""
mkdir -p /srv/coreos && cd /srv/coreos
cosa init ${env.WORKSPACE}/config
python3 /usr/lib/coreos-assembler/download-overrides.py
# prep from the latest builds so that we generate a diff on PRs that add packages
cosa buildfetch --stream=${env.CHANGE_TARGET} --artifact=ostree
""")
// use a --parent-build arg so we can diff later and it matches prod
def parent_arg = ""
if (shwrapRc("test -e /srv/coreos/builds/latest/${basearch}/meta.json") == 0) {
shwrap("cp /srv/coreos/builds/latest/${basearch}/meta.json .") // readJSON wants it in the WORKSPACE
def meta = readJSON file: "meta.json"
def version = meta["buildid"]
parent_arg = "--parent-build ${version}"
}
// do a build. If we are operating on a mechanical stream then we
// can pin packages in lockfiles but we don't maintain a full set
// so we can't do a strict build.
def no_strict_build = false
if (env.CHANGE_TARGET in mechanical_streams) {
no_strict_build = true
}
cosaBuild(skipInit: true, noStrict: no_strict_build, extraFetchArgs: '--with-cosa-overrides', extraArgs: parent_arg)
stage("Build Live ISO") {
shwrap("cd /srv/coreos && cosa osbuild metal metal4k live")
}
stage("Test ISO") {
kolaTestIso()
}
// also print the pkgdiff as a separate stage to make it more visible
if (parent_arg != "") {
stage("RPM Diff") {
shwrap("""
cd /srv/coreos
cosa diff --rpms | tee tmp/diff.txt
if grep -q Downgraded tmp/diff.txt; then
echo "Downgrade detected. This is likely unintentional. If not, you may safely ignore this error."
exit 1
fi
""")
}
}
}