- job: name: 96boards-dragonboard410c-android project-type: freestyle defaults: global logrotate: daysToKeep: 90 numToKeep: 90 properties: - authorization: anonymous: - job-read linaro: - job-build - job-cancel parameters: - string: name: OVERLAY_URL default: http://builds.96boards.org/snapshots/dragonboard410c/binaries/20150813/proprietary_LA.BR.1.2.4_01810_8x16_1.tgz - string: name: PATCHSET_URL default: http://builds.96boards.org/snapshots/dragonboard410c/binaries/20150813/LA.BR.1.2.4-01810-8x16.0_410C_Aug.tar.gz - string: name: SYSTEM_OVERLAY_URL default: http://builds.96boards.org/snapshots/dragonboard410c/binaries/20150813/system_overlay.tar.bz2 - string: name: MANIFEST_FILENAME default: LA.BR.1.2.4-01810-8x16.0.xml - password: name: PRIVATE_KEY default: ${LT_QUALCOMM_PRIVATE_KEY} disabled: false node: docker-utopic-aosp display-name: '96boards - DragonBoard 410c (Android)' concurrent: true wrappers: - timestamps - timeout: timeout: 500 builders: - linaro-publish-token: host: builds.96boards.org - shell: | #!/bin/bash java -version sudo apt-get update sudo apt-get install -y gcc-4.9-multilib bison git gperf libxml2-utils python-mako zip time python-pycurl genisoimage mkdir -p ${HOME}/bin ${WORKSPACE}/build/out curl https://storage.googleapis.com/git-repo-downloads/repo > ${HOME}/bin/repo wget https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py chmod a+x ${HOME}/bin/* export PATH=${HOME}/bin:${PATH} sudo mkdir -p /home/buildslave/srv/${JOB_NAME} sudo chmod 777 /home/buildslave/srv/${JOB_NAME} cd /home/buildslave/srv/${JOB_NAME} git config --global user.email "ci_notify@linaro.org" git config --global user.name "Linaro CI" # Clean any artifacts related to previous build rm -rf vendor/qcom/proprietary rm -rf out/target/product/msm8916_64/system/ out/target/product/msm8916_64/data/ out/target/product/msm8916_64/*.zip # Runs as ubuntu set -ex repo init -u git://codeaurora.org/platform/manifest.git -b release -m ${MANIFEST_FILENAME} --repo-url=git://codeaurora.org/tools/repo.git repo sync -j16 set +ex mkdir -p out cp .repo/manifest.xml out/source-manifest.xml repo manifest -r -o out/pinned-manifest.xml OVERLAY=$(basename ${OVERLAY_URL}) wget --progress=dot -e dotbytes=2M ${OVERLAY_URL} -O ${OVERLAY} tar -zxvf ${OVERLAY} -C vendor/qcom/ PATCHSET=$(basename ${PATCHSET_URL}) wget --progress=dot -e dotbytes=2M ${PATCHSET_URL} -O ${PATCHSET} tar -zxvf ${PATCHSET} cd $(basename "${PATCHSET}" .tar.gz) pw=${PWD} cp device/qcom/msm8916_64/bootanimation.zip ../device/qcom/msm8916_64/ export patches=$(find . -iname *.patch | sort) for patch in ${patches}; do echo "applying $patch"; project=$(dirname ${patch}); cd ../${project};rm -rf .git/rebase-apply; git am ${pw}/${patch}; cd -; done cd .. rm -rf ${pw} source build/envsetup.sh lunch msm8916_64-userdebug make -j8 wget https://git.linaro.org/landing-teams/working/qualcomm/lt-docs.git/blob_plain/HEAD:/license/license.txt -O out/target/product/msm8916_64/system/etc/license.txt SYSTEM_OVERLAY=(basename ${SYSTEM_OVERLAY_URL}) wget ${SYSTEM_OVERLAY_URL} -O ${SYSTEM_OVERLAY} tar -xvjf ${SYSTEM_OVERLAY} -C out/target/product/msm8916_64/ rm -rf out/target/product/msm8916_64/userdata.img out/target/product/msm8916_64/obj/PACKAGING/userdata_intermediates/ make -j8 snod userdataimage cd out/target/product/msm8916_64/ for image in "boot.img" "system.img" "userdata.img" "cache.img" "persist.img" "recovery.img"; do echo "Compressing $image" tar -Jcf ${image}.tar.xz ${image} done cd - cp -a /home/buildslave/srv/${JOB_NAME}/out/*.xml /home/buildslave/srv/${JOB_NAME}/out/target/product/msm8916_64/ cp -a /home/buildslave/srv/${JOB_NAME}/out/*.xml ${WORKSPACE}/ ####################################### # let's create the SD install image now ####################################### TMPKEYDIR=$(mktemp -d /tmp/qcom.XXXXXX) cat > ${TMPKEYDIR}/private-key-wrapper.py << EOF #!/usr/bin/python import os import sys def main(): private_key = os.environ.get("PRIVATE_KEY", "Undefined") if private_key == "Undefined": sys.exit("PRIVATE_KEY is not defined.") buffer = private_key.replace(' ','\n') with open('linaro-private-key', 'w') as f: f.write('-----BEGIN RSA PRIVATE KEY-----\n') f.write(buffer) f.write('\n-----END RSA PRIVATE KEY-----\n') if __name__ == "__main__": main() EOF python ${TMPKEYDIR}/private-key-wrapper.py chmod 0600 linaro-private-key eval `ssh-agent` >/dev/null 2>/dev/null ssh-add linaro-private-key >/dev/null 2>/dev/null rm -rf linaro-private-key ${TMPKEYDIR} mkdir ~/.ssh ssh-keyscan dev-private-git.linaro.org >> ~/.ssh/known_hosts cat << EOF >> ~/.ssh/config Host dev-private-git.linaro.org User git EOF chmod 0600 ~/.ssh/* rm -rf db410c_bootloader git clone --depth 1 ssh://dev-private-git.linaro.org/landing-teams/working/qualcomm/db410c_bootloader.git # record commit info in build log cd db410c_bootloader git log -1 cp /home/buildslave/srv/${JOB_NAME}/out/target/product/msm8916_64/emmc_appsboot.mbn bootloaders/ cd emmc_android # we didn't remove the file in out folder when we compressed earlier, so we # move them here now mv /home/buildslave/srv/${JOB_NAME}/out/target/product/msm8916_64/boot.img . mv /home/buildslave/srv/${JOB_NAME}/out/target/product/msm8916_64/recovery.img . mv /home/buildslave/srv/${JOB_NAME}/out/target/product/msm8916_64/system.img . mv /home/buildslave/srv/${JOB_NAME}/out/target/product/msm8916_64/userdata.img . mv /home/buildslave/srv/${JOB_NAME}/out/target/product/msm8916_64/persist.img . mv /home/buildslave/srv/${JOB_NAME}/out/target/product/msm8916_64/cache.img . cat << EOF >> os.json { "name": "Android for DragonBoard 410c - Build #${BUILD_NUMBER}", "url": "http://builds.96boards.org/releases/dragonboard410c", "version": "`date +%Y%m%d`-${BUILD_NUMBER}", "release_date": "`date +%Y-%m-%d`", "description": "Android release for DragonBoard 410c" } EOF cd ../sd_install # quick hack for now, need to create the proper job that builds the initrd wget --progress=dot -e dotbytes=2M http://people.linaro.org/~nicolas.dechesne/boot-burn.img cd .. ./build sdcard_install_android # add license.txt file rm -f license.txt wget https://git.linaro.org/landing-teams/working/qualcomm/lt-docs.git/blob_plain/HEAD:/license/license.txt cp license.txt out/dragonboard410c_sdcard_install_android # create archive for publishing zip -rj ../out/target/product/msm8916_64/dragonboard410c_sdcard_install_android-${BUILD_NUMBER}.zip out/dragonboard410c_sdcard_install_android cd .. # Publish PUB_DEST=/snapshots/dragonboard410c/qualcomm/android/${BUILD_NUMBER} cat > out/target/product/msm8916_64/BUILD-INFO.txt << EOF Format-Version: 0.5 Files-Pattern: * License-Type: open EOF time linaro-cp.py \ --manifest \ --no-build-info \ --link-latest \ --split-job-owner \ --server ${PUBLISH_SERVER} \ out/target/product/msm8916_64/ \ $PUB_DEST \ --include "^[^/]+[._](img[^/]*|tar[^/]*|xml|sh|config|mbn|zip)$" \ --include "^[BHi][^/]+txt$" \ --include "^(MANIFEST|MD5SUMS)$" echo "Build finished" publishers: - archive: artifacts: '*.xml' latest-only: true - logparser: parse-rules: 'Android Build' unstable-on-warning: false fail-on-error: false - fingerprint: files: 'build/fingerprints/*' - email: recipients: 'nicolas.dechesne@linaro.org vishal.bhoj@linaro.org fathi.boudra@linaro.org'