diff --git a/.gitignore b/.gitignore index a5b9a52..07ef744 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ git/ build.* *.sw? downloads/ +jenkins/*.xml diff --git a/Makefile b/Makefile index bd9e12c..71aa12c 100644 --- a/Makefile +++ b/Makefile @@ -38,6 +38,10 @@ BUILD_TARGET_sysmocom-alix = "core-image-minimal-initramfs meta-toolchain-osmo t # approiate here or not. BUILD_TARGETS="$(BUILD_TARGET_$(CUR_MACHINE))" +# Jenkins jobs... +JOB_FILES=merge_diff.xml nightly.xml show_diff.xml test_upgrade_alix.xml test_upgrade_apu2.xml testbranch.xml testing.xml +SED=sed + # usage: @echo "Pick a target like help, update or sysmocom-alix-setup" @@ -168,6 +172,16 @@ endif @echo " Port = $(SSH_PORT)" >> $(HOME)/.ssh/config @echo " AddressFamily = inet" >> $(HOME)/.ssh/config @echo " User = $(SSH_USER)" >> $(HOME)/.ssh/config + +# Create jenkin job xmls +create-jenkins-jobs: + $(Q)$(foreach file, $(JOB_FILES), \ + cat jenkins/job_templates/$(file) | \ + $(SED) \ + -e s,PLACEHOLDER_SYSMOCOM_RELEASE,$(SYSMOCOM_RELEASE),g \ + -e s,PLACEHOLDER_POKY_RELEASE,$(POKY_RELEASE),g > jenkins/$(file); \ + ) + # Target classification -.PHONY: update setup-all install-ssh-config +.PHONY: update setup-all install-ssh-config create-jenkins-jobs .SECONDARY: $(foreach repo, $(REPOS), git/$(repo)) $(foreach machine, $(MACHINES), build.$(machine)) diff --git a/jenkins/job_templates/merge_diff.xml b/jenkins/job_templates/merge_diff.xml new file mode 100644 index 0000000..6a267d4 --- /dev/null +++ b/jenkins/job_templates/merge_diff.xml @@ -0,0 +1,32 @@ + + + + Show the files diff between PLACEHOLDER_SYSMOCOM_RELEASE-testing and PLACEHOLDER_SYSMOCOM_RELEASE + + -1 + 90 + -1 + -1 + + false + + + true + false + false + false + + false + + + +ssh -i ~/.ssh/id_rsa_downloads -p41 generic@downloads.sysmocom.de "merge-testing sysmobts PLACEHOLDER_SYSMOCOM_RELEASE" +ssh -i ~/.ssh/id_rsa_downloads -p41 generic@downloads.sysmocom.de "merge-testing sysmobts2100 PLACEHOLDER_SYSMOCOM_RELEASE" +ssh -i ~/.ssh/id_rsa_downloads -p41 generic@downloads.sysmocom.de "merge-testing sysmocom-alix PLACEHOLDER_SYSMOCOM_RELEASE" +ssh -i ~/.ssh/id_rsa_downloads -p41 generic@downloads.sysmocom.de "merge-testing sysmocom-apu2 PLACEHOLDER_SYSMOCOM_RELEASE" + + + + + + diff --git a/jenkins/job_templates/nightly.xml b/jenkins/job_templates/nightly.xml new file mode 100644 index 0000000..618f39c --- /dev/null +++ b/jenkins/job_templates/nightly.xml @@ -0,0 +1,303 @@ + + + + <div><b>Creates official PLACEHOLDER_SYSMOCOM_RELEASE-nightly packages/images on downlaods.sysmocom.de</b></div> +<div> + Does this by using + <ul> + <li>latest <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=PLACEHOLDER_POKY_RELEASE"><i>PLACEHOLDER_POKY_RELEASE</i> of upstream poky (2.3)</a></li> + <li>latest <a href="http://git.sysmocom.de/poky/meta-sysmocom-bsp/log/?h=laforge/nightly"><i>laforge/nightly</i> of meta-sysmocom-bsp</a></li> + <li>latest <a href="https://github.com/sysmocom/meta-telephony/tree/laforge/nightly"><i>laforge/nightly</i> of meta-telephony</a></li> + <li>latest <a href="https://github.com/sysmocom/meta-smalltalk"><i>master</i> of meta-smalltalk</a></li> + </ul> +</div> + + 90 + 90 + -1 + -1 + + false + + + + + 2 + + + + + git://git.yoctoproject.org/poky.git + + + + + */PLACEHOLDER_POKY_RELEASE + + + false + false + false + false + false + false + false + false + false + false + + Default + + poky + + + + + + false + + poky + + + 2 + + + + + git://git.sysmocom.de/poky/meta-sysmocom-bsp + + + + + */laforge/nightly + + + false + false + false + false + false + false + false + false + false + false + + Default + + meta-sysmocom-bsp + + + + + + false + + meta-sysmocom-bsp + + + 2 + + + + + git://git.osmocom.org/meta-telephony.git + + + + + */laforge/nightly + + + false + false + false + false + false + false + false + false + false + false + + Default + + meta-telephony + + + + + + false + + meta-telephony + + + 2 + + + + + git://github.com/sysmocom/meta-smalltalk.git + + + + + */master + + + false + false + false + false + false + false + false + false + false + false + + Default + + meta-smalltalk + + + + + + false + + meta-smalltalk + + + + OE-Slave + false + false + false + false + + + 0 3 * * * + + + false + + + label + + Debian8-AMD64 + + + + machine + + sysmobts-v2 + sysmobts2100 + + + + + + if [ $machine == "sysmobts-v2" ]; then + CONF_PACKAGE_FEED_URIS="https://autoupdate:eechiesuboot@downloads.sysmocom.de/generic/sysmobts/PLACEHOLDER_SYSMOCOM_RELEASE-nightly/ipk/" +else + CONF_PACKAGE_FEED_URIS="https://autoupdate:eechiesuboot@downloads.sysmocom.de/generic/${machine}/PLACEHOLDER_SYSMOCOM_RELEASE-nightly/ipk/" +fi + + +CREATE=0 +if [ ! -e build ]; then + mkdir -p build/conf + CREATE=1 + cat > build/conf/bblayers.conf <<EOF +LCONF_VERSION = "6" + +BBPATH = "\${TOPDIR}" +BBFILES ?= "" + +BBLAYERS ?= " \ + $PWD/poky/meta \ + $PWD/poky/meta-poky \ + $PWD/poky/meta-yocto-bsp \ + $PWD/meta-telephony \ + $PWD/meta-sysmocom-bsp \ + $PWD/meta-smalltalk \ + " +BBLAYERS_NON_REMOVABLE ?= " \ + $PWD/poky/meta \ + $PWD/poky/meta-poky \ + " +EOF + +fi + +# Switch to poky and prepare things +cd poky + + +# apply some hacks... due us supporting older versions +sed -i s,'bb.error("Use of PRINC %s was d','bb.warn("Use of PRINC %s was d', meta/classes/base.bbclass + + +. ./oe-init-build-env ../build + +if [ $CREATE -eq 1 ]; then + cat >> conf/local.conf <<EOF +PATCHRESOLVE = "noop" +PACKAGE_CLASSES = "package_ipk" +DISTRO_FEATURES_append = " systemd " +VIRTUAL-RUNTIME_init_manager = "systemd" +MACHINE_FEATURES_BACKFILL_CONSIDERED = "rtc" +DEBUGFILEDIRECTORY-dbg = "/usr/lib/debug" +PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src" +PRSERV_HOST = "localhost:0" +BBMASK="recipes-bsp/linux/linux-sysmocom_3.10.bb" +INHERIT += " rm_work " +ROOTFS_PKGMANAGE_BOOTSTRAP = "" +PACKAGE_FEED_URIS = "${CONF_PACKAGE_FEED_URIS}" +require conf/distro/include/sysmocom-defaults.conf +EOF + + if [ $machine == "sysmobts-v2" ]; then + cat >> conf/local.conf <<EOF +SRC_URI_pn-sysmobts-firmware = "https://autoupdate:eechiesuboot@downloads.sysmocom.de/generic/sysmobts/firmware/sysmobts-firmware-superfemto_v\${PV}.tar.bz2" +SRC_URI_pn-sbts2050-util = "https://autoupdate:eechiesuboot@downloads.sysmocom.de/generic/sysmobts/firmware/sbts2050-util-\${PV}.tar.bz2" +EOF + fi +fi + +rm -f bitbake.lock +rm -rf tmp +rm -rf downloads + +if [ $machine == "sysmobts2100" ]; then + MACHINE=$machine bitbake u-boot-litecell15 +fi + +# first build the non-rauc targets common to all machines +MACHINE=$machine bitbake sysmocom-core-image smalltalk meta-toolchain-osmo task-sysmocom-feed + +# then build RAUC only for sysmobts-v2 +if [ $machine == "sysmobts-v2" ]; then + MACHINE=$machine bitbake image-rauc-slot-initramfs image-rauc-ubi rauc-native sysmocom-nitb-rauc-image +fi + + +../meta-sysmocom-bsp/upload_nightly.sh $machine +../poky/scripts/sstate-cache-management.sh -d -y --cache-dir=./sstate-cache/ +rm -rf tmp downloads + + + + + intern@lists.sysmocom.de + false + false + + + + + false + + \ No newline at end of file diff --git a/jenkins/job_templates/show_diff.xml b/jenkins/job_templates/show_diff.xml new file mode 100644 index 0000000..9307288 --- /dev/null +++ b/jenkins/job_templates/show_diff.xml @@ -0,0 +1,32 @@ + + + + Show the files diff between PLACEHOLDER_SYSMOCOM_RELEASE-testing and PLACEHOLDER_SYSMOCOM_RELEASE + + -1 + 90 + -1 + -1 + + false + + + true + false + false + false + + false + + + +ssh -i ~/.ssh/id_rsa_downloads -p41 generic@downloads.sysmocom.de "diff-testing sysmobts PLACEHOLDER_SYSMOCOM_RELEASE" +ssh -i ~/.ssh/id_rsa_downloads -p41 generic@downloads.sysmocom.de "diff-testing sysmobts2100 PLACEHOLDER_SYSMOCOM_RELEASE" +ssh -i ~/.ssh/id_rsa_downloads -p41 generic@downloads.sysmocom.de "diff-testing sysmocom-alix PLACEHOLDER_SYSMOCOM_RELEASE" +ssh -i ~/.ssh/id_rsa_downloads -p41 generic@downloads.sysmocom.de "diff-testing sysmocom-apu2 PLACEHOLDER_SYSMOCOM_RELEASE" + + + + + + diff --git a/jenkins/job_templates/test_upgrade_alix.xml b/jenkins/job_templates/test_upgrade_alix.xml new file mode 100644 index 0000000..b25d58f --- /dev/null +++ b/jenkins/job_templates/test_upgrade_alix.xml @@ -0,0 +1,81 @@ + + + + Test upgrading from current to the next image! + + 30 + 90 + -1 + -1 + + false + + + 2 + + + + + ssh://git@git.admin.sysmocom.de/sysmocom/poky-qa + + + + + */master + + + false + false + false + false + true + false + false + false + false + false + + Default + + + + + + + + false + + + + true + false + false + false + + + H H * * * + + + false + + + export SYSTEM_RELEASE=PLACEHOLDER_SYSMOCOM_RELEASE +rm -f bzImage sysmocom-nitb-image-sysmocom-bsc.ext4 + +wget https://autoupdate:eechiesuboot@downloads.sysmocom.de/generic/sysmocom-alix/PLACEHOLDER_SYSMOCOM_RELEASE-testing/images/sysmocom-alix/bzImage +wget https://autoupdate:eechiesuboot@downloads.sysmocom.de/generic/sysmocom-alix/PLACEHOLDER_SYSMOCOM_RELEASE/images/sysmocom-alix/sysmocom-core-image-sysmocom-alix.ext4 + +mv sysmocom-core-image-sysmocom-alix.ext4 sysmocom-nitb-image-sysmocom-bsc.ext4 + +python2 test-bsc.py + + + + + TEST-TestBSC-res.xml + false + + + + + \ No newline at end of file diff --git a/jenkins/job_templates/test_upgrade_apu2.xml b/jenkins/job_templates/test_upgrade_apu2.xml new file mode 100644 index 0000000..495d17a --- /dev/null +++ b/jenkins/job_templates/test_upgrade_apu2.xml @@ -0,0 +1,81 @@ + + + + Test upgrading from current to the next image! + + 30 + 90 + -1 + -1 + + false + + + 2 + + + + + ssh://git@git.admin.sysmocom.de/sysmocom/poky-qa + + + + + */master + + + false + false + false + false + true + false + false + false + false + false + + Default + + + + + + + + false + + + + true + false + false + false + + + H H * * * + + + false + + + export SYSTEM_RELEASE=PLACEHOLDER_SYSMOCOM_RELEASE +rm -f bzImage sysmocom-nitb-image-sysmocom-bsc.ext4 + +wget https://autoupdate:eechiesuboot@downloads.sysmocom.de/generic/sysmocom-apu2/PLACEHOLDER_SYSMOCOM_RELEASE-testing/images/sysmocom-apu2/bzImage +wget https://autoupdate:eechiesuboot@downloads.sysmocom.de/generic/sysmocom-apu2/PLACEHOLDER_SYSMOCOM_RELEASE/images/sysmocom-apu2/sysmocom-core-image-sysmocom-apu2.ext4 + +mv sysmocom-core-image-sysmocom-apu2.ext4 sysmocom-nitb-image-sysmocom-bsc.ext4 + +python2 test-bsc.py + + + + + TEST-TestBSC-res.xml + false + + + + + \ No newline at end of file diff --git a/jenkins/job_templates/testbranch.xml b/jenkins/job_templates/testbranch.xml new file mode 100644 index 0000000..8bcd139 --- /dev/null +++ b/jenkins/job_templates/testbranch.xml @@ -0,0 +1,330 @@ + + + + Test a branch for a given machine on the CI environment. + + 30 + 100 + -1 + -1 + + false + + + + + Machine + + + + sysmobts + sysmobts2100 + sysmocom-apu2 + sysmocom-alix2 + + + + + poky + + PLACEHOLDER_POKY_RELEASE + + + telephony + + PLACEHOLDER_SYSMOCOM_RELEASE + + + bsp + + PLACEHOLDER_SYSMOCOM_RELEASE + + + smalltalk + + PLACEHOLDER_SYSMOCOM_RELEASE + + + qt5 + + PLACEHOLDER_SYSMOCOM_RELEASE + + + systemimages + + PLACEHOLDER_SYSMOCOM_RELEASE + + + + + + + + 2 + + + + + git://git.yoctoproject.org/poky + + + + + */PLACEHOLDER_POKY_RELEASE + + + false + false + false + false + false + false + false + false + false + false + + Default + + poky + + + + + + false + + + + + 2 + + + + + git://github.com/sysmocom/meta-smalltalk.git + + + + + */PLACEHOLDER_SYSMOCOM_RELEASE + + + false + false + false + false + false + false + false + false + false + false + + Default + + meta-smalltalk + + + + + + false + + + + + 2 + + + + + git://github.com/sysmocom/meta-qt5.git + + + + + */PLACEHOLDER_SYSMOCOM_RELEASE + + + false + false + false + false + false + false + false + false + false + false + + Default + + meta-qt5 + + + + + + false + + + + + 2 + + + + + git://git.sysmocom.de/poky/meta-sysmocom-bsp + + + + + */PLACEHOLDER_SYSMOCOM_RELEASE + + + false + false + false + false + false + false + false + false + false + false + + Default + + meta-sysmocom-bsp + + + + + + false + + + + + 2 + + + + + git://git.osmocom.org/meta-telephony + + + + + */PLACEHOLDER_SYSMOCOM_RELEASE + + + false + false + false + false + false + false + false + false + false + false + + Default + + meta-telephony + + + + + + false + + + + + 2 + + + + + git://git.sysmocom.de/poky/system-images + + + + + ** + + + false + false + false + false + false + false + false + false + false + false + + Default + + system-images + + + + + + false + + + + + + Debian8-AMD64 + false + false + false + false + + false + + + env + + +cd system-images +rm -rf git/ +mkdir -p git/ +cd git + +git clone -l --branch=${poky} --reference=../../poky `cd ../../poky && git config --get remote.origin.url` +git clone -l --branch=${smalltalk} --reference=../../meta-smalltalk `cd ../../meta-smalltalk && git config --get remote.origin.url` +git clone -l --branch=${qt5} --reference=../../meta-qt5 `cd ../../meta-qt5 && git config --get remote.origin.url` +git clone -l --branch=${bsp} --reference=../../meta-sysmocom-bsp `cd ../../meta-sysmocom-bsp && git config --get remote.origin.url` +git clone -l --branch=${telephony} --reference=../../meta-telephony `cd ../../meta-telephony && git config --get remote.origin.url` + +cd ../ +pwd +cat Makefile +git reset --hard origin/${systemimages} +echo 'SRC_URI_pn-sysmobts-firmware = "https://autoupdate:eechiesuboot@downloads.sysmocom.de/generic/sysmobts/firmware/sysmobts-firmware-superfemto_v${PV}.tar.bz2" +SRC_URI_pn-sbts2050-util = "https://autoupdate:eechiesuboot@downloads.sysmocom.de/generic/sysmobts/firmware/sbts2050-util-${PV}.tar.bz2"' > cfg/sysmobts/99_do_not_commit +# keep sstate-cache +rm -rf sstate-cache +mv build.${Machine}/sstate-cache . || true +rm -rf build.* +make ${Machine}-setup +mv sstate-cache build.${Machine}/ || true + + +make ${Machine}-build +make ${Machine}-clean +rm -rf build.${Machine}/tmp + + + + + \ No newline at end of file diff --git a/jenkins/job_templates/testing.xml b/jenkins/job_templates/testing.xml new file mode 100644 index 0000000..9b044e1 --- /dev/null +++ b/jenkins/job_templates/testing.xml @@ -0,0 +1,243 @@ + + + + <div><b>Creates official PLACEHOLDER_SYSMOCOM_RELEASE-testing packages/images on downlaods.sysmocom.de</b></div> +<div> + Does this by using <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=PLACEHOLDER_POKY_RELEASE"><i>PLACEHOLDER_POKY_RELEASE</i> branch</a>, + with the PLACEHOLDER_SYSMOCOM_RELEASE branch of the various meta-* layers. +</div> + + 30 + 100 + -1 + -1 + + false + + + + + 2 + + + + + git://git.yoctoproject.org/poky + + + + + */PLACEHOLDER_POKY_RELEASE + + + false + false + false + false + false + false + false + false + false + false + + Default + + + + + + + + false + + + + + 2 + + + + + git://github.com/sysmocom/meta-smalltalk.git + + + + + */PLACEHOLDER_SYSMOCOM_RELEASE + + + false + false + false + false + false + false + false + false + false + false + + Default + + + + + + + + false + + + + + 2 + + + + + git://github.com/sysmocom/meta-qt5.git + + + + + */PLACEHOLDER_SYSMOCOM_RELEASE + + + false + false + false + false + false + false + false + false + false + false + + Default + + + + + + + + false + + + + + 2 + + + + + git://git.sysmocom.de/poky/meta-sysmocom-bsp + + + + + */PLACEHOLDER_SYSMOCOM_RELEASE + + + false + false + false + false + false + false + false + false + false + false + + Default + + + + + + + + false + + + + + 2 + + + + + git://git.osmocom.org/meta-telephony + + + + + */PLACEHOLDER_SYSMOCOM_RELEASE + + + false + false + false + false + false + false + false + false + false + false + + Default + + + + + + + + false + + + + + + true + false + false + false + + + H/5 * * * * + false + + + false + + + ssh -4 yoctoPLACEHOLDER_POKY_RELEASEbuild@10.9.1.103 "cd system-images && git pull --rebase" +ssh -4 yoctoPLACEHOLDER_POKY_RELEASEbuild@10.9.1.103 make -C system-images update +ssh -4 yoctoPLACEHOLDER_POKY_RELEASEbuild@10.9.1.103 make -C system-images build-all +ssh -4 yoctoPLACEHOLDER_POKY_RELEASEbuild@10.9.1.103 make -C system-images upload-all +ssh -4 yoctoPLACEHOLDER_POKY_RELEASEbuild@10.9.1.103 make -C system-images clean-all + + + + + PLACEHOLDER_SYSMOCOM_RELEASE-test-upgrade-alix, PLACEHOLDER_SYSMOCOM_RELEASE-test-upgrade-apu2 + + SUCCESS + 0 + BLUE + true + + + + intern@lists.sysmocom.de + false + false + + + + \ No newline at end of file