Skip to content

.github: reuse hardware-test workflow - #62

Merged
ozan956 merged 1 commit into
mainfrom
align-hw-test
Sep 17, 2026
Merged

ozan956 merged 1 commit into
mainfrom
align-hw-test

Conversation

@ozan956

@ozan956 ozan956 commented Aug 17, 2026

Copy link
Copy Markdown
Member

Use the shared Linux hardware-test workflow for Bootstrap validation instead of maintaining a br2-external wrapper.

Run Bootstrap on both SC598 EZKIT and EZLITE. Remove the br2-external U-Boot test since it is now covered by the U-Boot repository’s workflow.

This is to be merged after Linux side gets merged.

@ozan956 ozan956 self-assigned this Aug 17, 2026
@pamolloy

Copy link
Copy Markdown
Contributor

Both Buildroot and Yocto should run all tests and not depend on tests in the U-Boot and Linux repos. Both combine numerous pieces of software and it is important to test the the full system when they are all combined.

The bootstrap image is a br2_external concept so it is confusing why we'd use a shared action from the Linux repository. What logic exactly is being shared here?

@ozan956

ozan956 commented Aug 24, 2026

Copy link
Copy Markdown
Member Author

Both Buildroot and Yocto should run all tests and not depend on tests in the U-Boot and Linux repos. Both combine numerous pieces of software and it is important to test the the full system when they are all combined.

The bootstrap image is a br2_external concept so it is confusing why we'd use a shared action from the Linux repository. What logic exactly is being shared here?

Yep, I should have added more context to that PR.

So this hw-test.yaml in br2 was old version, clearly not really scaleable.

But the new ones as in U-Boot: https://github.com/analogdevicesinc/u-boot/blob/ci/.github/workflows/hw-test.yml

They are just generic things to convert tests to hw-test format. So they do not include and specific test names, board names, etc.

Then you can call that in top-level yaml as:

  hardware-test:
    needs: [build_aarch64]
    if: ${{ github.event_name != 'release' }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - needs: '["sc598", "ezkit"]'
          - needs: '["sc598", "ezlite"]'
          - needs: '["sc846", "ezkit"]'
    uses: analogdevicesinc/u-boot/.github/workflows/hw-test.yml@ci
    with:
      test-set: 'adsp/u-boot'
      needs: ${{ matrix.needs }}
    secrets: inherit
    permissions:
      actions: read
      contents: read
      id-token: write

I picked Linux repo as base so I can just change one file and distribute to everywhere.

@gastmaier

gastmaier commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Hi, from u-boot

            ${{ inputs.needs != '' && format(', "needs": {0}', inputs.needs) || '' }}
            ${{ inputs.labgrid-target != '' && format(', "labgrid_target": "{0}"', inputs.labgrid-target) || '' }}

Couldn't empty string means any? so this becomes

          set: >
            {
              "name": "${{ inputs.test-set }}",
              "needs": "${{ inputs.needs }}",
              "labgrid_target": "${{ inputs.labgrid-target }}"
            }

@ozan956

ozan956 commented Aug 27, 2026

Copy link
Copy Markdown
Member Author

Hi, from u-boot

            ${{ inputs.needs != '' && format(', "needs": {0}', inputs.needs) || '' }}
            ${{ inputs.labgrid-target != '' && format(', "labgrid_target": "{0}"', inputs.labgrid-target) || '' }}

Couldn't empty string means any? so this becomes

          set: >
            {
              "name": "${{ inputs.test-set }}",
              "needs": "${{ inputs.needs }}",
              "labgrid_target": "${{ inputs.labgrid-target }}"
            }

You are right to call this out. An empty needs does not mean “any” for these tests, the test fails when it is omitted.

In this workflow, needs is always provided through the matrix so it should never be empty. I think we should make the input required and remove the empty-string/default handling.

I can fix that on linux side before merge this, then I can also have similar PR in u-boot to let U-Boot repo also use the linux side workflow as well.

@ozan956
ozan956 force-pushed the align-hw-test branch 2 times, most recently from 62b25d0 to 7d3ffa9 Compare September 10, 2026 22:13
@ozan956
ozan956 marked this pull request as ready for review September 10, 2026 22:13
@ozan956 ozan956 changed the title .github: reuse Linux hardware-test workflow .github: reuse hardware-test workflow Sep 10, 2026
Delete the local hw-test.yml copy and call
analogdevicesinc/hw-test/.github/workflows/run-test.yml@main instead.

Expand hardware-test to a matrix of test-set and needs.

Signed-off-by: Ozan Durgut <ozan.durgut@analog.com>
@ozan956
ozan956 force-pushed the align-hw-test branch 2 times, most recently from 0177245 to f5ce393 Compare September 16, 2026 13:06
@ozan956
ozan956 merged commit 078899d into main Sep 17, 2026
151 of 174 checks passed
@ozan956
ozan956 deleted the align-hw-test branch September 17, 2026 13:11
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.

4 participants