[libcamera-ci,RFC,v2,3/5] Add job to run lc-compliance via lava
diff mbox series

Message ID 20260130160254.1770742-4-barnabas.pocze@ideasonboard.com
State New
Headers show
Series
  • on-device-testing proof of concept
Related show

Commit Message

Barnabás Pőcze Jan. 30, 2026, 4:02 p.m. UTC
Add a job that runs lc-compliance via lava on real hardware.

Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
---
 .gitlab-ci/on-device-testing/lava-debix-a.yml | 40 +++++++++++++++++++
 gitlab-ci.yml                                 | 36 +++++++++++++++++
 2 files changed, 76 insertions(+)
 create mode 100644 .gitlab-ci/on-device-testing/lava-debix-a.yml

--
2.52.0

Patch
diff mbox series

diff --git a/.gitlab-ci/on-device-testing/lava-debix-a.yml b/.gitlab-ci/on-device-testing/lava-debix-a.yml
new file mode 100644
index 0000000..4a9b9b6
--- /dev/null
+++ b/.gitlab-ci/on-device-testing/lava-debix-a.yml
@@ -0,0 +1,40 @@ 
+device_type: debix-a
+job_name: debix-a lc-compliance test
+
+timeouts:
+  job:
+    minutes: 30
+  action:
+    minutes: 5
+  connection:
+    minutes: 6
+priority: medium
+visibility: public
+
+actions:
+- boot:
+    method: minimal
+    timeout:
+      minutes: 6
+    auto_login:
+      login_prompt: 'boot2container login:'
+      username: "root"
+      password_prompt: "Password:"
+      password: "root"
+    prompts: [":~#"]
+- test:
+    interactive:
+    - name: lc-compliance
+      prompts: [":~#"]
+      echo: discard
+      script:
+      - command: >-
+          /opt/test-libcamera.sh
+          "{{ job.LIBCAMERA_DEB_URL }}"
+          /base/soc@0/bus@30800000/i2c@30a30000/camera@10
+          && echo "lc-compliance test passed"
+          || echo "lc-compliance test failed"
+        successes:
+          - message: "lc-compliance test passed"
+        failures:
+          - message: "lc-compliance test failed"
diff --git a/gitlab-ci.yml b/gitlab-ci.yml
index 66f4b5b..37ffc58 100644
--- a/gitlab-ci.yml
+++ b/gitlab-ci.yml
@@ -355,6 +355,7 @@  build-deb-for-lc-compliance-testing:
         --name libcamera
         --description "$CI_COMMIT_SHA (job $CI_JOB_ID, pipeline $CI_PIPELINE_ID, project $CI_PROJECT_PATH)"
         --version "0.0.0"
+    - echo "LIBCAMERA_DEB_URL=$CI_API_V4_URL/projects/$CI_PROJECT_ID/jobs/$CI_JOB_ID/artifacts/libcamera.deb" >> env
   artifacts:
     when: always
     expire_in: 1 week
@@ -362,11 +363,30 @@  build-deb-for-lc-compliance-testing:
       - build/meson-logs/
       - build/build.ninja
       - "*.deb"
+    reports:
+      dotenv: env
   parallel:
     matrix:
       - ARCH:
         - arm64

+lava-jobs-as-artifacts:
+  extends:
+    - .fdo.distribution-image@debian
+    - .libcamera-ci.debian:13
+    - .libcamera-ci.scripts
+  stage: build
+  needs:
+    - job: container-debian:13
+      artifacts: false
+  variables:
+    GIT_STRATEGY: none
+  script:
+    - echo "saving lava job definitions as artifacts for lava-gitlab-runner"
+  artifacts:
+    expire_in: 1w
+    paths:
+      - $CI_PROJECT_DIR/.gitlab-ci/on-device-testing/lava-*

 # ------------------------------------------------------------------------------
 # Lint stage - Run checkstyle.py and check merge suitability
@@ -470,3 +490,19 @@  test-lc-compliance:virtual:
   artifacts:
     reports:
       junit: build/lc-compliance-report.xml
+
+test-lc-compliance:rkisp1:debix-a:
+  stage: test
+  needs:
+    - job: lava-jobs-as-artifacts
+      artifacts: true
+    - job: build-deb-for-lc-compliance-testing
+      artifacts: true
+      parallel:
+        matrix:
+          - ARCH:
+            - arm64
+  tags:
+    - libcamera-lava
+  script:
+    - submit .gitlab-ci/on-device-testing/lava-debix-a.yml