- job: name: build-package-test project-type: matrix defaults: global logrotate: daysToKeep: 30 numToKeep: 30 properties: - authorization: anonymous: - job-read - job-extended-read linaro: - job-read - job-configure - job-delete - job-extended-read - job-build - job-cancel - least-load: disabled: False parameters: - string: name: codename default: 'jessie' description: 'distribution codename targeted: vivid, utopic or jessie' - string: name: source description: 'dsc source url or filename' - string: name: repo description: 'repository to upload to' default: 'linaro-staging' - bool: name: appendversion description: 'append version with linaro$dist' default: 'true' axes: - axis: type: slave name: label values: - docker-jessie-amd64 - docker-jessie-arm64 - docker-jessie-armhf execution-strategy: sequential: false disabled: false display-name: 'Build package' wrappers: - timestamps - build-name: name: '#${BUILD_NUMBER}-${ENV,var="codename"}: ${ENV,var="source"}' - matrix-tie-parent: node: master builders: - shell: | #!/bin/bash set -e cat > repo.parameters << EOF build_success=false pkg_job_url=${JOB_URL} EOF arch=`dpkg-architecture -qDEB_HOST_ARCH` dist=`lsb_release -sc` if [ "$dist" != "$codename" ] then echo "$codename requested while we are $dist, skip" exit 0 fi # arm64 is the must build target with source uploads for all dists if [ $arch = arm64 ] then buildpackage_params="-sa" else buildpackage_params="-B" fi [ $arch = armhf ] && personality=linux32 echo "arch: $arch" echo "dist: $dist" echo "source: $source" echo "repo: $repo" echo "appendversion: $appendversion" sudo rm -f *.changes repo work /etc/apt/sources.list.d/local.list # build a source repo for apt-get build-dep mkdir repo && cd repo dget -q -d -u $source dpkg-scansources . /dev/null > Sources.gz echo "deb-src file:$(pwd) /" > local.list echo "deb http://repo.linaro.org/ubuntu/linaro-overlay ${dist} main" >> local.list if [ "${repo}" != "linaro-overlay" ]; then echo "deb http://repo.linaro.org/ubuntu/${repo} ${dist} main" >> local.list fi sudo cp local.list /etc/apt/sources.list.d/ if [ "$dist == jessie" ] then cat > backports.pref <> repo.parameters change=`dpkg-parsechangelog -SChanges` case $change in *Initial*release*) deltatype="new package" ;; *Backport*from*) deltatype="backport" ;; *Added*patch*) deltatype="patched" ;; *Upstream*snapshot*) deltatype="snapshot" ;; *HACK*) deltatype="hack" ;; *) deltatype="other" ;; esac # Changelog update if [ "$appendversion" = "true" ]; then dch --force-distribution -m -D $dist -llinaro$dist "Linaro CI build: $deltatype" elif [ `dpkg-parsechangelog -SDistribution` != $dist ] echo "wrong distribution in changelog, setting to: $dist" dch --force-distribution -m -D $dist -a "Linaro CI: set distribution to $dist" fi export DEBIAN_FRONTEND=noninteractive sudo apt-get update -q||true sudo apt-get install -q --no-install-recommends -y build-essential fakeroot sudo apt-get build-dep -q --no-install-recommends -y ${sourcename} $personality dpkg-buildpackage -rfakeroot -j`getconf _NPROCESSORS_ONLN` $buildpackage_params cd .. ls -l . change=`echo *changes` if [ ! -r $change ] then echo "no changes file" exit 1 else cat $change fi exit 0 # avoid uploads during testing cat > repo.parameters << EOF build_success=true pkg_job_name=${JOB_NAME} key_id=B86C70FE pkg_changes=${change} host_ppa=${repo} pkg_job_url=${JOB_URL} email=$maint EOF publishers: - copy-to-master: includes: - '*.changes, *.dsc, *.gz, *.bz2, *.xz, *.deb, *.udeb, repo.parameters' - trigger-parameterized-builds: - project: post-build-repo property-file: "label/docker-${codename}-arm64/repo.parameters" - project: post-build-repo property-file: "label/docker-${codename}-armhf/repo.parameters" - project: post-build-repo property-file: "label/docker-${codename}-amd64/repo.parameters" - email: recipients: 'riku.voipio@linaro.org'