Skip to content

ci/lava: Enable SSH in fastboot devices

Guilherme Gallo requested to merge gallo/mesa:ci-lava-fastboot-ssh into main

What does this MR do and why?

This MR addresses intermittent UART connectivity issues on a660. By enabling SSH on a660 fastboot devices early in job execution, we reduce reliance on UART, streamline pipeline execution, and allow legitimate MRs to merge. Key changes include:

  1. SSH Support on Fastboot Devices (a660):

    • Enabled SSH by default in fastboot devices to establish a robust communication channel, mitigating the UART hang issues.
    • Utilized LAVA features to run docker containers alongside the DUT, facilitating an early establishment of an SSH server on the DUT and an SSH client in a docker container.
    • The setup allows console output to be passed via an SSH pseudo-terminal, reducing the reliance on UART.
  2. Enhanced Boot Environment Sharing:

    • Updated "init-stage1.sh" script to handle system mounting and network setup tasks necessary for allocating a pseudo-terminal under "/dev/pts", ensuring the proper functionality of the target script controlled by the HWCI_SCRIPT environment variable.
  3. Unit Testing for Job Definitions:

    • Introduced unit tests to validate the LAVA job definitions and ensure the correctness of deploy actions, namespaces, and other essential fields.
  4. SSH and UART Definition Refactoring:

    • Simplified both UART and SSH job definitions to share common building blocks, enhancing code maintainability.
    • Make SSH behave as a wrapper for deploy and boot actions, making it possible to reuse code from UART definitions
  5. Miscellaneous Improvements:

    • Corrected import formatting and replaced hardcoded project names to make the LAVA job submitter more adaptable to other projects.

By transitioning fastboot devices to SSH-based communication, this MR reduces pipeline delays caused by UART hangs, thus improving CI efficiency and reliability.

Edited by Guilherme Gallo

Merge request reports