canonical-hw-cert team mailing list archive
-
canonical-hw-cert team
-
Mailing list archive
-
Message #91291
[Merge] hwcert-jenkins-jobs:mir-jammy into hwcert-jenkins-jobs:master
Michał Sawicz has proposed merging hwcert-jenkins-jobs:mir-jammy into hwcert-jenkins-jobs:master.
Requested reviews:
hwcert-jenkins (hwcert-jenkins)
For more details, see:
https://code.launchpad.net/~hwcert-jenkins/hwcert-jenkins-jobs/+git/hwcert-jenkins-jobs/+merge/440308
--
Your team hwcert-jenkins is requested to review the proposed merge of hwcert-jenkins-jobs:mir-jammy into hwcert-jenkins-jobs:master.
diff --git a/jobs/mir/mir-core-template-track.yaml b/jobs/mir/mir-core-template-track.yaml
new file mode 100644
index 0000000..3e856de
--- /dev/null
+++ b/jobs/mir/mir-core-template-track.yaml
@@ -0,0 +1,56 @@
+- job-template:
+ name: '{prefix}-{image}-mir-{suite}-{snap}-{track}-{channel}-{device}'
+ description: |
+ This runs the mir tests on {image} on {queue} using {snap}/{track}/{channel} with Mir `base: core{mir-base}`.
+ {detail}
+ project-type: freestyle
+ mir-base: '22'
+ track: 'latest'
+ channel: 'beta'
+ disabled_var:
+ disabled: '{obj:disabled_var}'
+ suite: smoke
+ filter: '*'
+ concurrent: false
+ sequential: false
+ repository: main
+ arch: amd64
+ has-serial-assertion: True
+ gfx-setup: ''
+ triggers:
+ - pollurl:
+ cron: 'H/10 * * * *'
+ polling-node: 'master'
+ urls:
+ - url: "{jenkins_url}/job/cert-snap-package-data/lastSuccessfulBuild/artifact/snaps.json/*view*/"
+ check-content:
+ - simple: false
+ - json:
+ - '{snap}.{track}.{channel}.{arch}.revision'
+ wrappers:
+ - timeout:
+ timeout: 400
+ fail: true
+ - timestamps
+ builders:
+ - shell:
+ !include-raw: run-core-mir-track.sh
+ publishers:
+ - post-tasks:
+ - matches:
+ - log-text: "Build timed out"
+ operator: OR
+ - log-text: "Build was aborted"
+ operator: OR
+ script: |
+ testflinger cancel $(cat JOB_ID)
+ - description-setter:
+ regexp: "{snap} Version: (.*)"
+ regexp-for-failed: "{snap} Version: (.*)"
+ description: "\\1"
+ description-for-failed: "\\1"
+ - archive:
+ artifacts: 'artifacts/*'
+ allow-empty: true
+ - email:
+ recipients: michal.sawicz@xxxxxxxxxxxxx alan.griffiths@xxxxxxxxxxxxx
diff --git a/jobs/mir/mir-template-track.yaml b/jobs/mir/mir-template-track.yaml
new file mode 100644
index 0000000..0fb1e82
--- /dev/null
+++ b/jobs/mir/mir-template-track.yaml
@@ -0,0 +1,62 @@
+- job-template:
+ name: '{prefix}-{series}-mir-{suite}-{snap}-{track}-{channel}-{queue}'
+ description: |
+ This runs the mir tests on {series} on {queue} using {snap}/{track}/{channel} with Mir `base: core{mir-base}`.
+ {detail}
+ project-type: freestyle
+ mir-base: '22'
+ track: 'latest'
+ channel: 'beta'
+ disabled_var:
+ disabled: '{obj:disabled_var}'
+ ppas: ''
+ gfx_drivers: ''
+ gfx_setup: ''
+ reboot: "true" # needs to be a string, as it's passed to bash
+ suite: smoke
+ filter: '*'
+ concurrent: false
+ sequential: false
+ repository: main
+ arch: amd64
+ gschema_override:
+ !include-raw-escape: jobs/sru/gschema.override
+ wait_script:
+ !include-raw-escape: jobs/mir/wait-resource.sh
+ triggers:
+ - pollurl:
+ cron: 'H/10 * * * *'
+ polling-node: 'master'
+ urls:
+ - url: "{jenkins_url}/job/cert-snap-package-data/lastSuccessfulBuild/artifact/snaps.json/*view*/"
+ check-content:
+ - simple: false
+ - json:
+ - '{snap}.{track}.{channel}.{arch}.revision'
+ wrappers:
+ - timeout:
+ timeout: 400
+ fail: true
+ - timestamps
+ builders:
+ - shell:
+ !include-raw: run-mir-track.sh
+ publishers:
+ - post-tasks:
+ - matches:
+ - log-text: "Build timed out"
+ operator: OR
+ - log-text: "Build was aborted"
+ operator: OR
+ script: |
+ testflinger cancel $(cat JOB_ID)
+ - description-setter:
+ regexp: "{snap} Version: (.*)"
+ regexp-for-failed: "{snap} Version: (.*)"
+ description: "\\1"
+ description-for-failed: "\\1"
+ - archive:
+ artifacts: 'artifacts/*'
+ allow-empty: true
+ - email:
+ recipients: michal.sawicz@xxxxxxxxxxxxx alan.griffiths@xxxxxxxxxxxxx
diff --git a/jobs/mir/projects-mir-core/beta-22.yaml b/jobs/mir/projects-mir-core/beta-22.yaml
new file mode 100644
index 0000000..62b9478
--- /dev/null
+++ b/jobs/mir/projects-mir-core/beta-22.yaml
@@ -0,0 +1,204 @@
+# Ubuntu Core 20
+- project: &core20
+ name: mir-22-beta-intel-amd64-core20
+ device: intel-amd64
+ queue: 202008-28166
+ snap: mir-test-tools
+ track: 22
+ channel: beta
+ arch: amd64
+ image: core20
+ provision_data: |
+ provision_data:
+ distro: core20-latest
+ jobs:
+ - '{prefix}-{image}-mir-{suite}-{snap}-{track}-{channel}-{device}'
+- project:
+ <<: *core20
+ name: ubuntu-frame-22-beta-intel-amd64-core20
+ snap: ubuntu-frame
+- project:
+ <<: *core20
+ name: mesa-core22-latest-beta-intel-amd64-core20
+ snap: mesa-core22
+ track: latest
+- project:
+ <<: *core20
+ name: snapd-latest-beta-intel-amd64-core20
+ snap: snapd
+ track: latest
+- project:
+ <<: *core20
+ name: pc-kernel-latest-beta-intel-amd64-core20
+ snap: pc-kernel
+ track: latest
+- project:
+ <<: *core20
+ name: nvidia-core22-beta-nvidia-amd64-core20
+ device: nvidia-amd64
+ queue: 202008-28167
+ snap: nvidia-core22
+ track: latest
+ gfx-setup: # temporary, until this all goes stable
+ _run sudo snap refresh snapd --channel beta;
+ _run sudo snap install nvidia-assemble --channel 20/stable --no-wait;
+ wait_for_snap_complete;
+- project: &core20-armhf
+ <<: *core20
+ name: mir-22-beta-rpi4-armhf-core20
+ device: rpi4-armhf
+ queue: rpi4-gfx
+ arch: armhf
+ provision_data: |
+ provision_data:
+ url: http://cdimage.ubuntu.com/ubuntu-core/20/dangerous-stable/current/ubuntu-core-20-armhf+raspi.img.xz
+- project:
+ <<: *core20-armhf
+ name: ubuntu-frame-22-beta-rpi4-armhf-core20
+ snap: ubuntu-frame
+- project:
+ <<: *core20-armhf
+ name: mesa-core22-latest-beta-rpi4-armhf-core20
+ snap: mesa-core22
+ track: latest
+- project:
+ <<: *core20-armhf
+ name: pi-kernel-latest-beta-rpi4-armhf-core20
+ snap: pi-kernel
+ track: latest
+- project:
+ <<: *core20-armhf
+ name: snapd-latest-beta-rpi4-armhf-core20
+ snap: snapd
+ track: latest
+- project: &core20-arm64
+ <<: *core20
+ name: mir-22-beta-rpi4-arm64-core20
+ device: rpi4-arm64
+ queue: rpi4-gfx
+ arch: arm64
+ provision_data: |
+ provision_data:
+ url: http://cdimage.ubuntu.com/ubuntu-core/20/dangerous-stable/current/ubuntu-core-20-arm64+raspi.img.xz
+- project:
+ <<: *core20-arm64
+ name: ubuntu-frame-22-beta-rpi4-arm64-core20
+ snap: ubuntu-frame
+- project:
+ <<: *core20-arm64
+ name: mesa-core22-latest-beta-rpi4-arm64-core20
+ snap: mesa-core22
+ track: latest
+- project:
+ <<: *core20-arm64
+ name: pi-kernel-latest-beta-rpi4-arm64-core20
+ snap: pi-kernel
+ track: latest
+- project:
+ <<: *core20-arm64
+ name: snapd-latest-beta-rpi4-arm64-core20
+ snap: snapd
+ track: latest
+
+
+# Ubuntu Core 22
+- project: &core22
+ name: mir-22-beta-intel-amd64-core22
+ device: intel-amd64
+ queue: 202008-28166
+ snap: mir-test-tools
+ track: 22
+ channel: beta
+ arch: amd64
+ image: core22
+ provision_data: |
+ provision_data:
+ distro: core22-latest
+ jobs:
+ - '{prefix}-{image}-mir-{suite}-{snap}-{track}-{channel}-{device}'
+- project:
+ <<: *core22
+ name: ubuntu-frame-22-beta-intel-amd64-core22
+ snap: ubuntu-frame
+- project:
+ <<: *core22
+ name: mesa-core22-22-beta-intel-amd64-core22
+ snap: mesa-core22
+ track: latest
+- project:
+ <<: *core22
+ name: pc-kernel-latest-beta-intel-amd64-core22
+ snap: pc-kernel
+ track: latest
+- project:
+ <<: *core22
+ name: snapd-latest-beta-intel-amd64-core22
+ snap: snapd
+ track: latest
+- project:
+ <<: *core22
+ name: nvidia-core22-beta-nvidia-amd64-core22
+ device: nvidia-amd64
+ queue: 202008-28167
+ snap: nvidia-core22
+ track: latest
+ gfx-setup: # temporary, until this all goes stable
+ _run sudo snap refresh snapd --channel beta;
+ _run sudo snap install nvidia-assemble --channel 22/stable --no-wait;
+ wait_for_snap_complete;
+- project: &core22-armhf
+ <<: *core22
+ name: mir-22-beta-rpi4-armhf-core22
+ device: rpi4-armhf
+ queue: rpi4-gfx
+ arch: armhf
+ provision_data: |
+ provision_data:
+ url: http://cdimage.ubuntu.com/ubuntu-core/22/dangerous-stable/current/ubuntu-core-22-armhf+raspi.img.xz
+- project:
+ <<: *core22-armhf
+ name: ubuntu-frame-22-beta-rpi4-armhf-core22
+ snap: ubuntu-frame
+- project:
+ <<: *core22-armhf
+ name: mesa-core22-latest-beta-rpi4-armhf-core22
+ snap: mesa-core22
+ track: latest
+- project:
+ <<: *core22-armhf
+ name: pi-kernel-latest-beta-rpi4-armhf-core22
+ snap: pi-kernel
+ track: latest
+- project:
+ <<: *core22-armhf
+ name: snapd-latest-beta-rpi4-armhf-core22
+ snap: snapd
+ track: latest
+- project: &core22-arm64
+ <<: *core22
+ name: mir-22-beta-rpi4-arm64-core22
+ device: rpi4-arm64
+ queue: rpi4-gfx
+ arch: arm64
+ provision_data: |
+ provision_data:
+ url: http://cdimage.ubuntu.com/ubuntu-core/22/dangerous-stable/current/ubuntu-core-22-arm64+raspi.img.xz
+- project:
+ <<: *core22-arm64
+ name: ubuntu-frame-22-beta-rpi4-arm64-core22
+ snap: ubuntu-frame
+- project:
+ <<: *core22-arm64
+ name: mesa-core22-latest-beta-rpi4-arm64-core22
+ snap: mesa-core22
+ track: latest
+- project:
+ <<: *core22-arm64
+ name: pi-kernel-latest-beta-rpi4-arm64-core22
+ snap: pi-kernel
+ track: latest
+- project:
+ <<: *core22-arm64
+ name: snapd-latest-beta-rpi4-arm64-core22
+ snap: snapd
+ track: latest
diff --git a/jobs/mir/projects-mir-core/candidate-22.yaml b/jobs/mir/projects-mir-core/candidate-22.yaml
new file mode 100644
index 0000000..6777804
--- /dev/null
+++ b/jobs/mir/projects-mir-core/candidate-22.yaml
@@ -0,0 +1,144 @@
+# Ubuntu Core 20
+- project: &core20
+ name: mir-22-candidate-intel-amd64-core20
+ device: intel-amd64
+ queue: 202008-28166
+ snap: mir-test-tools
+ track: 22
+ channel: candidate
+ arch: amd64
+ image: core20
+ provision_data: |
+ provision_data:
+ distro: core20-latest
+ jobs:
+ - '{prefix}-{image}-mir-{suite}-{snap}-{track}-{channel}-{device}'
+- project:
+ <<: *core20
+ name: ubuntu-frame-22-candidate-intel-amd64-core20
+ snap: ubuntu-frame
+- project:
+ <<: *core20
+ name: mesa-core22-latest-candidate-intel-amd64-core20
+ snap: mesa-core22
+ track: latest
+- project:
+ <<: *core20
+ name: nvidia-core22-candidate-nvidia-amd64-core20
+ device: nvidia-amd64
+ queue: 202008-28167
+ snap: nvidia-core22
+ track: latest
+ gfx-setup: # temporary, until this all goes stable
+ _run sudo snap refresh snapd --channel candidate;
+ _run sudo snap install nvidia-assemble --channel 20/stable --no-wait;
+ wait_for_snap_complete;
+- project: &core20-armhf
+ <<: *core20
+ name: mir-22-candidate-rpi4-armhf-core20
+ device: rpi4-armhf
+ queue: rpi4-gfx
+ arch: armhf
+ provision_data: |
+ provision_data:
+ url: http://cdimage.ubuntu.com/ubuntu-core/20/dangerous-stable/current/ubuntu-core-20-armhf+raspi.img.xz
+- project:
+ <<: *core20-armhf
+ name: ubuntu-frame-22-candidate-rpi4-armhf-core20
+ snap: ubuntu-frame
+- project:
+ <<: *core20-armhf
+ name: mesa-core22-latest-candidate-intel-armhf-core20
+ snap: mesa-core22
+ track: latest
+- project: &core20-arm64
+ <<: *core20
+ name: mir-22-candidate-rpi4-arm64-core20
+ device: rpi4-arm64
+ queue: rpi4-gfx
+ arch: arm64
+ provision_data: |
+ provision_data:
+ url: http://cdimage.ubuntu.com/ubuntu-core/20/dangerous-stable/current/ubuntu-core-20-arm64+raspi.img.xz
+- project:
+ <<: *core20-arm64
+ name: ubuntu-frame-22-candidate-rpi4-arm64-core20
+ snap: ubuntu-frame
+- project:
+ <<: *core20-arm64
+ name: mesa-core22-latest-candidate-intel-arm64-core20
+ snap: mesa-core22
+ track: latest
+
+
+# Ubuntu Core 22
+- project: &core22
+ name: mir-22-candidate-intel-amd64-core22
+ device: intel-amd64
+ queue: 202008-28166
+ snap: mir-test-tools
+ track: 22
+ channel: candidate
+ arch: amd64
+ image: core22
+ provision_data: |
+ provision_data:
+ distro: core22-latest
+ jobs:
+ - '{prefix}-{image}-mir-{suite}-{snap}-{track}-{channel}-{device}'
+- project:
+ <<: *core22
+ name: ubuntu-frame-22-candidate-intel-amd64-core22
+ snap: ubuntu-frame
+- project:
+ <<: *core22
+ name: mesa-core22-22-candidate-intel-amd64-core22
+ snap: mesa-core22
+ track: latest
+- project:
+ <<: *core22
+ name: nvidia-core22-candidate-nvidia-amd64-core22
+ device: nvidia-amd64
+ queue: 202008-28167
+ snap: nvidia-core22
+ track: latest
+ gfx-setup: # temporary, until this all goes stable
+ _run sudo snap refresh snapd --channel candidate;
+ _run sudo snap install nvidia-assemble --channel 22/stable --no-wait;
+ wait_for_snap_complete;
+- project: &core22-armhf
+ <<: *core22
+ name: mir-22-candidate-rpi4-armhf-core22
+ device: rpi4-armhf
+ queue: rpi4-gfx
+ arch: armhf
+ provision_data: |
+ provision_data:
+ url: http://cdimage.ubuntu.com/ubuntu-core/22/dangerous-stable/current/ubuntu-core-22-armhf+raspi.img.xz
+- project:
+ <<: *core22-armhf
+ name: ubuntu-frame-22-candidate-rpi4-armhf-core22
+ snap: ubuntu-frame
+- project:
+ <<: *core22-armhf
+ name: mesa-core22-latest-candidate-rpi4-armhf-core22
+ snap: mesa-core22
+ track: latest
+- project: &core22-arm64
+ <<: *core22
+ name: mir-22-candidate-rpi4-arm64-core22
+ device: rpi4-arm64
+ queue: rpi4-gfx
+ arch: arm64
+ provision_data: |
+ provision_data:
+ url: http://cdimage.ubuntu.com/ubuntu-core/22/dangerous-stable/current/ubuntu-core-22-arm64+raspi.img.xz
+- project:
+ <<: *core22-arm64
+ name: ubuntu-frame-22-candidate-rpi4-arm64-core22
+ snap: ubuntu-frame
+- project:
+ <<: *core22-arm64
+ name: mesa-core22-latest-candidate-rpi4-arm64-core22
+ snap: mesa-core22
+ track: latest
diff --git a/jobs/mir/projects-mir-core/edge-22.yaml b/jobs/mir/projects-mir-core/edge-22.yaml
new file mode 100644
index 0000000..18f0aeb
--- /dev/null
+++ b/jobs/mir/projects-mir-core/edge-22.yaml
@@ -0,0 +1,91 @@
+# Ubuntu Core 20
+- project: &core20
+ name: mir-22-edge-intel-amd64-core20
+ device: intel-amd64
+ queue: 202008-28166
+ snap: mir-test-tools
+ track: 22
+ channel: edge
+ arch: amd64
+ image: core20
+ provision_data: |
+ provision_data:
+ distro: core20-latest
+ jobs:
+ - '{prefix}-{image}-mir-{suite}-{snap}-{track}-{channel}-{device}'
+- project:
+ <<: *core20
+ name: ubuntu-frame-22-edge-intel-amd64-core20
+ snap: ubuntu-frame
+- project: &core20-armhf
+ <<: *core20
+ name: mir-22-edge-rpi4-armhf-core20
+ device: rpi4-armhf
+ queue: rpi4-gfx
+ arch: armhf
+ provision_data: |
+ provision_data:
+ url: http://cdimage.ubuntu.com/ubuntu-core/20/dangerous-stable/current/ubuntu-core-20-armhf+raspi.img.xz
+- project:
+ <<: *core20-armhf
+ name: ubuntu-frame-22-edge-rpi4-armhf-core20
+ snap: ubuntu-frame
+- project: &core20-arm64
+ <<: *core20
+ name: mir-22-edge-rpi4-arm64-core20
+ device: rpi4-arm64
+ queue: rpi4-gfx
+ arch: arm64
+ provision_data: |
+ provision_data:
+ url: http://cdimage.ubuntu.com/ubuntu-core/20/dangerous-stable/current/ubuntu-core-20-arm64+raspi.img.xz
+- project:
+ <<: *core20-arm64
+ name: ubuntu-frame-22-edge-rpi4-arm64-core20
+ snap: ubuntu-frame
+
+# Ubuntu Core 22
+- project: &core22
+ name: mir-22-edge-intel-amd64-core22
+ device: intel-amd64
+ queue: 202008-28166
+ snap: mir-test-tools
+ track: 22
+ channel: edge
+ arch: amd64
+ image: core22
+ provision_data: |
+ provision_data:
+ distro: core22-latest
+ jobs:
+ - '{prefix}-{image}-mir-{suite}-{snap}-{track}-{channel}-{device}'
+- project:
+ <<: *core22
+ name: ubuntu-frame-22-edge-intel-amd64-core22
+ snap: ubuntu-frame
+- project: &core22-armhf
+ <<: *core22
+ name: mir-22-edge-rpi4-armhf-core22
+ device: rpi4-armhf
+ queue: rpi4-gfx
+ arch: armhf
+ provision_data: |
+ provision_data:
+ url: http://cdimage.ubuntu.com/ubuntu-core/22/dangerous-stable/current/ubuntu-core-22-armhf+raspi.img.xz
+- project:
+ <<: *core22-armhf
+ name: ubuntu-frame-22-edge-rpi4-armhf-core22
+ snap: ubuntu-frame
+- project: &core22-arm64
+ <<: *core22
+ name: mir-22-edge-rpi4-arm64-core22
+ device: rpi4-arm64
+ queue: rpi4-gfx
+ arch: arm64
+ provision_data: |
+ provision_data:
+ url: http://cdimage.ubuntu.com/ubuntu-core/22/dangerous-stable/current/ubuntu-core-22-arm64+raspi.img.xz
+- project:
+ <<: *core22-arm64
+ name: ubuntu-frame-22-edge-rpi4-arm64-core22
+ snap: ubuntu-frame
diff --git a/jobs/mir/projects/beta-22.yaml b/jobs/mir/projects/beta-22.yaml
new file mode 100644
index 0000000..9280bbf
--- /dev/null
+++ b/jobs/mir/projects/beta-22.yaml
@@ -0,0 +1,134 @@
+# Focal
+- project: &focal
+ name: focal-mir-22-beta-intel-gfx
+ queue: intel-gfx
+ series: focal
+ image: focal
+ snap: mir-test-tools
+ track: 22
+ channel: beta
+ jobs:
+ - '{prefix}-{series}-mir-{suite}-{snap}-{track}-{channel}-{queue}'
+- project: &focal-nvidia-470
+ <<: *focal
+ name: focal-mir-22-beta-nvidia-gfx
+ queue: 201405-15065
+ snap: mir-test-tools
+ # The hardware isn't supported by newer drivers
+ gfx_drivers: --no-install-recommends libgles2 nvidia-driver-470
+ gfx_setup: &nvidia-setup |
+ echo 'GRUB_CMDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1"' |sudo tee /etc/default/grub.d/99-nvidia.cfg
+ sudo update-grub
+- project:
+ <<: *focal-nvidia-470
+ name: focal-mesa-core22-latest-beta-nvidia-gfx
+ snap: mesa-core22
+ track: "latest"
+- project:
+ <<: *focal
+ name: focal-nvidia-core22-latest-beta-nvidia-gfx
+ queue: 202008-28167
+ snap: nvidia-core22
+ track: "latest"
+ # The version number here needs to correspond to nvidia-core22
+ gfx_drivers: --no-install-recommends libgles2 nvidia-driver-515
+ gfx_setup: *nvidia-setup
+- project:
+ <<: *focal
+ name: focal-ubuntu-frame-22-beta-intel-gfx
+ queue: intel-gfx
+ snap: ubuntu-frame
+- project:
+ <<: *focal
+ name: focal-mesa-core22-latest-beta-intel-gfx
+ queue: intel-gfx
+ snap: mesa-core22
+ track: "latest"
+
+
+# Jammy
+- project: &jammy
+ name: jammy-mir-22-beta-intel-gfx
+ queue: intel-gfx
+ series: jammy
+ image: jammy
+ snap: mir-test-tools
+ track: 22
+ channel: beta
+ jobs:
+ - '{prefix}-{series}-mir-{suite}-{snap}-{track}-{channel}-{queue}'
+- project: &jammy-nvidia-470
+ <<: *jammy
+ name: jammy-mir-22-beta-nvidia-gfx
+ queue: 201405-15065
+ snap: mir-test-tools
+ # The hardware isn't supported by newer drivers
+ gfx_drivers: --no-install-recommends libgles2 nvidia-driver-470
+ gfx_setup: *nvidia-setup
+- project:
+ <<: *jammy-nvidia-470
+ name: jammy-mesa-core22-latest-beta-nvidia-gfx
+ snap: mesa-core22
+ track: "latest"
+- project: &jammy-nvidia-515
+ <<: *jammy
+ name: jammy-nvidia-core22-latest-beta-nvidia-gfx
+ queue: 202008-28167
+ snap: nvidia-core22
+ track: "latest"
+ # The version number here needs to correspond to nvidia-core22
+ gfx_drivers: --no-install-recommends libgles2 nvidia-driver-515
+ gfx_setup: *nvidia-setup
+- project:
+ <<: *jammy
+ name: jammy-ubuntu-frame-22-beta-intel-gfx
+ queue: intel-gfx
+ snap: ubuntu-frame
+- project:
+ <<: *jammy
+ name: jammy-mesa-core22-latest-beta-intel-gfx
+ queue: intel-gfx
+ snap: mesa-core22
+ track: "latest"
+
+
+# Jammy riscv64
+- project: &jammy-riscv64
+ <<: *jammy
+ name: jammy-mir-22-beta-unmatched-gfx
+ queue: unmatched-gfx
+ arch: riscv64
+ image: http://cdimage.ubuntu.com/releases/jammy/release/ubuntu-22.04.2-preinstalled-server-riscv64+unmatched.img.xz
+ reboot: "false"
+ snap: mir-test-tools
+- project:
+ <<: *jammy-riscv64
+ name: jammy-mesa-core22-latest-beta-unmatched-gfx
+ snap: mesa-core22
+ track: "latest"
+- project:
+ <<: *jammy-riscv64
+ name: jammy-ubuntu-frame-22-beta-unmatched-gfx
+ snap: ubuntu-frame
+
+
+# Performance
+- project:
+ <<: *jammy
+ name: jammy-mesa-core22-performance-beta-intel-gfx
+ queue: intel-gfx
+ suite: performance
+- project:
+ <<: *jammy-nvidia-515
+ name: jammy-mesa-core22-performance-beta-nvidia-gfx
+ snap: mesa-core22
+ suite: performance
+ # https://github.com/MirServer/mir/issues/2887
+ # https://github.com/MirServer/mir/issues/2462
+ filter: -Hosted*:*Xwayland.windowed
+- project:
+ <<: *jammy-nvidia-515
+ name: jammy-nvidia-core22-performance-beta-nvidia-gfx
+ snap: nvidia-core22
+ suite: performance
+ filter: -Hosted*:*Xwayland.windowed
diff --git a/jobs/mir/projects/candidate-22.yaml b/jobs/mir/projects/candidate-22.yaml
new file mode 100644
index 0000000..4294485
--- /dev/null
+++ b/jobs/mir/projects/candidate-22.yaml
@@ -0,0 +1,111 @@
+# Focal
+- project: &focal
+ name: focal-mir-22-candidate-intel-gfx
+ queue: intel-gfx
+ series: focal
+ image: focal
+ snap: mir-test-tools
+ track: 22
+ channel: candidate
+ jobs:
+ - '{prefix}-{series}-mir-{suite}-{snap}-{track}-{channel}-{queue}'
+- project: &focal-nvidia-470
+ <<: *focal
+ name: focal-mir-22-candidate-nvidia-gfx
+ queue: 201405-15065
+ snap: mir-test-tools
+ # The hardware isn't supported by newer drivers
+ gfx_drivers: --no-install-recommends libgles2 nvidia-driver-470
+ gfx_setup: &nvidia-setup |
+ echo 'GRUB_CMDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1"' |sudo tee /etc/default/grub.d/99-nvidia.cfg
+ sudo update-grub
+- project:
+ <<: *focal-nvidia-470
+ name: focal-mesa-core22-latest-candidate-nvidia-gfx
+ snap: mesa-core22
+ track: "latest"
+- project:
+ <<: *focal
+ name: focal-nvidia-core22-latest-candidate-nvidia-gfx
+ queue: 202008-28167
+ snap: nvidia-core22
+ track: "latest"
+ # The version number here needs to correspond to nvidia-core22
+ gfx_drivers: --no-install-recommends libgles2 nvidia-driver-515
+ gfx_setup: *nvidia-setup
+- project:
+ <<: *focal
+ name: focal-ubuntu-frame-22-candidate-intel-gfx
+ queue: intel-gfx
+ snap: ubuntu-frame
+- project:
+ <<: *focal
+ name: focal-mesa-core22-latest-candidate-intel-gfx
+ queue: intel-gfx
+ snap: mesa-core22
+ track: "latest"
+
+
+# Jammy
+- project: &jammy
+ name: jammy-mir-22-candidate-intel-gfx
+ queue: intel-gfx
+ series: jammy
+ image: jammy
+ snap: mir-test-tools
+ track: 22
+ channel: candidate
+ jobs:
+ - '{prefix}-{series}-mir-{suite}-{snap}-{track}-{channel}-{queue}'
+- project: &jammy-nvidia-470
+ <<: *jammy
+ name: jammy-mir-22-candidate-nvidia-gfx
+ queue: 201405-15065
+ snap: mir-test-tools
+ # The hardware isn't supported by newer drivers
+ gfx_drivers: --no-install-recommends libgles2 nvidia-driver-470
+ gfx_setup: *nvidia-setup
+- project:
+ <<: *jammy-nvidia-470
+ name: jammy-mesa-core22-latest-candidate-nvidia-gfx
+ snap: mesa-core22
+ track: "latest"
+- project:
+ <<: *jammy
+ name: jammy-nvidia-core22-latest-candidate-nvidia-gfx
+ queue: 202008-28167
+ snap: nvidia-core22
+ track: "latest"
+ # The version number here needs to correspond to nvidia-core22
+ gfx_drivers: --no-install-recommends libgles2 nvidia-driver-515
+ gfx_setup: *nvidia-setup
+- project:
+ <<: *jammy
+ name: jammy-ubuntu-frame-22-candidate-intel-gfx
+ queue: intel-gfx
+ snap: ubuntu-frame
+- project:
+ <<: *jammy
+ name: jammy-mesa-core22-latest-candidate-intel-gfx
+ queue: intel-gfx
+ snap: mesa-core22
+ track: "latest"
+
+# Jammy riscv64
+- project: &jammy-riscv64
+ <<: *jammy
+ name: jammy-mir-candidate-unmatched-gfx
+ queue: unmatched-gfx
+ arch: riscv64
+ image: http://cdimage.ubuntu.com/releases/jammy/release/ubuntu-22.04.2-preinstalled-server-riscv64+unmatched.img.xz
+ reboot: "false"
+ snap: mir-test-tools
+- project:
+ <<: *jammy-riscv64
+ name: jammy-mesa-core22-latest-candidate-unmatched-gfx
+ snap: mesa-core22
+ track: "latest"
+- project:
+ <<: *jammy-riscv64
+ name: jammy-ubuntu-frame-candidate-unmatched-gfx
+ snap: ubuntu-frame
diff --git a/jobs/mir/projects/desktop-performance.yaml b/jobs/mir/projects/desktop-performance.yaml
index fad0652..8b3640c 100644
--- a/jobs/mir/projects/desktop-performance.yaml
+++ b/jobs/mir/projects/desktop-performance.yaml
@@ -16,7 +16,9 @@
snap: mir-test-tools
channel: edge
suite: performance
- filter: -*Xwayland*:Hosted*
+ # https://github.com/MirServer/mir/issues/2887
+ # https://github.com/MirServer/mir/issues/2462
+ filter: -Hosted*:*Xwayland.windowed
gfx_drivers: --no-install-recommends libgles2 nvidia-driver-440
gfx_setup: |
echo 'GRUB_CMDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1"' |sudo tee /etc/default/grub.d/99-nvidia.cfg
@@ -31,6 +33,7 @@
snap: mir-kiosk
channel: edge
suite: performance
+ # Only run Hosted* tests so we can see doubly-nested performance
filter: Hosted*
jobs:
- '{prefix}-{series}-mir-{suite}-{snap}-{channel}-{queue}'
@@ -42,6 +45,7 @@
snap: ubuntu-frame
channel: edge
suite: performance
+ # Only run Hosted* tests so we can see doubly-nested performance
filter: Hosted*
jobs:
- '{prefix}-{series}-mir-{suite}-{snap}-{channel}-{queue}'
diff --git a/jobs/mir/projects/edge-22.yaml b/jobs/mir/projects/edge-22.yaml
new file mode 100644
index 0000000..fe4d340
--- /dev/null
+++ b/jobs/mir/projects/edge-22.yaml
@@ -0,0 +1,82 @@
+# Focal
+- project: &focal
+ name: focal-mir-22-edge-intel-gfx
+ queue: intel-gfx
+ series: focal
+ image: focal
+ snap: mir-test-tools
+ track: 22
+ channel: edge
+ jobs:
+ - '{prefix}-{series}-mir-{suite}-{snap}-{track}-{channel}-{queue}'
+- project:
+ <<: *focal
+ name: focal-mir-22-edge-nvidia-gfx
+ queue: 201405-15065
+ snap: mir-test-tools
+ # The hardware isn't supported by newer drivers
+ gfx_drivers: --no-install-recommends libgles2 nvidia-driver-470
+ gfx_setup: &nvidia-setup |
+ echo 'GRUB_CMDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1"' |sudo tee /etc/default/grub.d/99-nvidia.cfg
+ sudo update-grub
+- project:
+ <<: *focal
+ name: focal-ubuntu-frame-22-edge-intel-gfx
+ queue: intel-gfx
+ snap: ubuntu-frame
+
+
+# Jammy
+- project: &jammy
+ name: jammy-mir-22-edge-intel-gfx
+ queue: intel-gfx
+ series: jammy
+ image: jammy
+ snap: mir-test-tools
+ track: 22
+ channel: edge
+ jobs:
+ - '{prefix}-{series}-mir-{suite}-{snap}-{track}-{channel}-{queue}'
+- project: &jammy-nvidia-515
+ <<: *jammy
+ name: jammy-mir-22-edge-nvidia-gfx
+ queue: 202008-28167
+ snap: mir-test-tools
+ gfx_drivers: --no-install-recommends libgles2 nvidia-driver-515
+ gfx_setup: *nvidia-setup
+- project:
+ <<: *jammy
+ name: jammy-ubuntu-frame-22-edge-intel-gfx
+ queue: intel-gfx
+ snap: ubuntu-frame
+- project:
+ <<: *jammy
+ name: jammy-mir-edge-unmatched-gfx
+ queue: unmatched-gfx
+ arch: riscv64
+ image: http://cdimage.ubuntu.com/releases/jammy/release/ubuntu-22.04.2-preinstalled-server-riscv64+unmatched.img.xz
+ reboot: "false"
+ snap: mir-test-tools
+
+
+# Performance
+- project:
+ <<: *jammy
+ name: jammy-mir-22-performance-edge-intel-gfx
+ queue: intel-gfx
+ suite: performance
+- project:
+ <<: *jammy-nvidia-515
+ name: jammy-mir-22-performance-edge-nvidia-gfx
+ suite: performance
+ # https://github.com/MirServer/mir/issues/2887
+ # https://github.com/MirServer/mir/issues/2462
+ filter: -Hosted*:*Xwayland.windowed
+- project:
+ <<: *jammy
+ name: jammy-ubuntu-frame-22-performance-edge-intel-gfx
+ queue: intel-gfx
+ snap: ubuntu-frame
+ suite: performance
+ # Only run Hosted* tests so we can see doubly-nested performance
+ filter: Hosted*
diff --git a/jobs/mir/run-core-mir-track.sh b/jobs/mir/run-core-mir-track.sh
new file mode 100644
index 0000000..b626629
--- /dev/null
+++ b/jobs/mir/run-core-mir-track.sh
@@ -0,0 +1,185 @@
+#!/bin/bash
+set +e
+set -x
+
+TRACK="{track}"
+TRACK="${{TRACK:-latest}}"
+REV=$(curl -s -H "Snap-Device-Series: 16" -H "Snap-Device-Store: {store}" "{url}" | jq --arg TRACK "$TRACK" '."channel-map" | .[] | select(.channel.risk=="{channel}") |select(.channel.track==$TRACK).revision')
+VERSION=$(curl -s -H "Snap-Device-Series: 16" -H "Snap-Device-Store: {store}" "{url}" | jq --arg TRACK "$TRACK" '."channel-map" | .[] | select(.channel.risk=="{channel}") |select(.channel.track==$TRACK).version')
+cat > job.yaml <<EOF
+ job_queue: {queue}
+ global_timeout: 18000
+ output_timeout: 1200
+ {provision_data}
+ test_data:
+ {test_data}
+ test_cmds: |
+ #!/bin/bash
+ set -x
+ # convenience functions
+ #
+ SSH_OPTS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ServerAliveInterval=30 -o ServerAliveCountMax=3"
+ _put() {{
+ scp \$SSH_OPTS \$1 {user}@\$DEVICE_IP:\$2
+ }}
+ _get() {{
+ scp \$SSH_OPTS {user}@\$DEVICE_IP:\$1 \$2
+ }}
+ _run() {{
+ ssh \$SSH_OPTS {user}@\$DEVICE_IP "\$@"
+ }}
+ wait_for_ssh() {{
+ loopcnt=0
+ until timeout 10 ssh \$SSH_OPTS {user}@\$DEVICE_IP /bin/true
+ do
+ echo "Testing to see if system is back up"
+ loopcnt=\$((loopcnt+1))
+ if [ \$loopcnt -gt 20 ]; then
+ echo "ERROR: Timeout waiting for ssh!"
+ exit 1
+ fi
+ sleep 30
+ done
+ }}
+ wait_for_snap_complete() {{
+ # wait for snapd to realize it's Doing stuff
+ sleep 5
+ loopcnt=0
+ until [ -z "\$(ssh \$SSH_OPTS \$DEVICE_IP 'sudo snap changes | grep Doing' )" ] && [ "\$(ssh \$SSH_OPTS \$DEVICE_IP echo true)" = "true" ]
+ do
+ loopcnt=\$((loopcnt+1))
+ if [ \$loopcnt -gt 40 ]; then
+ echo "ERROR: Timeout waiting for snap install!"
+ exit 1
+ fi
+ sleep 30
+ done
+ }}
+ _run_retry() {{
+ # Retry running a command if any failure occurs
+ loopcnt=0
+ _run "\$@"
+ RC="\$?"
+ while [ \$RC -ne 0 ]
+ do
+ loopcnt=\$((loopcnt+1))
+ if [ \$loopcnt -gt 20 ]; then
+ _run sudo cat /var/lib/snapd/state.json
+ _run sudo journalctl -u snapd.service
+ echo "ERROR: retry limit reached!"
+ exit 1
+ fi
+ sleep 30
+ _run "\$@"
+ RC="\$?"
+ done
+ }}
+
+ # Some devices need a bit of time at the beginning before starting
+ sleep {starting_sleep}
+ wait_for_ssh
+ # Wait for a valid serial assertion before starting
+ if [ "{has-serial-assertion}" = "True" ]; then
+ _run_retry "snap known serial |grep serial"
+ fi
+
+ wait_for_snap_complete
+
+ # debug snapd connections
+ _run sudo mkdir /etc/systemd/system/snapd.service.d/
+ echo "[Service]" | _run sudo tee /etc/systemd/system/snapd.service.d/override.conf
+ echo "Environment=SNAPD_DEBUG=1" | _run sudo tee -a /etc/systemd/system/snapd.service.d/override.conf
+ _run sudo systemctl daemon-reload
+ _run sudo systemctl restart snapd
+ # end debug
+
+ _run_retry sudo snap refresh
+ wait_for_snap_complete
+
+ # reboot for OS refreshes
+ _run sudo reboot
+ wait_for_snap_complete
+
+ if [ "{snap}" == "mir-test-tools" ]; then
+ _run_retry sudo snap install {snap} --channel={mir-base}/{channel} --no-wait {extra_args}
+ elif [[ '{snap} == ubuntu-frame' ]]; then
+ _run_retry sudo "snap \$( _run snap list {snap} >&2 && echo refresh --ignore-validation || echo install ) {snap} --channel={track}/{channel} --no-wait {extra_args}"
+ _run_retry sudo snap install mir-test-tools --channel={mir-base}/{channel} --no-wait
+ else
+ _run_retry sudo "snap \$( _run snap list {snap} >&2 && echo refresh --ignore-validation || echo install ) {snap} --channel={track}/{channel} --no-wait {extra_args}"
+ _run_retry sudo snap install mir-test-tools --channel={mir-base}/stable --no-wait
+ fi
+ wait_for_snap_complete
+
+ if [ -n '{gfx-setup}' ]; then
+ true; {gfx-setup}
+ fi
+
+ if [ '{mir-base}' == 22 ]; then
+ # temporary, until the auto-connects are in place
+ # https://forum.snapcraft.io/t/global-auto-connect-request-mesa-core22-graphics-core22/34455
+ if [ '{snap}' == nvidia-core22 ]; then
+ _run sudo snap disconnect mir-test-tools:graphics-core22
+ _run sudo snap connect mir-test-tools:graphics-core22 nvidia-core22
+ else
+ _run sudo snap connect mir-test-tools:graphics-core22 mesa-core22
+ _run sudo snap connect {snap}:graphics-core22 mesa-core22 || true
+ fi
+ fi
+
+ if [ "{snap}" == "mir-kiosk" -o "{snap}" == "ubuntu-frame" ]; then
+ TEST_ENV=(MIR_SERVER_WAYLAND_HOST=wayland-0)
+ if ! _run sudo timeout 30 sh -c '"while ! [ -S /run/user/0/wayland-0 ]; do sleep 5; done"'; then
+ echo "ERROR: {snap} did not come up"
+ exit 1
+ fi
+ fi
+
+ _run_retry sudo snap disconnect mir-test-tools:x11
+
+ wait_for_snap_complete
+
+ sleep 30
+ # I see some weird problems even though the earlier one came back good
+ wait_for_snap_complete
+
+ mkdir -p artifacts
+ echo "Snaps currently installed:" | tee artifacts/snaplist.txt
+ _run snap list |tail -n +2 |awk '{{ print \$1" Version: "\$2"-"\$3 }}'
+ _run snap list >> artifacts/snaplist.txt
+ _run sudo journalctl -u snap.{snap}.daemon.service > artifacts/{snap}.log
+
+ echo Starting
+
+ (_run sudo env "\${{TEST_ENV[@]}}" snap run mir-test-tools.{suite}-test --gtest_filter={filter} --gtest_output=xml:/var/snap/mir-test-tools/current/mir.xml && echo "OUTCOME: PASS" || echo "OUTCOME: FAIL") | tee artifacts/mir.log
+ _get /var/snap/mir-test-tools/current/mir.xml artifacts
+ _run sudo snap logs --abs-time -n all {snap} > artifacts/{snap}.log
+ _run sudo snap run --shell mir-test-tools.{suite}-test -c 'cp\\ /tmp/*.log\\ \\\$SNAP_DATA'
+ _get /var/snap/mir-test-tools/current/*.log artifacts
+ grep -q "OUTCOME: PASS" artifacts/mir.log || exit 1
+EOF
+#Remove previous venv
+rm -rf env
+cat <<EOF >build-env.sh
+{build_env}
+EOF
+. build-env.sh
+git -C hwcert-jenkins-tools pull -q || (rm -rf hwcert-jenkins-tools && git clone -q https://git.launchpad.net/hwcert-jenkins-tools)
+JOB_ID=$(testflinger submit -q job.yaml)
+echo "JOB_ID: $JOB_ID"
+echo "$JOB_ID" > JOB_ID
+testflinger poll $JOB_ID
+
+TEST_STATUS=$(testflinger results $JOB_ID |jq -r .test_status)
+
+rm -rf artifacts*
+#retry getting the artifacts after a delay if it fails
+testflinger artifacts $JOB_ID || (sleep 30 && testflinger artifacts $JOB_ID)
+tar -xzf artifacts.tgz
+
+mkdir -p artifacts
+echo Jenkins build details: $BUILD_URL > artifacts/summary
+echo >> artifacts/summary
+cat artifacts/snaplist.txt >> artifacts/summary
+echo "Test exit status: $TEST_STATUS"
+exit $TEST_STATUS
diff --git a/jobs/mir/run-mir-track.sh b/jobs/mir/run-mir-track.sh
new file mode 100644
index 0000000..af5df68
--- /dev/null
+++ b/jobs/mir/run-mir-track.sh
@@ -0,0 +1,208 @@
+#!/bin/bash
+set +e
+set -x
+
+[ "{no_run}" = "True" ] && exit
+
+cat > job.yaml <<EOF
+ job_queue: {queue}
+ global_timeout: 18000
+ output_timeout: 1200
+ provision_data:
+ distro: {image}
+ url: {image}
+ test_data:
+ {test_data}
+ test_cmds: |
+ #!/bin/bash
+ # convenience functions
+ #
+ SSH_OPTS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
+ _put() {{
+ scp \$SSH_OPTS \$1 {user}@\$DEVICE_IP:\$2
+ }}
+ _get() {{
+ scp \$SSH_OPTS {user}@\$DEVICE_IP:\$1 \$2
+ }}
+ _run() {{
+ ssh -t \$SSH_OPTS {user}@\$DEVICE_IP "\$@"
+ }}
+ wait_for_ssh() {{
+ loopcnt=0
+ until timeout 120 ssh \$SSH_OPTS {user}@\$DEVICE_IP /bin/true
+ do
+ echo "Testing to see if system is back up"
+ loopcnt=\$((loopcnt+1))
+ if [ \$loopcnt -gt 40 ]; then
+ echo "ERROR: Timeout waiting for ssh!"
+ exit 1
+ fi
+ sleep 30
+ done
+ }}
+ if [ "{no_apt_cron}" == "True" ]; then
+ echo "no_apt_cron option is on. Block the apt cron check."
+ _run sudo rm /etc/cron.daily/apt-compat
+ echo "Stop apt daily service..."
+ _run sudo systemctl stop apt-daily.timer
+ _run sudo systemctl stop apt-daily.service
+ _run sudo systemctl kill --kill-who=all apt-daily.service
+ echo "Stopped apt-daily.timer and apt-daily.service"
+ fi
+
+ # Install dependencies in the host environment
+ sudo apt-get -qq update
+
+ # waiting for apt and dpkg process resource lock
+ # instead of killing process
+ cat <<EOF > wait-resource.sh
+ {wait_script}
+ EOF
+ chmod +x wait-resource.sh
+ _put wait-resource.sh /home/ubuntu
+
+ # don't lock the screen or suspend the system
+ # so screen-related tests won't fail
+ cat <<EOF > certification.gschema.override
+ {gschema_override}
+ EOF
+
+ _run sudo /home/ubuntu/wait-resource.sh
+ _run sudo apt-get purge -y appstream
+
+ echo "updating the system..."
+ _run sudo apt-get -qq update
+ _run sudo /home/ubuntu/wait-resource.sh
+ _run sudo DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -o Dpkg::Options::="--force-confdef" -y --force-yes
+
+ wait_for_ssh
+ cat << XEOF > setup.sh
+ for ppa in {ppas}; do
+ sudo add-apt-repository -y --update ppa:\\\$ppa
+ done
+ [ -n '{gfx_drivers}' ] && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y {gfx_drivers}
+ {gfx_setup}
+
+ if [ '{snap}' == 'mir-test-tools' ]; then
+ sudo snap install mir-test-tools --channel={mir-base}/{channel}
+ elif [[ '{snap}' == ubuntu-frame ]]; then
+ sudo sh -c "snap \\\$( snap list {snap} >&2 && echo refresh --ignore-validation || echo install ) {snap} --channel={track}/{channel}"
+ sudo snap install mir-test-tools --channel={mir-base}/{channel}
+ else
+ sudo sh -c "snap \\\$( snap list {snap} >&2 && echo refresh --ignore-validation || echo install ) {snap} --channel={track}/{channel}"
+ sudo snap install mir-test-tools --channel {mir-base}/stable
+ fi
+
+ if [ '{mir-base}' == 22 ]; then
+ # temporary, until the auto-connects are in place
+ # https://forum.snapcraft.io/t/global-auto-connect-request-mesa-core22-graphics-core22/34455
+ if [ '{snap}' == nvidia-core22 ]; then
+ sudo snap connect mir-test-tools:graphics-core22 nvidia-core22
+ else
+ sudo snap connect mir-test-tools:graphics-core22 mesa-core22
+ sudo snap connect {snap}:graphics-core22 mesa-core22 || true
+ fi
+ fi
+
+ sudo snap connect mir-test-tools:login-session-control
+ sudo snap disconnect mir-test-tools:x11
+ if [ '{snap}' == 'ubuntu-frame' ]; then
+ sudo snap connect {snap}:login-session-control
+ fi
+
+ cat << EOF > override.conf
+ [Service]
+ ExecStart=
+ ExecStart=-/sbin/agetty --autologin ubuntu --noclear %I \\\$TERM
+ EOF
+ sudo mkdir -p /etc/systemd/system/getty@tty3.service.d
+ sudo cp override.conf /etc/systemd/system/getty@tty3.service.d/override.conf
+ sudo systemctl daemon-reload
+ cat << EOF >> \$HOME/.bashrc
+ if [ "\\\\\\\$XDG_VTNR" == 3 ]; then
+ set -x
+ exec &> /tmp/mir-bashrc.log
+
+ if [ ! -f /tmp/mir-done ]; then
+ loginctl activate
+
+ if [ '{snap}' == 'ubuntu-frame' ]; then
+ echo "Spawning {snap}..."
+ TEST_ENV=(MIR_SERVER_WAYLAND_HOST=wayland-0)
+ {snap} &> /tmp/{snap}.log &
+ if ! timeout 10 sh -c "until [ -S \\\\\\\$XDG_RUNTIME_DIR/wayland-0 ]; do sleep 1; done"; then
+ echo "ERROR {snap} failed to create its socket." | tee -a /tmp/{snap}.log
+ touch /tmp/mir-done
+ exit 1
+ fi
+ echo "{snap} is up."
+ fi
+
+ echo "Starting tests..."
+ (env "\\\\\\\${{TEST_ENV[@]}}" mir-test-tools.{suite}-test --gtest_filter={filter} --gtest_output=xml:snap/mir-test-tools/current/mir.xml && echo "OUTCOME: PASS" || echo "OUTCOME: FAIL") &> /tmp/mir.log
+
+ echo "Tests done."
+ touch /tmp/mir-done
+
+ pkill miral-kiosk
+ fi
+ fi
+ EOF
+ XEOF
+ _put setup.sh /home/ubuntu
+ _run bash -e /home/ubuntu/setup.sh || exit 1
+ if {reboot}; then
+ _run sudo reboot
+ # wait a bit after the reboot, or else we may detect it's up before it's rebooted
+ sleep 120
+ wait_for_ssh
+ else
+ _run sudo systemctl daemon-reload
+ fi
+ _run sudo systemctl restart getty@tty3
+ echo "Waiting for mir tests to complete..."
+ _run "until [ -f /tmp/mir-done ]; do sleep 1; done"
+ _run cat /tmp/mir.log
+
+ mkdir -p artifacts
+ echo "Snaps currently installed:" | tee artifacts/snaplist.txt
+ _run snap list |tail -n +2 |awk '{{ print \$1" Version: "\$2"-"\$3 }}'
+ _run snap list >> artifacts/snaplist.txt
+ _run snap run --shell mir-test-tools.{suite}-test -c 'cp\\ /tmp/*.log\\ \\\$SNAP_USER_DATA'
+
+ _get /tmp/mir.log artifacts
+ _get /tmp/{snap}.log artifacts
+ _get /tmp/mir-bashrc.log artifacts
+ _get snap/mir-test-tools/current/mir.xml artifacts
+ _get snap/mir-test-tools/current/*.log artifacts
+ grep -q "OUTCOME: PASS" artifacts/mir.log || exit 1
+EOF
+#Remove previous venv
+rm -rf env
+cat <<EOF >build-env.sh
+{build_env}
+EOF
+. build-env.sh
+
+JOB_ID=$(testflinger submit -q job.yaml)
+echo "JOB_ID: $JOB_ID"
+echo "$JOB_ID" > JOB_ID
+testflinger poll $JOB_ID
+
+TEST_STATUS=$(testflinger results $JOB_ID |jq -r .test_status)
+[ -n $TEST_STATUS ] && TEST_STATUS=1
+
+rm -rf artifacts*
+#retry getting the artifacts after a delay if it fails
+testflinger artifacts $JOB_ID || (sleep 30 && testflinger artifacts $JOB_ID)
+tar -xzf artifacts.tgz
+
+set +x
+export C3LINK=$(testflinger results $JOB_ID |jq -r .test_output|grep certification.canonical.com)
+echo $C3LINK > c3link
+set -x
+
+mkdir -p artifacts
+echo Jenkins build details: $BUILD_URL > artifacts/summary
+echo "Test exit status: $TEST_STATUS"
+grep -q "OUTCOME: PASS" artifacts/mir.log || exit 1
diff --git a/jobs/mir/run-mir.sh b/jobs/mir/run-mir.sh
index 35f06d9..c6d3d44 100644
--- a/jobs/mir/run-mir.sh
+++ b/jobs/mir/run-mir.sh
@@ -80,7 +80,7 @@ cat > job.yaml <<EOF
for ppa in {ppas}; do
sudo add-apt-repository -y --update ppa:\\\$ppa
done
- [ -n '{gfx_drivers}' ] && sudo apt install -y {gfx_drivers}
+ [ -n '{gfx_drivers}' ] && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y {gfx_drivers}
{gfx_setup}
if [ '{snap}' == 'mir-test-tools' ]; then
Follow ups