osmith has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-ci/+/38345?usp=email )
Change subject: jobs/build-kernels-testenv: new jobs
......................................................................
jobs/build-kernels-testenv: new jobs
Prepare to replace the docker-playground based jobs for running
osmo-ggsn in QEMU with a kernel built from source with testenv.
Split the part that builds the kernels into extra jobs that export the
built kernels as artifacts. This makes it easier to use kernels outside
of jenkins too and it allows retriggering only a testsuite run without
also building the kernel again.
The fragment.config is imported from docker-playground current master
978adc, path: ttcn3-ggsn-test/osmo-ggsn-kernel/fragment.config
Change-Id: Id64a1a778fa38eec20498c36b390332f75d7d3f5
---
M jobs/README.md
A jobs/build-kernels-testenv.yml
A scripts/kernel/build.sh
A scripts/kernel/fragment.config
4 files changed, 378 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/45/38345/1
diff --git a/jobs/README.md b/jobs/README.md
index 56b5dfd..f7e704e 100644
--- a/jobs/README.md
+++ b/jobs/README.md
@@ -162,6 +162,7 @@
22:XX coverity
22:XX octsim_osmo-ccid-firmware
22:XX osmo-gsm-tester-runner (virtual)
+ 23:XX build-kernels-testenv
23:XX master-builds-dahdi
00:XX osmocom-api
00:XX registry-update-base-images
diff --git a/jobs/build-kernels-testenv.yml b/jobs/build-kernels-testenv.yml
new file mode 100644
index 0000000..3e9ad75
--- /dev/null
+++ b/jobs/build-kernels-testenv.yml
@@ -0,0 +1,83 @@
+---
+- project:
+ name: 'build-kernels'
+ concurrent: false
+ description: |
+ Build kernels to be used with osmo-ttcn3-hacks to run SUT in QEMU.<br>
+ <br>
+ Git repository:<br>
+ <code>{url}</code><br>
+ <br>
+ Branch:<br>
+ <code>{branch}</code><br>
+ jobs:
+ - "{job-name}"
+ branch: master
+ job-name:
+ - build-kernel-net-next:
+ url:
"https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git"
+ branch: main
+ - build-kernel-torvalds:
+ url:
"https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git"
+
+- job-template:
+ name: '{job-name}'
+ project-type: freestyle
+ defaults: global
+ description: '{obj:description}'
+ # Limit to 1 node to save space on others
+ node: "build4-deb12build-ansible"
+ concurrent: false
+ parameters:
+ - string:
+ name: EMAIL_NOTIFICATIONS
+ description: For failed build notifications, set to empty to disable
+ default: 'jenkins-notifications(a)lists.osmocom.org'
+ - string:
+ name: BRANCH_KERNEL
+ description: Branch of the kernel repository
+ default: '{branch}'
+ - string:
+ name: BRANCH_CI
+ description: Branch of osmo-ci.git (has scripts/kernel/build.sh)
+ default: 'master'
+ builders:
+ - shell: |-
+ IMAGE="osmocom-build/debian-bookworm-osmo-ttcn3-testenv"
+ podman pull "registry.osmocom.org/$IMAGE"
+
+ rm -rf output osmo-ci
+ git clone --depth=1
https://gerrit.osmocom.org/osmo-ci -b
"$BRANCH_CI"
+ osmo-ci/scripts/kernel/build.sh
+ scm:
+ - git:
+ branches:
+ - '$BRANCH_KERNEL'
+ url: "{obj:url}"
+ git-config-name: 'Jenkins Builder'
+ git-config-email: 'jenkins(a)osmocom.org'
+ refspec: '$BRANCH_KERNEL'
+ shallow-clone: true
+ wipe-workspace: false
+ clean:
+ before: true
+ triggers:
+ - timed: "H 23 * * *"
+ publishers:
+ - email:
+ notify-every-unstable-build: false
+ recipients: '$EMAIL_NOTIFICATIONS'
+ send-to-individuals: false
+ - archive:
+ allow-empty: false
+ artifacts: output/**/*
+ case-sensitive: true
+ default-excludes: true
+ fingerprint: false
+ only-if-success: false
+ properties:
+ - build-discarder:
+ num-to-keep: 10
+ wrappers:
+ - ansicolor:
+ colormap: xterm
diff --git a/scripts/kernel/build.sh b/scripts/kernel/build.sh
new file mode 100755
index 0000000..cc69a0d
--- /dev/null
+++ b/scripts/kernel/build.sh
@@ -0,0 +1,19 @@
+#!/bin/sh -ex
+IMAGE="debian-bookworm-osmo-ttcn3-testenv"
+SCRIPT_DIR="$(realpath "$(dirname "$0")")"
+
+mkdir -p output
+
+podman run \
+ --rm \
+ -v "$SCRIPT_DIR:/scripts/kernel/" \
+ -v "$PWD:$PWD" \
+ -w "$PWD" \
+ "$IMAGE" \
+ timeout 3h sh -exc '
+ make defconfig
+ scripts/kconfig/merge_config.sh -m .config /scripts/kernel/fragment.config
+ make olddefconfig
+ make "-j$(nproc)"
+ cp arch/x86/boot/bzImage output/linux
+ ' | tee output/build.log
diff --git a/scripts/kernel/fragment.config b/scripts/kernel/fragment.config
new file mode 100644
index 0000000..b6e2071
--- /dev/null
+++ b/scripts/kernel/fragment.config
@@ -0,0 +1,275 @@
+# CONFIG_ACPI_BGRT is not set
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_SHA1=y
+# CONFIG_EFI_STUB is not set
+CONFIG_FAILOVER=y
+CONFIG_FDDI=y
+CONFIG_GTP=y
+CONFIG_HAMRADIO=y
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_IP_NF_NAT=y
+CONFIG_IP_NF_TARGET_MASQUERADE=y
+CONFIG_IP_SET=y
+CONFIG_LEGACY_VSYSCALL_EMULATE=y
+# CONFIG_LEGACY_VSYSCALL_XONLY is not set
+CONFIG_LIBCRC32C=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_NETFILTER_NETLINK_GLUE_CT=y
+CONFIG_NETFILTER_XT_MARK=y
+CONFIG_NETFILTER_XT_NAT=y
+CONFIG_NETFILTER_XT_TARGET_LOG=y
+CONFIG_NETFILTER_XT_TARGET_MASQUERADE=y
+CONFIG_NET_9P=y
+CONFIG_NET_FAILOVER=y
+CONFIG_NF_LOG_COMMON=y
+CONFIG_NF_LOG_IPV4=y
+CONFIG_NF_LOG_IPV6=y
+CONFIG_OVERLAY_FS=y
+CONFIG_PAGE_REPORTING=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_PCIEAER=y
+# CONFIG_R8169 is not set
+# CONFIG_RANDOMIZE_BASE is not set
+CONFIG_RAS=y
+# CONFIG_RCU_TRACE is not set
+# CONFIG_REALTEK_PHY is not set
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+CONFIG_SND_OSSEMUL=y
+# CONFIG_STRICT_DEVMEM is not set
+CONFIG_UEVENT_HELPER=y
+# CONFIG_USB is not set
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_9P_FS=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_9P_FS_SECURITY=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_ACPI_EXTLOG is not set
+# CONFIG_ACRN_GUEST is not set
+# CONFIG_AIX_PARTITION is not set
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ARCH_CPUIDLE_HALTPOLL=y
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_AX25 is not set
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_BSD_DISKLABEL=y
+# CONFIG_CMDLINE_PARTITION is not set
+# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
+CONFIG_CRYPTO_DEV_VIRTIO=y
+CONFIG_CRYPTO_ENGINE=y
+CONFIG_CRYPTO_LIB_DES=y
+# CONFIG_DEFXX is not set
+# CONFIG_DRM_VIRTIO_GPU is not set
+CONFIG_EDAC=y
+# CONFIG_EDAC_AMD64 is not set
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=y
+# CONFIG_EDAC_E752X is not set
+# CONFIG_EDAC_I10NM is not set
+# CONFIG_EDAC_I3000 is not set
+# CONFIG_EDAC_I3200 is not set
+# CONFIG_EDAC_I5000 is not set
+# CONFIG_EDAC_I5100 is not set
+# CONFIG_EDAC_I5400 is not set
+# CONFIG_EDAC_I7300 is not set
+# CONFIG_EDAC_I7CORE is not set
+# CONFIG_EDAC_I82975X is not set
+# CONFIG_EDAC_IE31200 is not set
+# CONFIG_EDAC_IGEN6 is not set
+CONFIG_EDAC_LEGACY_SYSFS=y
+# CONFIG_EDAC_PND2 is not set
+# CONFIG_EDAC_SBRIDGE is not set
+# CONFIG_EDAC_SKX is not set
+# CONFIG_EDAC_X38 is not set
+CONFIG_HALTPOLL_CPUIDLE=y
+# CONFIG_HW_RANDOM_VIRTIO is not set
+# CONFIG_HYPERV is not set
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_IP6_NF_MATCH_AH is not set
+# CONFIG_IP6_NF_MATCH_EUI64 is not set
+# CONFIG_IP6_NF_MATCH_FRAG is not set
+# CONFIG_IP6_NF_MATCH_HL is not set
+# CONFIG_IP6_NF_MATCH_MH is not set
+# CONFIG_IP6_NF_MATCH_OPTS is not set
+# CONFIG_IP6_NF_MATCH_RPFILTER is not set
+# CONFIG_IP6_NF_MATCH_RT is not set
+# CONFIG_IP6_NF_MATCH_SRH is not set
+CONFIG_IP6_NF_NAT=y
+# CONFIG_IP6_NF_SECURITY is not set
+# CONFIG_IP6_NF_TARGET_HL is not set
+CONFIG_IP6_NF_TARGET_MASQUERADE=y
+# CONFIG_IP6_NF_TARGET_NPT is not set
+# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+# CONFIG_IP_NF_MATCH_AH is not set
+# CONFIG_IP_NF_MATCH_ECN is not set
+# CONFIG_IP_NF_MATCH_RPFILTER is not set
+# CONFIG_IP_NF_MATCH_TTL is not set
+# CONFIG_IP_NF_SECURITY is not set
+# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
+# CONFIG_IP_NF_TARGET_ECN is not set
+# CONFIG_IP_NF_TARGET_NETMAP is not set
+# CONFIG_IP_NF_TARGET_REDIRECT is not set
+# CONFIG_IP_NF_TARGET_SYNPROXY is not set
+# CONFIG_IP_NF_TARGET_TTL is not set
+# CONFIG_IP_SET_BITMAP_IP is not set
+# CONFIG_IP_SET_BITMAP_IPMAC is not set
+# CONFIG_IP_SET_BITMAP_PORT is not set
+# CONFIG_IP_SET_HASH_IP is not set
+# CONFIG_IP_SET_HASH_IPMAC is not set
+# CONFIG_IP_SET_HASH_IPMARK is not set
+# CONFIG_IP_SET_HASH_IPPORT is not set
+# CONFIG_IP_SET_HASH_IPPORTIP is not set
+# CONFIG_IP_SET_HASH_IPPORTNET is not set
+# CONFIG_IP_SET_HASH_MAC is not set
+# CONFIG_IP_SET_HASH_NET is not set
+# CONFIG_IP_SET_HASH_NETIFACE is not set
+# CONFIG_IP_SET_HASH_NETNET is not set
+# CONFIG_IP_SET_HASH_NETPORT is not set
+# CONFIG_IP_SET_HASH_NETPORTNET is not set
+# CONFIG_IP_SET_LIST_SET is not set
+CONFIG_IP_SET_MAX=256
+# CONFIG_JAILHOUSE_GUEST is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_KVM_GUEST=y
+# CONFIG_LDM_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MEMORY_BALLOON=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
+CONFIG_MMU_GATHER_TABLE_FREE=y
+# CONFIG_MOUSE_PS2_VMMOUSE is not set
+# CONFIG_NETFILTER_NETLINK_ACCT is not set
+# CONFIG_NETFILTER_NETLINK_OSF is not set
+# CONFIG_NETFILTER_NETLINK_QUEUE is not set
+CONFIG_NETFILTER_XT_CONNMARK=y
+# CONFIG_NETFILTER_XT_MATCH_BPF is not set
+# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
+# CONFIG_NETFILTER_XT_MATCH_CPU is not set
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+# CONFIG_NETFILTER_XT_MATCH_ECN is not set
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
+# CONFIG_NETFILTER_XT_MATCH_HL is not set
+# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
+# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
+# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_MAC is not set
+CONFIG_NETFILTER_XT_MATCH_MARK=y
+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
+# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
+# CONFIG_NETFILTER_XT_MATCH_OSF is not set
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+# CONFIG_NETFILTER_XT_MATCH_REALM is not set
+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
+# CONFIG_NETFILTER_XT_MATCH_STRING is not set
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
+# CONFIG_NETFILTER_XT_MATCH_U32 is not set
+# CONFIG_NETFILTER_XT_SET is not set
+# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set
+# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set
+# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+# CONFIG_NETFILTER_XT_TARGET_HL is not set
+# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
+# CONFIG_NETFILTER_XT_TARGET_LED is not set
+# CONFIG_NETFILTER_XT_TARGET_MARK is not set
+# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+# CONFIG_NETFILTER_XT_TARGET_TEE is not set
+# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_NET_9P_VIRTIO=y
+# CONFIG_NET_ACT_CONNMARK is not set
+# CONFIG_NET_ACT_CTINFO is not set
+# CONFIG_NET_EMATCH_IPSET is not set
+CONFIG_NET_UDP_TUNNEL=y
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+# CONFIG_NF_CONNTRACK_EVENTS is not set
+# CONFIG_NF_CONNTRACK_H323 is not set
+CONFIG_NF_CONNTRACK_MARK=y
+# CONFIG_NF_CONNTRACK_PPTP is not set
+# CONFIG_NF_CONNTRACK_SANE is not set
+# CONFIG_NF_CONNTRACK_SNMP is not set
+# CONFIG_NF_CONNTRACK_TFTP is not set
+# CONFIG_NF_CONNTRACK_TIMEOUT is not set
+# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
+# CONFIG_NF_CONNTRACK_ZONES is not set
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_OSF_PARTITION=y
+# CONFIG_OVERLAY_FS_INDEX is not set
+# CONFIG_OVERLAY_FS_METACOPY is not set
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
+CONFIG_OVERLAY_FS_REDIRECT_DIR=y
+# CONFIG_OVERLAY_FS_XINO_AUTO is not set
+CONFIG_PARAVIRT=y
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+# CONFIG_PCIEAER_INJECT is not set
+# CONFIG_PCIE_DPC is not set
+# CONFIG_PCIE_ECRC is not set
+CONFIG_PTP_1588_CLOCK_KVM=y
+# CONFIG_PTP_1588_CLOCK_VMW is not set
+# CONFIG_PVH is not set
+CONFIG_SGI_PARTITION=y
+# CONFIG_SKFP is not set
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_SEQ_MIDI_EVENT=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SUN_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_ULTRIX_PARTITION is not set
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_BALLOON=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_VIRTIO_INPUT=y
+# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
+CONFIG_VIRTIO_NET=y
+CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_X86_HV_CALLBACK_VECTOR=y
+# CONFIG_X86_X2APIC is not set
+# CONFIG_XEN is not set
+
+CONFIG_DYNAMIC_DEBUG=y
+
+# For libgtpnl's qemu tests
+CONFIG_NAMESPACES=y
+CONFIG_NET_NS=y
+CONFIG_VETH=y
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ci/+/38345?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-ci
Gerrit-Branch: master
Gerrit-Change-Id: Id64a1a778fa38eec20498c36b390332f75d7d3f5
Gerrit-Change-Number: 38345
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>