- job: name: khilman-trigger-flex project-type: matrix defaults: global logrotate: daysToKeep: 7 numToKeep: 30 properties: - authorization: anonymous: - job-read - job-extended-read kevin.hilman@linaro.org: - job-read - job-extended-read - job-build - job-cancel - throttle: max-total: 1 option: project - inject disabled: false node: kci-x86_64-build-complete-01 child-workspace: . display-name: 'khilman - Trigger flex' triggers: - timed: 'H/60 * * * *' axes: - axis: type: slave name: label values: - kci-x86_64-build-complete-01 - axis: type: user-defined name: ARCH values: - arm - arm64 - x86 - axis: type: user-defined name: TREE_BRANCH values: - mainline#master - next#master - arm-soc#for-next - arm-soc#to-build - rmk#for-next - rmk#to-build - omap#for-next - stable#linux-4.4.y - stable#linux-4.2.y - stable#linux-4.0.y - stable#linux-3.19.y - stable#linux-3.17.y - stable#linux-3.16.y - stable#linux-3.15.y - stable#linux-3.14.y - stable#linux-3.13.y - stable#linux-3.12.y - stable#linux-3.11.y - stable#linux-3.10.y - stable-sasha#linux-3.18.y-queue - stable-sasha#linux-3.18.y - stable-sasha#linux-4.1.y-queue - stable-sasha#linux-4.1.y - lsk#for-test - lsk#linux-linaro-lsk-v3.10 - lsk#linux-linaro-lsk-v3.10-test - lsk#linux-linaro-lsk-v3.10-rt - lsk#linux-linaro-lsk-v3.10-rt-test - lsk#linux-linaro-lsk-v3.14 - lsk#linux-linaro-lsk-v3.14-test - lsk#linux-linaro-lsk-v3.14-rt - lsk#linux-linaro-lsk-v3.14-rt-test - lsk#linux-linaro-lsk-v3.18 - lsk#linux-linaro-lsk-v3.18-test - lsk#linux-linaro-lsk-v3.18-rt - lsk#linux-linaro-lsk-v3.18-rt-test - lsk#linux-linaro-lsk-v3.18-android - lsk#linux-linaro-lsk-v3.18-android-test - lsk#linux-linaro-lsk-v3.18-eas-test - lsk#linux-linaro-lsk-v4.1 - lsk#linux-linaro-lsk-v4.1-test - lsk#linux-linaro-lsk-v4.1-rt - lsk#linux-linaro-lsk-v4.1-rt-test - lsk#linux-linaro-lsk-v4.1-android - lsk#linux-linaro-lsk-v4.1-android-test - lsk#linux-linaro-lsk-v4.4 - lsk#linux-linaro-lsk-v4.4-test - lsk#linux-linaro-lsk-v4.4-rt - lsk#linux-linaro-lsk-v4.4-rt-test - lsk#linux-linaro-lsk-v4.4-android - lsk#linux-linaro-lsk-v4.4-android-test - stable-queue#linux-3.10.y.queue - stable-queue#linux-3.14.y.queue - stable-queue#linux-4.2.y.queue - stable-queue#linux-4.4.y.queue - khilman#to-build - qcom-lt#integration-linux-qcomlt - samsung#for-next - dlezcano#kevin-bot - tbaker#to-build - collabora#for-master - collabora#for-next - collabora#for-kernelci - rt-stable#v3.2-rt - rt-stable#v3.4-rt - rt-stable#v3.10-rt - rt-stable#v3.12-rt - tegra#for-next - anders#to-build - anders#v3.18-rt-test - anders#v4.0-rt-test - anders#v4.1-rt-test - viresh#for-kernelci - alex#kernel-ci - krzysztof#for-next - agross#for-next - broonie-regmap#for-next - broonie-regulator#for-next - broonie-sound#for-next - broonie-spi#for-next - renesas#next - renesas#devel - llvm#for-next - llvm#master - ulfh#next - ardb#arm32-efi-for-kernelci - evalenti#for-kernelci - amitk#96b-kernelci execution-strategy: sequential: true wrappers: - timestamps - matrix-tie-parent: node: x86_64-01 - timeout: timeout: 30 builders: - shell: | #!/bin/bash set -x REFERENCE=/srv/mirrors/linux.git declare -A trees trees=( [mainline]="git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git" [next]="git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git" [arm-soc]="git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git" [rmk]="git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-arm.git" [stable]="git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git" [omap]="git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git" [linux-linaro]="git://git.linaro.org/kernel/linux-linaro-tracking.git" [lsk]="git://git.linaro.org/kernel/linux-linaro-stable.git" [khilman]="git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux.git" [stable-queue]="git://server.roeck-us.net/git/linux-stable.git" [stable-sasha]="git://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git" [qcom-lt]="git://git.linaro.org/landing-teams/working/qualcomm/kernel.git" [samsung]="git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git" [dlezcano]="git://git.linaro.org/people/daniel.lezcano/linux.git" [tbaker]="https://github.com/EmbeddedAndroid/linux.git" [collabora]="http://cgit.collabora.com/git/linux.git" [rt-stable]="git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux-stable-rt.git" [tegra]="git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git" [anders]="git://git.linaro.org/people/anders.roxell/linux-rt.git" [viresh]="git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux.git" [alex]="https://git.linaro.org/people/alex.bennee/linux.git" [krzysztof]="git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git" [agross]="git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git" [broonie-regmap]="git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git" [broonie-regulator]="git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git" [broonie-sound]="git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git" [broonie-spi]="git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git" [renesas]="https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git" [llvm]="http://git.linuxfoundation.org/llvmlinux/kernel.git" [ulfh]="git://git.linaro.org/people/ulf.hansson/mmc.git" [ardb]="https://git.linaro.org/people/ard.biesheuvel/linux-arm.git" [evalenti]="git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal.git" [amitk]="https://git.linaro.org/people/amit.kucheria/kernel.git" ) OFS=${IFS} IFS='#' arr=($TREE_BRANCH) IFS=${OFS} tree_name=${arr[0]} tree_url=${trees[$tree_name]} branch=${arr[1]} if [[ -z ${branch} ]]; then branch="master" fi if [ ! -e $tree_name ]; then git clone --reference $REFERENCE $tree_url $tree_name else (cd $tree_name; git remote update) fi rm -f *.properties cd $tree_name rm -f *.properties git remote update git checkout -f origin/$branch if [ $? != 0 ]; then echo "ERROR: branch $branch doesn't exist" exit 1 fi GIT_DESCRIBE=$(git describe) COMMIT_ID=$(git log -n1 --format=%H) echo "${tree_name}/${branch}-${GIT_DESCRIBE}" THIS_COMMIT=$branch-this.commit LAST_COMMIT=$branch-last.commit if [ ${ARCH} != "arm" ]; then THIS_COMMIT=$ARCH-$branch-this.commit LAST_COMMIT=$ARCH-$branch-last.commit fi if [ ! -e $LAST_COMMIT ]; then echo 0 > $LAST_COMMIT fi git log -n1 --format=%H > $THIS_COMMIT diff $LAST_COMMIT $THIS_COMMIT if [ $? == 0 ]; then echo "Nothing new in $tree_name/$branch. Skipping" exit 0 fi cp $THIS_COMMIT $LAST_COMMIT ARCH_LIST=${ARCH} # defconfigs DEFCONFIG_LIST="allnoconfig " DEFCONFIG_LIST+=`(cd arch/${ARCH}/configs; echo *defconfig)` DEFCONFIG_LIST+=" " base_defconfig="defconfig" if [ ${ARCH} = "arm" ]; then base_defconfig="multi_v7_defconfig" fi # tinyconfig if [ -e kernel/configs/tiny.config ]; then DEFCONFIG_LIST+="tinyconfig " fi # defconfigs + fragments if [ ${ARCH} = "arm" ]; then DEFCONFIG_LIST+="allmodconfig " DEFCONFIG_LIST+="multi_v7_defconfig+CONFIG_ARM_LPAE=y " DEFCONFIG_LIST+="multi_v7_defconfig+CONFIG_CPU_BIG_ENDIAN=y " DEFCONFIG_LIST+="multi_v7_defconfig+CONFIG_PROVE_LOCKING=y " DEFCONFIG_LIST+="versatile_defconfig+CONFIG_OF_UNITTEST=y " DEFCONFIG_LIST+="multi_v7_defconfig+CONFIG_THUMB2_KERNEL=y " DEFCONFIG_LIST+="multi_v7_defconfig+CONFIG_SMP=n " # Platform specific if [ -e arch/${ARCH}/configs/mvebu_v7_defconfig ]; then DEFCONFIG_LIST+="mvebu_v7_defconfig+CONFIG_CPU_BIG_ENDIAN=y " fi fi if [ ${ARCH} = "arm64" ]; then DEFCONFIG_LIST+="defconfig+CONFIG_CPU_BIG_ENDIAN=y " DEFCONFIG_LIST+="defconfig+CONFIG_OF_UNITTEST=y " DEFCONFIG_LIST+="allmodconfig " fi if [ ${ARCH} = "x86" ]; then DEFCONFIG_LIST+="defconfig+CONFIG_OF_UNITTEST=y " DEFCONFIG_LIST+="allmodconfig " DEFCONFIG_LIST+="allmodconfig+CONFIG_OF=n " DEFCONFIG_LIST+="i386_defconfig " # Fragments FRAGS="arch/x86/configs/kvm_guest.config" for frag in ${FRAGS}; do if [ -e $frag ]; then DEFCONFIG_LIST+="defconfig+$frag " fi done fi # Tree specific fragments: LSK + KVM fragments if [ ${tree_name} = "stable" ]; then # Don't do allmodconfig builds DEFCONFIG_LIST=${DEFCONFIG_LIST/allmodconfig/} fi # Tree specific fragments: Ard's EFI if [ ${tree_name} = "ardb" ] && [ ${ARCH} = "arm" ]; then DEFCONFIG_LIST+="multi_v7_defconfig+CONFIG_EFI=y " DEFCONFIG_LIST+="multi_v7_defconfig+CONFIG_EFI=y+CONFIG_ARM_LPAE=y " fi # Security testing features DEFCONFIG_LIST+="$base_defconfig+CONFIG_LKDTM=y " # Tree specific fragments: LSK + KVM fragments if [ ${tree_name} = "lsk" ] || [ ${tree_name} = "anders" ]; then # Don't do allmodconfig builds DEFCONFIG_LIST=${DEFCONFIG_LIST/allmodconfig/} FRAGS="linaro/configs/kvm-guest.conf" # For -rt kernels, build with RT fragment RT_FRAG=kernel/configs/preempt-rt.config if [ ! -f ${RT_FRAG} ]; then RT_FRAG=linaro/configs/preempt-rt.conf fi grep -q "config PREEMPT_RT_FULL" kernel/Kconfig.preempt if [ $? = 0 ]; then FRAGS+=" $RT_FRAG " fi for frag in ${FRAGS}; do if [ -e $frag ]; then DEFCONFIG_LIST+="$base_defconfig+$frag " fi done # KVM host: only enable for LPAE-enabled kernels KVM_HOST_FRAG=linaro/configs/kvm-host.conf if [ -e $KVM_HOST_FRAG ]; then lpae_base="multi_v7_defconfig+CONFIG_ARM_LPAE=y" if [[ $DEFCONFIG_LIST == *"${lpae_base}"* ]]; then DEFCONFIG_LIST+="${lpae_base}+$KVM_HOST_FRAG " fi fi # Linaro base + distro frags if [ -e linaro/configs/linaro-base.conf -a -e linaro/configs/distribution.conf ]; then DEFCONFIG_LIST+="$base_defconfig+linaro/configs/linaro-base.conf+linaro/configs/distribution.conf " fi # Android/AOSP fragments: combined together if [ -e android/configs ]; then FRAG_A="" FRAGS="android/configs/android-base.cfg android/configs/android-recommended.cfg" for frag in ${FRAGS}; do if [ -e $frag ]; then FRAG_A+="+$frag" fi done if [ -n "$FRAG_A" ]; then DEFCONFIG_LIST+=" $base_defconfig$FRAG_A " # Also build vexpress_defconfig + Android for testing on QEMU if [ ${ARCH} = "arm" ]; then DEFCONFIG_LIST+=" vexpress_defconfig$FRAG_A " fi fi fi fi cat << EOF > ${WORKSPACE}/${TREE_BRANCH}-build.properties ARCH_LIST=$ARCH_LIST DEFCONFIG_LIST=$DEFCONFIG_LIST TREE=$tree_url TREE_NAME=$tree_name BRANCH=$branch COMMIT_ID=$COMMIT_ID PUBLISH=true EOF cat ${WORKSPACE}/${TREE_BRANCH}-build.properties - trigger-builds: - project: 'khilman-kbuilder' property-file: ${TREE_BRANCH}-build.properties - shell: | #!/bin/bash rm -f ${TREE_BRANCH}-build.properties