| Message ID | 20260130160254.1770742-4-barnabas.pocze@ideasonboard.com |
|---|---|
| State | New |
| Headers | show |
| Series |
|
| Related | show |
Hi Barnabás On Fri, Jan 30, 2026 at 05:02:52PM +0100, Barnabás Pőcze wrote: > 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 > > 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-* Looking at how we did it with Soraka https://gitlab.freedesktop.org/camera/libcamera-ci/-/commit/c3a6d616470f577abd01fb2fc2ecd6caf877e0e9 I wonder the lava job can't be added as an artifact to the job that builds the .deb ? The only reason is to avoid spawning a container just to save an artifact. Is it a valid concern ? > > # ------------------------------------------------------------------------------ > # 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 > -- > 2.52.0
2026. 02. 04. 10:36 keltezéssel, Jacopo Mondi írta: > Hi Barnabás > > On Fri, Jan 30, 2026 at 05:02:52PM +0100, Barnabás Pőcze wrote: >> 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 >> >> 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-* > > Looking at how we did it with Soraka > https://gitlab.freedesktop.org/camera/libcamera-ci/-/commit/c3a6d616470f577abd01fb2fc2ecd6caf877e0e9 > > I wonder the lava job can't be added as an artifact to the job that > builds the .deb ? The only reason is to avoid spawning a container > just to save an artifact. Is it a valid concern ? I think I did it like this to avoid having to download the deb archive to lava-gitlab-runner. But it turns out that is unavoidable. I will change it so that the build job has the lava files as artifacts. > >> >> # ------------------------------------------------------------------------------ >> # 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 >> -- >> 2.52.0
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
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