From e260eba65f032c2feb4105318c55c387c1631f3f Mon Sep 17 00:00:00 2001 From: Nicolas Dechesne Date: Wed, 6 Jul 2016 09:35:03 +0200 Subject: rpb-openembedded-{jethro,master}: add new jobs Make sure we have a CI loop for all manifest branches Create one trigger per job so that Jenkins will (hopefully) not schedule all jobs at the same time. Change-Id: Iea280dfcca32eb1c0c9ed226b30d8c28bad83872 Signed-off-by: Nicolas Dechesne Signed-off-by: Fathi Boudra --- rpb-openembedded-jethro.yaml | 219 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 rpb-openembedded-jethro.yaml (limited to 'rpb-openembedded-jethro.yaml') diff --git a/rpb-openembedded-jethro.yaml b/rpb-openembedded-jethro.yaml new file mode 100644 index 0000000000..23bd33ec65 --- /dev/null +++ b/rpb-openembedded-jethro.yaml @@ -0,0 +1,219 @@ +- job: + name: 96boards-reference-platform-openembedded-jethro + project-type: matrix + defaults: global + logrotate: + daysToKeep: 30 + numToKeep: 30 + artifactNumToKeep: 1 + properties: + - authorization: + anonymous: + - job-read + - job-extended-read + - job-workspace + linaro: + - job-read + - job-extended-read + - job-build + - job-cancel + parameters: + - string: + name: IMAGES + default: 'rpb-console-image' + - string: + name: MANIFEST_BRANCH + default: 'jethro' + - string: + name: BUNDLE_STREAM_NAME + default: '/public/team/linaro/rpb-openembedded-${MANIFEST_BRANCH}/' + - string: + name: LAVA_SERVER + default: 'validation.linaro.org/RPC2/' + disabled: false + node: master + display-name: 'Reference Platform - OpenEmbedded (jethro)' + axes: + - axis: + type: user-defined + name: MACHINE + values: + - dragonboard-410c + - dragonboard-820c + - hikey + - 96boards-64 + - sd-600eval + - axis: + type: user-defined + name: DISTRO + values: + - rpb + - rpb-wayland + - axis: + type: slave + name: label + values: + - docker-jessie-amd64 + execution-strategy: + sequential: true + wrappers: + - timestamps + - matrix-tie-parent: + node: master + builders: + - linaro-publish-token: + host: builds.96boards.org + - shell: | + #!/bin/bash + + # workaround EDK2 is confused by the long path used during the build + # and truncate files name expected by VfrCompile + sudo mkdir -p /srv/oe + sudo chown buildslave:buildslave /srv/oe + cd /srv/oe + + set -ex + + trap cleanup_exit INT TERM EXIT + + cleanup_exit() + { + echo "Running cleanup_exit..." + } + + sudo apt-get update + sudo apt-get install -y python-pycurl chrpath gawk texinfo libsdl1.2-dev whiptail diffstat cpio libssl-dev + + mkdir -p ${HOME}/bin + curl https://storage.googleapis.com/git-repo-downloads/repo > ${HOME}/bin/repo + chmod a+x ${HOME}/bin/repo + export PATH=${HOME}/bin:${PATH} + + # initialize repo if not done already + if [ ! -e ".repo/manifest.xml" ]; then + repo init -u https://github.com/96boards/oe-rpb-manifest.git -b ${MANIFEST_BRANCH} + + # link to shared downloads on persistent disk + # our builds config is expecting downloads and sstate-cache, here. + # DL_DIR = "${OEROOT}/sources/downloads" + # SSTATE_DIR = "${OEROOT}/build/sstate-cache" + mkdir -p ${HOME}/srv/oe/downloads ${HOME}/srv/oe/sstate-cache + mkdir -p build + ln -s ${HOME}/srv/oe/downloads + ln -s ${HOME}/srv/oe/sstate-cache + fi + + repo sync + cp .repo/manifest.xml source-manifest.xml + repo manifest -r -o pinned-manifest.xml + MANIFEST_COMMIT=$(cd .repo/manifests && git rev-parse --short HEAD) + + # the setup-environment will create auto.conf and site.conf + # make sure we get rid of old config. + # let's remove the previous TMPDIR as well. + # we want to preserve build/buildhistory though. + rm -rf conf build/conf build/tmp-*glibc/ + + # Accept EULA if/when needed + export EULA_dragonboard410c=1 + source setup-environment build + + # Add job BUILD_NUMBER to output files names + cat << EOF >> conf/auto.conf + IMAGE_NAME_append = "-${BUILD_NUMBER}" + KERNEL_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}" + MODULE_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}" + DT_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}" + BOOT_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}" + EOF + + # get build stats to make sure that we use sstate properly + cat << EOF >> conf/auto.conf + INHERIT += "buildstats buildstats-summary" + EOF + + # add useful debug info + cat conf/{site,auto}.conf + + [ "${DISTRO}" = "rpb" ] && IMAGES+=" rpb-desktop-image" + [ "${DISTRO}" = "rpb-wayland" ] && IMAGES+=" rpb-weston-image" + bitbake ${IMAGES} + DEPLOY_DIR_IMAGE=$(bitbake -e | grep "^DEPLOY_DIR_IMAGE="| cut -d'=' -f2 | tr -d '"') + + # Prepare files to publish + rm -f ${DEPLOY_DIR_IMAGE}/*.txt + rm -rf ${DEPLOY_DIR_IMAGE}/bootloader + find ${DEPLOY_DIR_IMAGE} -type l -delete + mv /srv/oe/{source,pinned}-manifest.xml ${DEPLOY_DIR_IMAGE} + + # Create MD5SUMS file + (cd ${DEPLOY_DIR_IMAGE} && md5sum * > MD5SUMS.txt) + + # Move HiKey's bootloader related files into its own subdir + [ "${MACHINE}" = "hikey" ] && { + mkdir -p ${DEPLOY_DIR_IMAGE}/bootloader + (cd ${DEPLOY_DIR_IMAGE} && mv fip.bin hisi-idt.py l-loader.bin nvme.img ptable-linux-*.img bootloader/) + } + + # Build information + cat > ${DEPLOY_DIR_IMAGE}/HEADER.textile << EOF + + h4. Reference Platform Build - CE OpenEmbedded + + Build description: + * Build URL: "$BUILD_URL":$BUILD_URL + * Manifest URL: "https://github.com/96boards/oe-rpb-manifest.git":https://github.com/96boards/oe-rpb-manifest.git + * Manifest branch: ${MANIFEST_BRANCH} + * Manifest commit: "${MANIFEST_COMMIT}":https://github.com/96boards/oe-rpb-manifest/commit/${MANIFEST_COMMIT} + EOF + + # Publish + test -d ${HOME}/bin || mkdir ${HOME}/bin + wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py + time python ${HOME}/bin/linaro-cp.py \ + --server ${PUBLISH_SERVER} \ + --link-latest \ + ${DEPLOY_DIR_IMAGE}/ \ + snapshots/reference-platform/openembedded/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/${BUILD_NUMBER} + + # Ignore error as we always want to create post_build_lava_parameters + set +e + + cat << EOF > ${WORKSPACE}/post_build_lava_parameters + BOOT_URL=http://builds.96boards.org/snapshots/reference-platform/openembedded/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/${BUILD_NUMBER}/$(ls ${DEPLOY_DIR_IMAGE}/boot-*-${MACHINE}-*-${BUILD_NUMBER}.img | xargs basename) + ROOTFS_BUILD_URL=http://builds.96boards.org/snapshots/reference-platform/openembedded/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/${BUILD_NUMBER}/$(ls ${DEPLOY_DIR_IMAGE}/rpb-console-image-${MACHINE}-*-${BUILD_NUMBER}.rootfs.ext4.gz | xargs basename) + SYSTEM_URL=http://builds.96boards.org/snapshots/reference-platform/openembedded/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/${BUILD_NUMBER}/$(ls ${DEPLOY_DIR_IMAGE}/rpb-console-image-${MACHINE}-*-${BUILD_NUMBER}.rootfs.ext4.gz | xargs basename) + EOF + - inject: + properties-file: post_build_lava_parameters + - shell: | + case "${MACHINE}" in + dragonboard-410c) + export DEVICE_TYPE=apq8016-sbc + ;; + *) + echo "Skip DEVICE_TYPE for ${MACHINE}" + ;; + esac + + rm -rf configs lci-build-tools + git clone --depth 1 http://git.linaro.org/ci/lci-build-tools.git + git clone --depth 1 http://git.linaro.org/ci/job/configs.git + [ -z "${DEVICE_TYPE}" ] || ./lci-build-tools/yaml-to-json.py configs/96boards-reference-platform-openembedded/lava-job-definitions/${DEVICE_TYPE}/template.yaml > custom_lava_job_definition.json + + cat << EOF > post_build_lava_parameters + DEVICE_TYPE=${DEVICE_TYPE} + BUNDLE_STREAM_NAME=${BUNDLE_STREAM_NAME} + CUSTOM_JSON_URL=${JOB_URL}/ws/custom_lava_job_definition.json + LAVA_SERVER=${LAVA_SERVER} + EOF + - trigger-builds: + - project: 'post-build-lava' + property-file: post_build_lava_parameters + block: true + publishers: +# We can only archive files that are located in the workspace +# - archive: +# artifacts: 'build/tmp-*glibc/deploy/images/${MACHINE}/*' + - email: + recipients: 'fathi.boudra@linaro.org koen.kooi@linaro.org nicolas.dechesne@linaro.org ricardo.salveti@linaro.org' -- cgit v1.2.3