(28247/11)iscsi: auto-generate rpc object decoder arrays from schema #14782
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| name: SPDK per-patch tests | |
| # Pull request - "SPDK-CI: PR#123: Example Title" | |
| # Workflow dispatch - "Manual: (12345/5)Example Gerrit Subject" | |
| # Repository dispatch - "(12345/5)Example Gerrit Subject" | |
| run-name: >- | |
| ${{ | |
| github.event_name == 'pull_request' && format('SPDK-CI: PR#{0}: {1}', | |
| github.event.pull_request.number, github.event.pull_request.title) | |
| || github.event_name == 'workflow_dispatch' && inputs.client_payload != '' && format('Manual: ({0}/{1}){2}', | |
| fromJson(inputs.client_payload).change.number, fromJson(inputs.client_payload).patchSet.number, fromJson(inputs.client_payload).change.subject) | |
| || github.event_name == 'workflow_dispatch' && inputs.client_payload == '' && format('Manual: SPDK master') | |
| || github.event_name == 'repository_dispatch' && github.event.client_payload != '' && format('({0}/{1}){2}', | |
| github.event.client_payload.change.number, github.event.client_payload.patchSet.number, github.event.client_payload.change.subject) | |
| || format('SPDK per-patch') | |
| }} | |
| on: | |
| pull_request: | |
| paths-ignore: | |
| - '.github/workflows/selftest.yml' | |
| - '.github/workflows/build_qcow2.yml' | |
| - 'infra/**' | |
| workflow_dispatch: | |
| inputs: | |
| client_payload: | |
| required: false | |
| type: string | |
| default: '' | |
| repository_dispatch: | |
| types: | |
| - per-patch-event | |
| - patchset-created | |
| - wip-state-changed | |
| - private-state-changed | |
| # env: | |
| # # TODO: Renable client_payload for workflow_dispatch | |
| # # Workaround for https://github.com/actions/runner/issues/2372 | |
| # client_payload: ${{ github.event.client_payload != '' && toJson(github.event.client_payload) || '' }} | |
| jobs: | |
| patch_set_status: | |
| name: Verify patch set state | |
| runs-on: ubuntu-latest | |
| if: github.event.client_payload != '' | |
| outputs: | |
| changed_files: ${{ steps.patch.outputs.changed_files }} | |
| client_payload: ${{ env.client_payload }} | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| client_payload: ${{ github.event.client_payload != '' && toJson(github.event.client_payload) || '' }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Check patch set status | |
| id: patch | |
| env: | |
| CHANGE_NUM: ${{ fromJSON(env.client_payload).change.number }} | |
| PATCH_SET: ${{ fromJSON(env.client_payload).patchSet.number }} | |
| TITLE: ${{ fromJSON(env.client_payload).change.subject }} | |
| GERRIT_BOT_USER: ${{ secrets.GERRIT_BOT_USER }} | |
| run: .github/scripts/parse_gerrit_webhook.sh | |
| common: | |
| name: Common tests | |
| if: ${{ !cancelled() }} | |
| needs: | |
| - patch_set_status | |
| uses: ./.github/workflows/spdk-common-tests.yml | |
| with: | |
| # "Client payload" is all of the information Gerrit webhooks sends out. | |
| client_payload: ${{ needs.patch_set_status.outputs.client_payload }} | |
| changed_files: ${{ needs.patch_set_status.outputs.changed_files }} | |
| force_pkgdep: ${{ github.event_name == 'pull_request' }} | |
| hpe: | |
| name: NVMe-oF RDMA tests | |
| if: ${{ !cancelled() && github.repository == 'spdk/spdk-ci' }} | |
| needs: | |
| - patch_set_status | |
| uses: ./.github/workflows/nvmf-rdma.yml | |
| with: | |
| client_payload: ${{ needs.patch_set_status.outputs.client_payload }} | |
| # Add more jobs below if needed. | |
| # Summary should be last job, please make sure to include yours in 'needs'. | |
| summary: | |
| name: Job summary | |
| if: ${{ !cancelled() }} | |
| needs: | |
| - patch_set_status | |
| - common | |
| - hpe | |
| uses: ./.github/workflows/summary.yml | |
| with: | |
| client_payload: ${{ needs.patch_set_status.outputs.client_payload }} | |
| result: >- | |
| ${{ (needs.common.result == 'success' && (needs.hpe.result == 'success' || needs.hpe.result == 'skipped')) && | |
| 'success' || 'failure' }} | |
| secrets: inherit |