diff --git a/tools/ci/gitlab-ci/build.yml b/tools/ci/gitlab-ci/build.yml index ce47b8701a6d39b6ab0852f5913601027c285779..ab0722c55ba3ca555fd6e12061cbc887da4adcea 100644 --- a/tools/ci/gitlab-ci/build.yml +++ b/tools/ci/gitlab-ci/build.yml @@ -18,13 +18,13 @@ build:x86_64: - .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 diff --git a/tools/ci/gitlab-ci/gitlab-ci.yml b/tools/ci/gitlab-ci/gitlab-ci.yml index d2679d9929de14dfeb81064ef1f3334a46581577..43fbe34568c210a2d06984c7f2bdb5109b87bce7 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" diff --git a/tools/ci/gitlab-ci/test.yml b/tools/ci/gitlab-ci/test.yml index e64ea36c13214fc067e277d1d9ed9db7a6028ca6..1ee9faf1eb4f3da95262581317ff4a36df9abb39 100644 --- a/tools/ci/gitlab-ci/test.yml +++ b/tools/ci/gitlab-ci/test.yml @@ -14,3 +14,17 @@ test-boot: - ./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: + extends: build:x86_64 + stage: test + tags: + - lava-runner + script: + - 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..7ac1d24250c1a81f60820162485d6daf30d3ae6e --- /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: 'login:' + 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 +