ci: run docker subset of the API/e2e wrapper tests

Parametrize e2e-api-tests.yml with `subset` (non-docker|docker) and `node_image` inputs, and add a send-api-e2e-docker-tests job that runs the docker_required wrapper tests (S19/S20/S31) against the built node image.

The docker job needs both the liblogosdelivery artifact and the container-image build, and skips when no image is available (fork PRs lack the registry secrets). The non-docker subset still needs only `build`, so a docker-image build failure cannot mask its result.
This commit is contained in:
Egor Rachkovskii 2026-07-17 14:45:26 +01:00
parent 35587c322b
commit 09972171ed
No known key found for this signature in database
2 changed files with 29 additions and 2 deletions

View File

@ -213,6 +213,18 @@ jobs:
send-api-e2e-tests:
needs: build
uses: ./.github/workflows/e2e-api-tests.yml
with:
subset: non-docker
secrets: inherit
# Docker subset; skipped when there's no node image (fork PRs lack the quay secrets).
send-api-e2e-docker-tests:
needs: [build, build-docker-image]
if: ${{ needs.build-docker-image.outputs.image != '' }}
uses: ./.github/workflows/e2e-api-tests.yml
with:
subset: docker
node_image: ${{ needs.build-docker-image.outputs.image }}
secrets: inherit
lint:

View File

@ -2,12 +2,27 @@ name: e2e-api-tests
on:
workflow_call:
inputs:
subset:
description: "Which wrapper subset to run: 'non-docker' or 'docker'."
type: string
required: false
default: "non-docker"
node_image:
description: "Node image used for the docker peers (docker subset only)."
type: string
required: false
default: ""
jobs:
api-e2e:
runs-on: ubuntu-22.04
timeout-minutes: 45
name: api-e2e
env:
NODE_1: ${{ inputs.node_image }}
NODE_2: ${{ inputs.node_image }}
ADDITIONAL_NODES: ${{ inputs.node_image }}
steps:
- name: Checkout code
uses: actions/checkout@v4
@ -29,6 +44,6 @@ jobs:
- name: Install Python deps
run: pip install -r tests-e2e/requirements.txt
- name: Run API/e2e tests (non-docker subset)
- name: Run API/e2e tests (${{ inputs.subset }} subset)
working-directory: tests-e2e
run: pytest tests/wrappers_tests -m "not docker_required" --reruns 2
run: pytest tests/wrappers_tests -m "${{ inputs.subset == 'docker' && 'docker_required' || 'not docker_required' }}" --reruns 2