Run ethernet/ping_interface unless hidden manifest set (e.g. lab runs) (new)#1709
Run ethernet/ping_interface unless hidden manifest set (e.g. lab runs) (new)#1709
ethernet/ping_interface unless hidden manifest set (e.g. lab runs) (new)#1709Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1709 +/- ##
==========================================
+ Coverage 49.26% 49.28% +0.01%
==========================================
Files 373 374 +1
Lines 40434 40445 +11
Branches 6830 6831 +1
==========================================
+ Hits 19921 19932 +11
Misses 19785 19785
Partials 728 728
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
mz2
left a comment
There was a problem hiding this comment.
Since this is a recurrent source of SRU test hiccups, could you please...
- put in contribution guide a mention aimed at Canonical team members to update the lab machine manifests before merging a new test like this.
- rename the relevant repository of manifests to something that doesn't take a galaxy brain to remember it 😄 (https://github.com/canonical/ce-oem-dut-checkbox-configuration -- which is safe to mention in the public) and broadcast that. Renaming won't invalidate URLs, deploy keys etc immediately (or even very quickly I think), but they'll need to be done eventually.
- add a CI check in said repo to guard that expected manifest keys are included in all of the manifests included, so that people contributing new manifests know what to do.
Only run ethernet/ping_interface if the _ignore_disconnected_ethernet_interface hidden manifest is set to false. Since this is the case by default, this test will always be run unless the hidden manifest is set to True (which we can use in the lab where only one of the device's Ethernet interface is connected).
Trigger the "check missing manifests" action in the DUT config repository if new hidden manifests are detected.
05f7c93 to
2d80765
Compare
|
GitHub actions on both sides (here, and in the DUT configuration repo) have been created and tweaked so that:
Initially, this check was failing on this PR, because 1012 devices in the lab were missing the new hidden manifest. After adding them, the check item is green: |
mz2
left a comment
There was a problem hiding this comment.
Great work, thanks for the big CI lift that this involved!
…ns) (new) (#1709) This PR does two things: 1. Setup a new hidden manifest to prevent running `ethernet/ping_interface` if the hidden manifest is set 2. Setup GitHub Actions (on the Checkbox side) to check if new hidden manifests are being created, and if so, if devices in the lab have been setup accordingly Keep reading for more information on both. New hidden manifest: * Create a hidden manifest to ignore disconnected Ethernet interfaces * Condition run of ethernet/ping_interface to the hidden manifest Only run ethernet/ping_interface if the _ignore_disconnected_ethernet_interface hidden manifest is set to false. Since this is the case by default, this test will always be run unless the hidden manifest is set to True (which we can use in the lab where only one of the device's Ethernet interface is connected). * Add ethernet/ping-with-any-cable-interface to the ethernet-automated testplan GitHub Action to check for missing manifests in devices setup in the lab: * Add PR validation action to check for missing manifests Trigger the "check missing manifests" action in the DUT config repository if new hidden manifests are detected. * Add comparison scripts * Add note in contributing guide about hidden manifests
…ns) (new) (#1709) This PR does two things: 1. Setup a new hidden manifest to prevent running `ethernet/ping_interface` if the hidden manifest is set 2. Setup GitHub Actions (on the Checkbox side) to check if new hidden manifests are being created, and if so, if devices in the lab have been setup accordingly Keep reading for more information on both. New hidden manifest: * Create a hidden manifest to ignore disconnected Ethernet interfaces * Condition run of ethernet/ping_interface to the hidden manifest Only run ethernet/ping_interface if the _ignore_disconnected_ethernet_interface hidden manifest is set to false. Since this is the case by default, this test will always be run unless the hidden manifest is set to True (which we can use in the lab where only one of the device's Ethernet interface is connected). * Add ethernet/ping-with-any-cable-interface to the ethernet-automated testplan GitHub Action to check for missing manifests in devices setup in the lab: * Add PR validation action to check for missing manifests Trigger the "check missing manifests" action in the DUT config repository if new hidden manifests are detected. * Add comparison scripts * Add note in contributing guide about hidden manifests

Description
Use newly introduced hidden manifest (see #1699) to condition the run of the
ethernet/ping_interfacetemplate jobs. This way, in the lab where devices with multiple Ethernet interfaces usually only have one of them connected, these jobs can be skipped and the genericethernet/ping-with-any-cable-interfacejob can be run instead (validating that the Ethernet feature works to connect to ping the gateway). To that effect,ethernet/ping-with-any-cable-interfaceis added to theethernet-automatedandafter-suspend-ethernet-automatedtest plans, alongside theethernet/ping_interfacetemplate.Resolved issues
https://warthogs.atlassian.net/browse/RTW-401
Documentation
The hidden manifest has a
hidden-reasonfield which helps for documentation.Tests
Create the following launcher (
my-launcher):and execute it:
Observe that the
ping_{interface}template jobs are skipped, and theping-with-any-cable-interfaceis run:Remove the
[manifest]section from the launcher and repeat the operation. This time, bothping_{interface}template jobs andping-with-any-cable-interfaceare run.