diff --git a/tools/ci/gitlab-ci/arm_native_compile.yml b/tools/ci/gitlab-ci/arm_native_compile.yml index 649eeebad234e8cdbc73405f871d16d338e5ff88..e3964a0d50f72f4e16346389b41b39bb096e38c6 100644 --- a/tools/ci/gitlab-ci/arm_native_compile.yml +++ b/tools/ci/gitlab-ci/arm_native_compile.yml @@ -2,7 +2,7 @@ # # Copyright (C) 2025 Collabora, Vignesh Raman <vignesh.raman@collabora.com> -debian/arm64_build: +.debian/arm64_build: extends: - .debian-arm64 - .fdo.container-build@debian diff --git a/tools/ci/gitlab-ci/build.yml b/tools/ci/gitlab-ci/build.yml index ce47b8701a6d39b6ab0852f5913601027c285779..82a11fe4913c1510792cb17583599ef5da060b11 100644 --- a/tools/ci/gitlab-ci/build.yml +++ b/tools/ci/gitlab-ci/build.yml @@ -12,25 +12,25 @@ script: - ./tools/ci/gitlab-ci/ci-scripts/build-kernel.sh -build:x86_64: +.build:x86_64: extends: - .use-debian/x86_64_build - .build-common - .x86_64-config -build:arm64: +.build:arm64: extends: - .use-debian/arm64_build - .build-common - .arm64-config -build:arm32: +.build:arm32: extends: - .use-debian/arm64_build - .build-common - .arm32-config -build-docs: +.build-docs: extends: - .build-doc parallel: diff --git a/tools/ci/gitlab-ci/container.yml b/tools/ci/gitlab-ci/container.yml index 2108a39d5a9c950c5c251ace66c81c4214002fcf..393e963c4e4f58c09dabcd8c9f2d53cae250814a 100644 --- a/tools/ci/gitlab-ci/container.yml +++ b/tools/ci/gitlab-ci/container.yml @@ -100,7 +100,7 @@ variables: variables: KCI_BUILD_ARCH: "arm64" -debian/x86_64_build: +.debian/x86_64_build: extends: - .debian-x86_64 - .fdo.container-build@debian diff --git a/tools/ci/gitlab-ci/gitlab-ci.yml b/tools/ci/gitlab-ci/gitlab-ci.yml index d2679d9929de14dfeb81064ef1f3334a46581577..acafd3c631d821462e244bc8a23eaf7e4552aada 100644 --- a/tools/ci/gitlab-ci/gitlab-ci.yml +++ b/tools/ci/gitlab-ci/gitlab-ci.yml @@ -33,6 +33,7 @@ workflow: - if: $FORCE_CI == 'true' variables: + LAVA_URL: "https://lava.collabora.dev" SMATCH_DB_DIR: /smatch/smatch_data # exit code of bash script on `script` will be the exit code of the job FF_USE_NEW_BASH_EVAL_STRATEGY: "true" @@ -50,14 +51,15 @@ include: - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/16bc29078de5e0a067ff84a1a199a3760d3b3811/templates/debian.yml' - tools/ci/gitlab-ci/container.yml - - tools/ci/gitlab-ci/cache.yml +# - tools/ci/gitlab-ci/cache.yml - tools/ci/gitlab-ci/build.yml - tools/ci/gitlab-ci/test.yml - - tools/ci/gitlab-ci/static-checks.yml - - tools/ci/gitlab-ci/scenarios.yml +# - tools/ci/gitlab-ci/static-checks.yml +# - tools/ci/gitlab-ci/scenarios.yml + - tools/ci/gitlab-ci/testjob.yml -before_script: - - source tools/ci/gitlab-ci/ci-scripts/parse_commit_message.sh +#before_script: +# - source tools/ci/gitlab-ci/ci-scripts/parse_commit_message.sh .use-debian/x86_64_build: allow_failure: diff --git a/tools/ci/gitlab-ci/test.yml b/tools/ci/gitlab-ci/test.yml index e64ea36c13214fc067e277d1d9ed9db7a6028ca6..a3c5be32876ae2e5fb2f7cb266a12841a0119c82 100644 --- a/tools/ci/gitlab-ci/test.yml +++ b/tools/ci/gitlab-ci/test.yml @@ -2,15 +2,28 @@ # # Copyright (C) 2025 Collabora, Vignesh Raman <vignesh.raman@collabora.com> -test-boot: - extends: build:x86_64 +#.test-boot: +# extends: build:x86_64 +# stage: test +# timeout: "10m" +# tags: +# - kvm +# script: +# - mkdir -p /install +# - cp $CI_PROJECT_DIR/artifacts/kernel-install-${KCI_KERNEL_ARCH}/bzImage /install/ +# - ./tools/ci/gitlab-ci/ci-scripts/run-virtme.sh /install/bzImage ./tools/ci/gitlab-ci/ci-scripts/test-boot.sh +# needs: +# - build:x86_64 + +lava-test: stage: test - timeout: "10m" tags: - - kvm + - lava-runner script: - - mkdir -p /install - - cp $CI_PROJECT_DIR/artifacts/kernel-install-${KCI_KERNEL_ARCH}/bzImage /install/ - - ./tools/ci/gitlab-ci/ci-scripts/run-virtme.sh /install/bzImage ./tools/ci/gitlab-ci/ci-scripts/test-boot.sh - needs: - - build:x86_64 + - submit ./tools/ci/gitlab-ci/testjob.yaml + artifacts: + when: always + paths: + - "*" + reports: + junit: "*_junit.xml" diff --git a/tools/ci/gitlab-ci/testjob.yml b/tools/ci/gitlab-ci/testjob.yml new file mode 100644 index 0000000000000000000000000000000000000000..b403657627e96591eb916429bc128984e7f2fe66 --- /dev/null +++ b/tools/ci/gitlab-ci/testjob.yml @@ -0,0 +1,134 @@ +job_name: 'linux: meson:g12b 1/3: https://gitlab.freedesktop.org/vigneshraman/linux/-/pipelines/1391440 on wip/vignesh/uprev-mesa-s3cp 1/3' +device_type: meson-g12b-a311d-khadas-vim3 +visibility: + group: + - Collabora+fdo +priority: 75 +context: + extra_nfsroot_args: ' init=/init rootwait usbcore.quirks=0bda:8153:k' +timeouts: + job: + minutes: 85 + actions: + depthcharge-retry: + minutes: 6 + depthcharge-action: + minutes: 5 + uboot-action: + seconds: 200 +tags: +- subset-1-gfx +actions: +- deploy: + timeout: + minutes: 10 + to: tftp + os: oe + kernel: + url: https://s3.freedesktop.org/artifacts/vigneshraman/linux/1391440/arm64/Image + type: image + nfsrootfs: + url: https://s3.freedesktop.org/mesa-rootfs/vigneshraman/linux/20250328-mesa-uprev--v6.13-rc4-mesa-5e77--20250328-mesa-uprev--bca9635d--d5aa3941aa03c2f716595116354fb81eb8012acb/arm64/lava-rootfs.tar.zst + compression: zstd + format: tar + overlays: + kernel-build: + compression: zstd + format: tar + path: /builds/vigneshraman/linux + url: https://s3.freedesktop.org/artifacts/vigneshraman/linux/1391440/arm64/kernel-files.tar.zst + job-overlay: + compression: gz + format: tar + path: / + url: https://s3.freedesktop.org/artifacts/vigneshraman/linux/1391440/73511165/job-rootfs-overlay.tar.gz + dtb: + url: https://s3.freedesktop.org/artifacts/vigneshraman/linux/1391440/arm64/meson-g12b-a311d-khadas-vim3.dtb + namespace: dut + failure_retry: 2 +- boot: + failure_retry: 2 + method: u-boot + prompts: + - 'lava-shell:' + commands: nfs + namespace: dut + auto_login: + login_commands: + - dropbear -R -B + - touch /dut_ready + login_prompt: 'ogin:' + username: '' +- test: + namespace: dut + definitions: + - from: inline + name: setup-ssh-server + path: inline-setup-ssh-server + repository: + metadata: + format: Lava-Test Test Definition 1.0 + name: dut-env-export + run: + steps: + - |- + set -ex + cd / + findmnt --mountpoint /proc || mount -t proc none /proc + findmnt --mountpoint /sys || mount -t sysfs none /sys + mount -t debugfs none /sys/kernel/debug + findmnt --mountpoint /dev || mount -t devtmpfs none /dev + mkdir -p /dev/pts + mount -t devpts devpts /dev/pts + mkdir /dev/shm + mount -t tmpfs -o noexec,nodev,nosuid tmpfs /dev/shm + mount -t tmpfs tmpfs /tmp + echo "nameserver 8.8.8.8" > /etc/resolv.conf + [ -z "$NFS_SERVER_IP" ] || echo "$NFS_SERVER_IP caching-proxy" >> /etc/hosts + for _ in 1 2 3; do sntp -sS pool.ntp.org && break || sleep 2; done || true + export CURRENT_SECTION=dut_boot + - export -p > /dut-env-vars.sh +- test: + namespace: container + timeout: + minutes: 85 + failure_retry: 3 + definitions: + - name: docker_ssh_client + from: inline + path: inline/docker_ssh_client.yaml + repository: + metadata: + name: mesa + description: Mesa test plan + format: Lava-Test Test Definition 1.0 + run: + steps: + - |- + set -ex + timeout 1m bash << EOF + while [ -z "$(lava-target-ip)" ]; do + echo Waiting for DUT to join LAN; + sleep 1; + done + EOF + + ping -c 5 -w 60 $(lava-target-ip) + + lava_ssh_test_case() { + set -ex + local test_case="${1}" + shift + lava-test-case "${test_case}" --shell \ + ssh ${SSH_PTY_ARGS:--T} \ + -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \ + root@$(lava-target-ip) "${@}" + } + - lava_ssh_test_case 'wait_for_dut_login' << EOF + - while [ ! -e /dut_ready ]; do sleep 1; done; + - EOF + - export SSH_PTY_ARGS=-tt + - lava_ssh_test_case 'linux_meson:g12b' 'cd / && /init-stage2.sh' + docker: + image: registry.freedesktop.org/vigneshraman/linux/alpine/x86_64_lava_ssh_client:20250328-mesa-uprev--d5aa3941aa03c2f716595116354fb81eb8012acb +