aboutsummaryrefslogtreecommitdiff
path: root/rpb-openembedded-jethro.yaml
diff options
context:
space:
mode:
authorNicolas Dechesne <nicolas.dechesne@linaro.org>2016-07-06 09:35:03 +0200
committerFathi Boudra <fathi.boudra@linaro.org>2016-07-19 15:14:12 +0300
commite260eba65f032c2feb4105318c55c387c1631f3f (patch)
tree4bd33aa8265e9fdb339fd08253de440aa73d3d89 /rpb-openembedded-jethro.yaml
parentd56ebc2b53e0e7c8217b524375bffdeb0cc73453 (diff)
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 <nicolas.dechesne@linaro.org> Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
Diffstat (limited to 'rpb-openembedded-jethro.yaml')
-rw-r--r--rpb-openembedded-jethro.yaml219
1 files changed, 219 insertions, 0 deletions
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'