#!/bin/bash # Script used by CI to build the ARM Trusted Firmware error_count=0 built_count=0 function count_errors { if [ $1 -ne 0 ]; then error_count=$(($error_count + 1)) else built_count=$(($built_count + 1)) fi return $1 } set -e if [ -z "${WORKSPACE}" ]; then # Local build export WORKSPACE=`pwd` export BUILD_NUMBER=0 export JOB_NAME=${JOB_NAME:-fvp-pre-boot} fi case "${JOB_NAME}" in fvp-pre-boot) repo=arm-trusted-firmware repo_url=git://git.linaro.org/arm/models branch=linaro ;; fvp-pre-boot-master) repo=arm-trusted-firmware repo_url=git://git.linaro.org/arm/models branch=master ;; fvp-pre-boot-upstream) repo=arm-trusted-firmware repo_url=http://github.com/ARM-software branch=master ;; *) echo "Invalid JOB_NAME $JOB_NAME" exit 1 ;; esac pkg_source=${JOB_NAME} pkg_repository=$repo_url/${repo}.git if [ ! -e ${pkg_repository} ]; then git clone --depth 1 ${pkg_repository} -b ${branch} fi scm_commit=`cd ${repo} && git log -n1 --pretty=format:%h` if [ -z "${scm_commit}" ]; then echo "Invalid git revision: ${scm_commit}" >&2 exit 1 fi base_version=0.2.`date +%Y%m%d` pkg_version=${base_version}+git${BUILD_NUMBER}+${scm_commit} pkg_dir=${pkg_source}-${pkg_version} unset ARCH export builddir=${WORKSPACE}/${JOB_NAME}-build export REPO_WORKSPACE=${WORKSPACE}/${repo} export CROSS_COMPILE=${CROSS_COMPILE:-aarch64-linux-gnu-} rm -rf ${builddir} && mkdir -p ${builddir} # Create source tarball cd ${REPO_WORKSPACE} git checkout ${branch} git archive --format=tar --prefix=${pkg_dir}/ ${branch} | bzip2 > ${pkg_source}_${pkg_version}.orig.tar.bz2 mv ${pkg_source}_${pkg_version}.orig.tar.bz2 ${builddir} cd ${WORKSPACE} # disable exit on error set +e cd ${REPO_WORKSPACE} make count_errors $? cp -a ${REPO_WORKSPACE}/bl*.bin ${builddir} # If nothing build, return an error if [ $built_count -eq 0 ]; then exit $error_count fi # We want to return 0 if something built so that the files get copied to snapshots.linaro.org exit 0