Skip to content

Split hardware SPDM CI across runners#485

Merged
dgarske merged 1 commit into
wolfSSL:masterfrom
aidangarske:spdm-split-runners-v2
Apr 17, 2026
Merged

Split hardware SPDM CI across runners#485
dgarske merged 1 commit into
wolfSSL:masterfrom
aidangarske:spdm-split-runners-v2

Conversation

@aidangarske
Copy link
Copy Markdown
Member

No description provided.

@aidangarske aidangarske self-assigned this Apr 17, 2026
Copilot AI review requested due to automatic review settings April 17, 2026 18:50
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

This PR updates the hardware SPDM GitHub Actions workflow to run vendor-specific jobs on separate self-hosted runners, enabling parallel execution without cross-vendor hardware contention.

Changes:

  • Parameterized runs-on via a matrix-provided runner_label to target dedicated per-vendor runners.
  • Switched from a single global concurrency lock to per-vendor concurrency groups.
  • Removed the pre-detect/warn gating steps and runs the hardware SPDM tests unconditionally when the runner health check passes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/hw-spdm-test.yml Outdated
Comment thread .github/workflows/hw-spdm-test.yml
   Each vendor now has a dedicated Pi:
     - wolftpm-nuvoton: NPCT75x on SPI CS 0 (existing runner, relabeled)
     - wolftpm-nations: NS350 on SPI CS 0 (new runner rpi-ns350)

   Changes:
     - runs-on uses matrix.runner_label so each matrix entry routes to
       the correct physical runner.
     - Concurrency moved from workflow-level to job-level with group
       hw-spdm-runner-${{ matrix.vendor }} so nuvoton and nations run in
       parallel rather than serializing on a shared hw-spdm-runner group.
     - Dropped the pre-test caps detect step and its GPIO 4 reset pulse.
       The detect step was unreliable (auto-SPDM in wolfTPM2_Init only
       fires on TPM_RC_DISABLED from Startup, not TPM_RC_FAILURE, so a
       locked chip couldn't self-recover) and pointless now that each
       runner is dedicated to a known chip. spdm_test.sh already handles
       its own vendor-specific reset: gpio_reset for nuvoton, no-reset
       for nations (GPIO 4 isn't routed to NS350 RST on the daughter
       board, per spdm_test.sh:135,159).
     - Nations spi_cs flipped from 1 to 0 since the new Pi has NS350 on
       its own CS 0 rather than sharing a bus with NPCT75x.
@dgarske
Copy link
Copy Markdown
Member

dgarske commented Apr 17, 2026

Merging with CI issues.

@dgarske dgarske merged commit c8fc133 into wolfSSL:master Apr 17, 2026
105 of 107 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants