- job: name: 96boards-reference-platform-openembedded-krogoth 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 rpb-console-image-lava' - string: name: MANIFEST_BRANCH default: 'krogoth' - 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 (krogoth)' 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 rpb-desktop-image-lava" [ "${DISTRO}" = "rpb-wayland" ] && IMAGES+=" rpb-weston-image rpb-weston-image-lava" 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-lava-${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-lava-${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'