fragments: &fragments
  - &frag-lkft-base https://gitlab.com/Linaro/lkft/kernel-fragments/-/raw/main/lkft.config
  - &frag-lkft-crypto https://gitlab.com/Linaro/lkft/kernel-fragments/-/raw/main/lkft-crypto.config
  - &frag-lkft-distro https://gitlab.com/Linaro/lkft/kernel-fragments/-/raw/main/distro-overrides.config
  - &frag-lkft-systemd https://gitlab.com/Linaro/lkft/kernel-fragments/-/raw/main/systemd.config
  - &frag-lkft-virtio https://gitlab.com/Linaro/lkft/kernel-fragments/-/raw/main/virtio.config


# debian rootfs
rootfs-debian-testing-arm64: &rootfs-debian-testing-arm64 https://storage.tuxboot.com/debian/bookworm/arm64/rootfs.ext4.xz
rootfs-debian-testing-arm64-tar: &rootfs-debian-testing-arm64-tar https://storage.tuxboot.com/debian/bookworm/arm64/rootfs.tar.xz
rootfs-debian-testing-amd64: &rootfs-debian-testing-amd64 https://storage.tuxboot.com/debian/bookworm/amd64/rootfs.ext4.xz
rootfs-debian-testing-amd64-tar: &rootfs-debian-testing-amd64-tar https://storage.tuxboot.com/debian/bookworm/amd64/rootfs.tar.xz

# debian-mmtests rootfs
rootfs-debian-mmtests-testing-arm64: &rootfs-debian-mmtests-testing-arm64 https://storage.tuxboot.com/debian-mmtests/bookworm/arm64/rootfs.ext4.xz
rootfs-debian-mmtests-testing-arm64-tar: &rootfs-debian-mmtests-testing-arm64-tar https://storage.tuxboot.com/debian-mmtests/bookworm/arm64/rootfs.tar.xz
rootfs-debian-mmtests-testing-amd64: &rootfs-debian-mmtests-testing-amd64 https://storage.tuxboot.com/debian-mmtests/bookworm/amd64/rootfs.ext4.xz
rootfs-debian-mmtests-testing-amd64-tar: &rootfs-debian-mmtests-testing-amd64-tar https://storage.tuxboot.com/debian-mmtests/bookworm/amd64/rootfs.tar.xz

# mmtests overlays
mmtests-db-sqlite-insert-small-arm64: &mmtests-db-sqlite-insert-small-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-db-sqlite-insert-small.tar.xz
mmtests-db-sqlite-insert-small-amd64: &mmtests-db-sqlite-insert-small-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-db-sqlite-insert-small.tar.xz
mmtests-hpc-scimarkc-small-arm64: &mmtests-hpc-scimarkc-small-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-hpc-scimarkc-small.tar.xz
mmtests-hpc-scimarkc-small-amd64: &mmtests-hpc-scimarkc-small-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-hpc-scimarkc-small.tar.xz
mmtests-io-blogbench-arm64: &mmtests-io-blogbench-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-io-blogbench.tar.xz
mmtests-io-blogbench-amd64: &mmtests-io-blogbench-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-io-blogbench.tar.xz
mmtests-io-fio-randread-async-randwrite-arm64: &mmtests-io-fio-randread-async-randwrite-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-io-fio-randread-async-randwrite.tar.xz
mmtests-io-fio-randread-async-randwrite-amd64: &mmtests-io-fio-randread-async-randwrite-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-io-fio-randread-async-randwrite.tar.xz
mmtests-io-fio-randread-async-seqwrite-arm64: &mmtests-io-fio-randread-async-seqwrite-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-io-fio-randread-async-seqwrite.tar.xz
mmtests-io-fio-randread-async-seqwrite-amd64: &mmtests-io-fio-randread-async-seqwrite-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-io-fio-randread-async-seqwrite.tar.xz
mmtests-io-fio-randread-sync-heavywrite-arm64: &mmtests-io-fio-randread-sync-heavywrite-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-io-fio-randread-sync-heavywrite.tar.xz
mmtests-io-fio-randread-sync-heavywrite-amd64: &mmtests-io-fio-randread-sync-heavywrite-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-io-fio-randread-sync-heavywrite.tar.xz
mmtests-io-fio-randread-sync-randwrite-arm64: &mmtests-io-fio-randread-sync-randwrite-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-io-fio-randread-sync-randwrite.tar.xz
mmtests-io-fio-randread-sync-randwrite-amd64: &mmtests-io-fio-randread-sync-randwrite-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-io-fio-randread-sync-randwrite.tar.xz
mmtests-io-fsmark-small-file-stream-arm64: &mmtests-io-fsmark-small-file-stream-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-io-fsmark-small-file-stream.tar.xz
mmtests-io-fsmark-small-file-stream-amd64: &mmtests-io-fsmark-small-file-stream-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-io-fsmark-small-file-stream.tar.xz
mmtests-memdb-redis-benchmark-small-arm64: &mmtests-memdb-redis-benchmark-small-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-memdb-redis-benchmark-small.tar.xz
mmtests-memdb-redis-benchmark-small-amd64: &mmtests-memdb-redis-benchmark-small-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-memdb-redis-benchmark-small.tar.xz
mmtests-memdb-redis-memtier-small-arm64: &mmtests-memdb-redis-memtier-small-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-memdb-redis-memtier-small.tar.xz
mmtests-memdb-redis-memtier-small-amd64: &mmtests-memdb-redis-memtier-small-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-memdb-redis-memtier-small.tar.xz
mmtests-scheduler-schbench-arm64: &mmtests-scheduler-schbench-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-scheduler-schbench.tar.xz
mmtests-scheduler-schbench-amd64: &mmtests-scheduler-schbench-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-scheduler-schbench.tar.xz
mmtests-scheduler-sysbench-cpu-arm64: &mmtests-scheduler-sysbench-cpu-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-scheduler-sysbench-cpu.tar.xz
mmtests-scheduler-sysbench-cpu-amd64: &mmtests-scheduler-sysbench-cpu-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-scheduler-sysbench-cpu.tar.xz
mmtests-scheduler-sysbench-thread-arm64: &mmtests-scheduler-sysbench-thread-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-scheduler-sysbench-thread.tar.xz
mmtests-scheduler-sysbench-thread-amd64: &mmtests-scheduler-sysbench-thread-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-scheduler-sysbench-thread.tar.xz
mmtests-workload-aim9-disk-arm64: &mmtests-workload-aim9-disk-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-aim9-disk.tar.xz
mmtests-workload-aim9-disk-amd64: &mmtests-workload-aim9-disk-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-aim9-disk.tar.xz
mmtests-workload-coremark-arm64: &mmtests-workload-coremark-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-coremark.tar.xz
mmtests-workload-coremark-amd64: &mmtests-workload-coremark-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-coremark.tar.xz
mmtests-workload-cyclictest-fine-hackbench-arm64: &mmtests-workload-cyclictest-fine-hackbench-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-cyclictest-fine-hackbench.tar.xz
mmtests-workload-cyclictest-fine-hackbench-amd64: &mmtests-workload-cyclictest-fine-hackbench-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-cyclictest-fine-hackbench.tar.xz
mmtests-workload-cyclictest-hackbench-arm64: &mmtests-workload-cyclictest-hackbench-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-cyclictest-hackbench.tar.xz
mmtests-workload-cyclictest-hackbench-amd64: &mmtests-workload-cyclictest-hackbench-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-cyclictest-hackbench.tar.xz
mmtests-workload-ebizzy-arm64: &mmtests-workload-ebizzy-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-ebizzy.tar.xz
mmtests-workload-ebizzy-amd64: &mmtests-workload-ebizzy-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-ebizzy.tar.xz
mmtests-workload-pmqtest-hackbench-arm64: &mmtests-workload-pmqtest-hackbench-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-pmqtest-hackbench.tar.xz
mmtests-workload-pmqtest-hackbench-amd64: &mmtests-workload-pmqtest-hackbench-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-pmqtest-hackbench.tar.xz
mmtests-workload-stressng-af-alg-arm64: &mmtests-workload-stressng-af-alg-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-stressng-af-alg.tar.xz
mmtests-workload-stressng-af-alg-amd64: &mmtests-workload-stressng-af-alg-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-stressng-af-alg.tar.xz
mmtests-workload-stressng-bad-altstack-arm64: &mmtests-workload-stressng-bad-altstack-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-stressng-bad-altstack.tar.xz
mmtests-workload-stressng-bad-altstack-amd64: &mmtests-workload-stressng-bad-altstack-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-stressng-bad-altstack.tar.xz
mmtests-workload-stressng-class-io-parallel-arm64: &mmtests-workload-stressng-class-io-parallel-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-stressng-class-io-parallel.tar.xz
mmtests-workload-stressng-class-io-parallel-amd64: &mmtests-workload-stressng-class-io-parallel-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-stressng-class-io-parallel.tar.xz
mmtests-workload-stressng-context-arm64: &mmtests-workload-stressng-context-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-stressng-context.tar.xz
mmtests-workload-stressng-context-amd64: &mmtests-workload-stressng-context-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-stressng-context.tar.xz
mmtests-workload-stressng-fork-arm64: &mmtests-workload-stressng-fork-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-stressng-fork.tar.xz
mmtests-workload-stressng-fork-amd64: &mmtests-workload-stressng-fork-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-stressng-fork.tar.xz
mmtests-workload-stressng-get-arm64: &mmtests-workload-stressng-get-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-stressng-get.tar.xz
mmtests-workload-stressng-get-amd64: &mmtests-workload-stressng-get-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-stressng-get.tar.xz
mmtests-workload-stressng-getdent-arm64: &mmtests-workload-stressng-getdent-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-stressng-getdent.tar.xz
mmtests-workload-stressng-getdent-amd64: &mmtests-workload-stressng-getdent-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-stressng-getdent.tar.xz
mmtests-workload-stressng-madvise-arm64: &mmtests-workload-stressng-madvise-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-stressng-madvise.tar.xz
mmtests-workload-stressng-madvise-amd64: &mmtests-workload-stressng-madvise-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-stressng-madvise.tar.xz
mmtests-workload-stressng-mmap-arm64: &mmtests-workload-stressng-mmap-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-stressng-mmap.tar.xz
mmtests-workload-stressng-mmap-amd64: &mmtests-workload-stressng-mmap-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-stressng-mmap.tar.xz
mmtests-workload-stressng-vm-splice-arm64: &mmtests-workload-stressng-vm-splice-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-stressng-vm-splice.tar.xz
mmtests-workload-stressng-vm-splice-amd64: &mmtests-workload-stressng-vm-splice-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-stressng-vm-splice.tar.xz
mmtests-workload-usemem-arm64: &mmtests-workload-usemem-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-usemem.tar.xz
mmtests-workload-usemem-amd64: &mmtests-workload-usemem-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-usemem.tar.xz
mmtests-workload-will-it-scale-io-processes-arm64: &mmtests-workload-will-it-scale-io-processes-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-will-it-scale-io-processes.tar.xz
mmtests-workload-will-it-scale-io-processes-amd64: &mmtests-workload-will-it-scale-io-processes-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-will-it-scale-io-processes.tar.xz
mmtests-workload-will-it-scale-io-threads-arm64: &mmtests-workload-will-it-scale-io-threads-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-will-it-scale-io-threads.tar.xz
mmtests-workload-will-it-scale-io-threads-amd64: &mmtests-workload-will-it-scale-io-threads-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-will-it-scale-io-threads.tar.xz
mmtests-workload-will-it-scale-pf-processes-arm64: &mmtests-workload-will-it-scale-pf-processes-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-will-it-scale-pf-processes.tar.xz
mmtests-workload-will-it-scale-pf-processes-amd64: &mmtests-workload-will-it-scale-pf-processes-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-will-it-scale-pf-processes.tar.xz
mmtests-workload-will-it-scale-pf-threads-arm64: &mmtests-workload-will-it-scale-pf-threads-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-will-it-scale-pf-threads.tar.xz
mmtests-workload-will-it-scale-pf-threads-amd64: &mmtests-workload-will-it-scale-pf-threads-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-will-it-scale-pf-threads.tar.xz
mmtests-workload-will-it-scale-sys-processes-arm64: &mmtests-workload-will-it-scale-sys-processes-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-will-it-scale-sys-processes.tar.xz
mmtests-workload-will-it-scale-sys-processes-amd64: &mmtests-workload-will-it-scale-sys-processes-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-will-it-scale-sys-processes.tar.xz
mmtests-workload-will-it-scale-sys-threads-arm64: &mmtests-workload-will-it-scale-sys-threads-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/mmtests/master/config-workload-will-it-scale-sys-threads.tar.xz
mmtests-workload-will-it-scale-sys-threads-amd64: &mmtests-workload-will-it-scale-sys-threads-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/mmtests/master/config-workload-will-it-scale-sys-threads.tar.xz

# ltp overlays
ltp-debian-bookworm-arm64: &ltp-debian-bookworm-arm64 https://storage.tuxboot.com/overlays/debian/bookworm/arm64/ltp/20230929/ltp.tar.xz
ltp-debian-bookworm-amd64: &ltp-debian-bookworm-amd64 https://storage.tuxboot.com/overlays/debian/bookworm/amd64/ltp/20230929/ltp.tar.xz

boot-timeout-arm: &boot-timeout-arm 30
boot-timeout-arm64: &boot-timeout-arm64 30
boot-timeout-fvp: &boot-timeout-fvp 60
boot-timeout-i386: &boot-timeout-i386 15
boot-timeout-amd64: &boot-timeout-amd64 15

ltp-commands-timeout: &ltp-commands-timeout 40
ltp-containers-timeout: &ltp-containers-timeout 25
ltp-controllers-timeout: &ltp-controllers-timeout 80
ltp-crypto-timeout: &ltp-crypto-timeout 30
ltp-cve-timeout: &ltp-cve-timeout 50
ltp-fs_bind-timeout: &ltp-fs_bind-timeout 40
ltp-fs-timeout: &ltp-fs-timeout 40
ltp-fs_perms_simple-timeout: &ltp-fs_perms_simple-timeout 10
ltp-fsx-timeout: &ltp-fsx-timeout 10
ltp-hugetlb-timeout: &ltp-hugetlb-timeout 20
ltp-math-timeout: &ltp-math-timeout 50
ltp-mm-timeout: &ltp-mm-timeout 40
ltp-pty-timeout: &ltp-pty-timeout 10
ltp-sched-timeout: &ltp-sched-timeout 30
ltp-syscalls-timeout: &ltp-syscalls-timeout 50
ltp-tracing-timeout: &ltp-tracing-timeout 30
ltp-smoke-timeout: &ltp-smoke-timeout 15

version: 1
name: full kernel validation for the master branch.
description: Build and performance test linux kernel
jobs:
# arm64
- name: arm64-lkftconfig-tests
  builds:
    - build_name: gcc-13-lkftconfig
      target_arch: arm64
      toolchain: gcc-13
      kconfig: [ defconfig, *frag-lkft-base, *frag-lkft-crypto, *frag-lkft-distro, *frag-lkft-systemd, *frag-lkft-virtio, CONFIG_SYN_COOKIES=y, CONFIG_SCHEDSTATS=y ]
  sanity_test:
      device: qemu-arm64
      boot_args: rw
      parameters: {SKIPFILE: "skipfile-lkft.yaml"}
      rootfs: *rootfs-debian-mmtests-testing-arm64
      overlay: [ *ltp-debian-bookworm-arm64 ]
      tests: [ltp-smoke]
      timeouts: { "boot": *boot-timeout-arm64, "ltp-smoke": *ltp-smoke-timeout }
  tests:
    - device: qemu-arm64
      boot_args: rw
      shared: true
      host: arm64_large
      parameters: {SKIPFILE: "skipfile-lkft.yaml", ITERATIONS: 3}
      rootfs: *rootfs-debian-mmtests-testing-arm64
      overlay: [ [*mmtests-io-blogbench-arm64, /mmtests ] ]
      tests: [ mmtests-io-blogbench ]
      timeouts: { "boot": *boot-timeout-arm64, "mmtests-io-blogbench": 150 }
# amd64
- name: x86_64-lkftconfig-tests
  builds:
    - build_name: gcc-13-lkftconfig
      target_arch: x86_64
      toolchain: gcc-13
      kconfig: [ defconfig, *frag-lkft-base, *frag-lkft-crypto, *frag-lkft-distro, *frag-lkft-systemd, *frag-lkft-virtio, CONFIG_SYN_COOKIES=y, CONFIG_SCHEDSTATS=y ]
  sanity_test:
      device: qemu-x86_64
      boot_args: rw
      parameters: {SKIPFILE: "skipfile-lkft.yaml"}
      rootfs: *rootfs-debian-mmtests-testing-amd64
      overlay: [ *ltp-debian-bookworm-amd64 ]
      tests: [ltp-smoke]
      timeouts: { "boot": *boot-timeout-amd64, "ltp-smoke": *ltp-smoke-timeout }
  tests:
    - device: qemu-x86_64
      boot_args: rw
      shared: true
      host: x86_64_large
      parameters: {SKIPFILE: "skipfile-lkft.yaml", ITERATIONS: 3}
      rootfs: *rootfs-debian-mmtests-testing-amd64
      overlay: [ [*mmtests-io-blogbench-amd64, /mmtests ] ]
      tests: [ mmtests-io-blogbench ]
      timeouts: { "boot": *boot-timeout-amd64, "mmtests-io-blogbench": 150 }
