- job: name: khilman-trigger-flex project-type: matrix defaults: global logrotate: daysToKeep: 7 numToKeep: 30 properties: - authorization: anonymous: - job-read - job-extended-read khilman@kernel.org: - job-read - job-extended-read - job-build - job-cancel - job-configure - throttle: max-total: 1 option: project - inject disabled: true 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 - mips - x86 - axis: type: user-defined name: TREE_BRANCH values: - mainline#master - next#master - arm-soc#for-next - arm-soc#to-build - stable#linux-4.9.y - stable#linux-4.8.y - stable#linux-4.7.y - stable#linux-4.6.y - stable#linux-4.5.y - 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 - stable-rc#linux-3.14.y - stable-rc#linux-4.4.y - stable-rc#linux-4.6.y - stable-rc#linux-4.7.y - stable-rc#linux-4.8.y - stable-rc#linux-4.9.y # - net-next#master # - android#android-4.4 # - android#android-4.4.y # - android#android-4.9 # - drm-tip#drm-tip - arnd#to-build # - rmk#for-next # - rmk#to-build # - omap#for-next # - 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 # - pmwg#integ # - amlogic#for-next # - leg#leg-kernel # - efi#next # - linaro-android#linaro-android-llct # - linaro-android#lsk-v4.4-android # - linaro-android#lsk-v4.1-android # - linaro-android#lsk-v3.18-android # - 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 # - lsk#for-test 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]="http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git" [next]="http://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git" [arm-soc]="http://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git" [rmk]="git://git.armlinux.org.uk/~rmk/linux-arm.git" [stable]="http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git" [omap]="http://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git" [linux-linaro]="https://git.linaro.org/kernel/linux-linaro-tracking.git" [lsk]="https://git.linaro.org/kernel/linux-linaro-stable.git" [khilman]="http://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux.git" [stable-sasha]="http://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git" [qcom-lt]="https://git.linaro.org/landing-teams/working/qualcomm/kernel.git" [samsung]="http://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git" [dlezcano]="https://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]="http://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux-stable-rt.git" [tegra]="http://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git" [anders]="https://git.linaro.org/people/anders.roxell/linux-rt.git" [viresh]="http://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux.git" [alex]="https://git.linaro.org/people/alex.bennee/linux.git" [krzysztof]="http://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git" [agross]="http://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git" [broonie-regmap]="http://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git" [broonie-regulator]="http://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git" [broonie-sound]="http://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git" [broonie-spi]="http://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git" [renesas]="http://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git" [llvm]="http://git.linuxfoundation.org/llvmlinux/kernel.git" [ulfh]="http://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git" [ardb]="https://git.linaro.org/people/ard.biesheuvel/linux-arm.git" [evalenti]="http://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal.git" [amitk]="https://git.linaro.org/people/amit.kucheria/kernel.git" [pmwg]="https://git.linaro.org/power/linux.git" [net-next]="git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git" [amlogic]="http://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic.git" [leg]="http://git.linaro.org/leg/acpi/leg-kernel.git" [stable-rc]="http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git" [efi]="http://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git" [android]="https://android.googlesource.com/kernel/common" [linaro-android]="https://android-git.linaro.org/git/kernel/linaro-android.git" [drm-tip]="https://anongit.freedesktop.org/git/drm/drm-tip.git" [arnd]=" http://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.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+CONFIG_ARM_MODULE_PLTS=y " DEFCONFIG_LIST+="multi_v7_defconfig+CONFIG_SMP=n " DEFCONFIG_LIST+="multi_v7_defconfig+CONFIG_EFI=y " DEFCONFIG_LIST+="multi_v7_defconfig+CONFIG_EFI=y+CONFIG_ARM_LPAE=y " # 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+="defconfig+CONFIG_RANDOMIZE_BASE=y " # ACPI currently depends on EXPERT on arm64 DEFCONFIG_LIST+="defconfig+CONFIG_EXPERT=y+CONFIG_ACPI=y " DEFCONFIG_LIST+="allmodconfig " # Enable KASAN for non-stable until image size issues are sorted out if [ ${tree_name} != "stable" ] && [ ${tree_name} != "stable-rc" ]; then DEFCONFIG_LIST+="defconfig+CONFIG_KASAN=y " fi fi if [ ${ARCH} = "x86" ]; then DEFCONFIG_LIST+="defconfig+CONFIG_OF_UNITTEST=y " DEFCONFIG_LIST+="defconfig+CONFIG_KASAN=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 # 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