Skip to content

Commit 29bcc97

Browse files
test(e2e): migrate the features and drivers suites to testkit (#5137)
* test(support): add container engine and Podman support crates Add the container-engine and podman support crates for suites that build images into the gateway's store or compare against Podman's own containers, and add expect_compute_driver and base_image to testkit. Run the support crates' unit tests in the Rust test lists. Signed-off-by: Matthew Grossman <mgrossman@nvidia.com> * test(features): port the OCI image suite to testkit Rewrite tests/suites/features/oci-image as testkit tests (package oci-image) that build their images through OPENSHELL_TEST_CONTAINER_ENGINE, which the Docker and Podman environments now publish. Run it through e2e-suites.yml on the Docker rootful, Podman rootful and Podman rootless rows, and retire the tmachine oci-image testsuite, its playbook and its archive. The OCI test images are removed by a testkit cleanup hook registered right after each build, so a panic in the test body no longer leaks them. Hooks run last registered first, so the sandboxes created from an image are deleted before it. The workspace's fmt and clippy entries now cover the whole workspace, so a new suite needs no list edit. Signed-off-by: Matthew Grossman <mgrossman@nvidia.com> Co-authored-by: Evan Lezar <elezar@nvidia.com> * test(features): run the Keycloak provider-refresh suite on Fedora Podman Add fedora-podman-{rootful,rootless}-keycloak environments and run keycloak-provider-refresh there with the rpm installer, replacing the old provider-refresh crate, its tmachine testsuite and its archive. Podman has no daemon to restart Keycloak at boot, so start the container with --restart always and enable podman-restart.service for the user that runs it. feature-specific-integration now runs the features family through e2e-suites.yml in Branch E2E, Release Dev and Release Qualification, and absorbs Branch E2E's separate e2e-suites job. The Keycloak support crate is renamed to keycloak-support to match the -support suffix the other support crates take. It moves here, not with them, because the suite this commit replaces depends on it by the old name. Signed-off-by: Matthew Grossman <mgrossman@nvidia.com> * test(drivers): port the Podman user-namespace suite to testkit Rewrite tests/suites/drivers/podman as a testkit test (package podman) that compares a sandbox's UID map with the one Podman gives a container in the same user-namespace mode. Each fedora-podman-{rootful,rootless}-userns-<mode> environment configures that mode for the binaries installer's gateway and publishes it; the packaged installers refuse such environments rather than test without the mode. driver-specific-integration now runs the drivers family through e2e-suites.yml, and the e2e-podman tmachine row moves to its own podman-e2e-integration job. Retire the driver-podman testsuite, its playbooks, fixtures and archive. Each driver suite is its own workspace under tests/suites/drivers/<driver>, with its own lockfile, so a driver can be tested apart from the others. The runner's --family is the path of a workspace under tests/suites/ (drivers/podman), and each part must be a plain name. The family input of e2e-suites.yml also selects the workspaces under it, so "drivers" still selects every driver suite. The suite package is named after the driver, and the support crates take a -support suffix. Branch Checks and the rust tasks format and lint each test workspace as a whole. The Podman support crate's reference container runs with --pull missing instead of --pull never, so it pulls the image when the engine's store doesn't have it. Signed-off-by: Matthew Grossman <mgrossman@nvidia.com> Co-authored-by: Evan Lezar <elezar@nvidia.com> * test(conformance): delete the openshell-conformance crate Every suite that used the CLI conformance library now runs on testkit, so remove the crate, its lockfile entry and its row in the AGENTS.md architecture table. Signed-off-by: Matthew Grossman <mgrossman@nvidia.com> --------- Signed-off-by: Matthew Grossman <mgrossman@nvidia.com> Co-authored-by: Evan Lezar <elezar@nvidia.com>
1 parent f4a6137 commit 29bcc97

71 files changed

Lines changed: 5660 additions & 5932 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/branch-checks.yml‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,9 @@ jobs:
233233
cargo fmt --manifest-path tests/testkit/Cargo.toml --all -- --check
234234
cargo fmt --manifest-path tests/tmachine/Cargo.toml --all -- --check
235235
cargo fmt --manifest-path tests/runner/Cargo.toml --all -- --check
236-
cargo fmt --manifest-path tests/suites/conformance/Cargo.toml -p conformance -- --check
237-
cargo fmt --manifest-path tests/suites/features/Cargo.toml -p keycloak-provider-refresh -- --check
236+
cargo fmt --manifest-path tests/suites/conformance/Cargo.toml --all -- --check
237+
cargo fmt --manifest-path tests/suites/drivers/podman/Cargo.toml --all -- --check
238+
cargo fmt --manifest-path tests/suites/features/Cargo.toml --all -- --check
238239
cargo fmt --manifest-path tests/support/Cargo.toml --all -- --check
239240
240241
cargo-lockfiles:
@@ -297,8 +298,9 @@ jobs:
297298
cargo clippy --locked --manifest-path tests/testkit/Cargo.toml --all-targets -- -D warnings
298299
cargo clippy --locked --manifest-path tests/tmachine/Cargo.toml --all-targets -- -D warnings
299300
cargo clippy --locked --manifest-path tests/runner/Cargo.toml --all-targets -- -D warnings
300-
cargo clippy --locked --manifest-path tests/suites/conformance/Cargo.toml -p conformance --all-targets -- -D warnings
301-
cargo clippy --locked --manifest-path tests/suites/features/Cargo.toml -p keycloak-provider-refresh --all-targets -- -D warnings
301+
cargo clippy --locked --manifest-path tests/suites/conformance/Cargo.toml --workspace --all-targets -- -D warnings
302+
cargo clippy --locked --manifest-path tests/suites/drivers/podman/Cargo.toml --workspace --all-targets -- -D warnings
303+
cargo clippy --locked --manifest-path tests/suites/features/Cargo.toml --workspace --all-targets -- -D warnings
302304
cargo clippy --locked --manifest-path tests/support/Cargo.toml --all-targets -- -D warnings
303305
304306
rust-test:
@@ -389,6 +391,7 @@ jobs:
389391
cargo nextest run --locked --config-file .config/nextest.toml --profile ci --manifest-path tests/testkit/Cargo.toml
390392
cargo nextest run --locked --config-file .config/nextest.toml --profile ci --manifest-path tests/tmachine/Cargo.toml
391393
cargo nextest run --locked --config-file .config/nextest.toml --profile ci --manifest-path tests/runner/Cargo.toml
394+
cargo nextest run --locked --config-file .config/nextest.toml --profile ci --manifest-path tests/support/Cargo.toml
392395
393396
rust-postgres-test:
394397
name: Rust PostgreSQL tests

‎.github/workflows/branch-e2e.yml‎

Lines changed: 23 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -255,65 +255,55 @@ jobs:
255255
secrets:
256256
CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }}
257257

258-
# Run feature-specific integration tests:
258+
# Run the testkit feature suites (tests/suites/features) on tmachine. The
259+
# environments and suites are listed in e2e-suites.yml.
259260
feature-specific-integration:
260261
needs: prepare-integration
261262
permissions:
262263
actions: read
263264
contents: read
264265
packages: read
265-
uses: ./.github/workflows/integration-runner.yml
266+
uses: ./.github/workflows/e2e-suites.yml
266267
with:
267-
category: feature-specific
268+
family: features
268269
source-sha: ${{ needs.prepare-integration.outputs.source_sha }}
269270
integration-inputs-artifact-id: ${{ needs.prepare-integration.outputs.integration_inputs_artifact_id }}
270-
test-matrix: >-
271-
[
272-
{"environment":"fedora-podman-rootful","installer":"rpm","testsuite":"provider-refresh"},
273-
{"environment":"fedora-podman-rootless","installer":"rpm","testsuite":"provider-refresh"},
274-
{"environment":"ubuntu-docker-rootful","installer":"deb","testsuite":"oci-image"},
275-
{"environment":"fedora-podman-rootful","installer":"rpm","testsuite":"oci-image"},
276-
{"environment":"fedora-podman-rootless","installer":"rpm","testsuite":"oci-image"}
277-
]
271+
secrets:
272+
CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }}
278273

279-
# Run driver-specific integration tests:
280-
# These suites require the binary installer's CLI path, local HTTP gateway,
281-
# and system service configuration for their Podman user-namespace fixtures.
274+
# Run the testkit driver suites (tests/suites/drivers) on tmachine. The
275+
# environments and suites are listed in e2e-suites.yml.
282276
driver-specific-integration:
283277
needs: prepare-integration
284278
permissions:
285279
actions: read
286280
contents: read
287281
packages: read
288-
uses: ./.github/workflows/integration-runner.yml
282+
uses: ./.github/workflows/e2e-suites.yml
289283
with:
290-
category: driver-specific
284+
family: drivers
291285
source-sha: ${{ needs.prepare-integration.outputs.source_sha }}
292286
integration-inputs-artifact-id: ${{ needs.prepare-integration.outputs.integration_inputs_artifact_id }}
293-
test-matrix: >-
294-
[
295-
{"environment":"fedora-podman-rootful","installer":"binaries","testsuite":"driver-podman"},
296-
{"environment":"fedora-podman-rootless","installer":"binaries","testsuite":"e2e-podman"},
297-
{"environment":"fedora-podman-rootless","installer":"binaries","testsuite":"driver-podman"}
298-
]
287+
secrets:
288+
CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }}
299289

300-
# Run the testkit feature suites in tests/suites/ on tmachine. The
301-
# environments and suites are listed in e2e-suites.yml; the conformance rows
302-
# run in conformance-integration.
303-
e2e-suites:
304-
needs: [pr_metadata, prepare-integration]
305-
if: needs.pr_metadata.outputs.should_run == 'true' && needs.pr_metadata.outputs.run_core_e2e == 'true'
290+
# Run the Podman e2e suite on tmachine. It needs the binary installer's CLI
291+
# path and local HTTP gateway.
292+
podman-e2e-integration:
293+
needs: prepare-integration
306294
permissions:
307295
actions: read
308296
contents: read
309297
packages: read
310-
uses: ./.github/workflows/e2e-suites.yml
298+
uses: ./.github/workflows/integration-runner.yml
311299
with:
312-
family: features
300+
category: driver-specific
313301
source-sha: ${{ needs.prepare-integration.outputs.source_sha }}
314302
integration-inputs-artifact-id: ${{ needs.prepare-integration.outputs.integration_inputs_artifact_id }}
315-
secrets:
316-
CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }}
303+
test-matrix: >-
304+
[
305+
{"environment":"fedora-podman-rootless","installer":"binaries","testsuite":"e2e-podman"}
306+
]
317307
318308
docker-e2e:
319309
needs: [pr_metadata, build-binaries, build-images]
@@ -573,9 +563,9 @@ jobs:
573563
needs:
574564
- pr_metadata
575565
- conformance-integration
576-
- e2e-suites
577566
- feature-specific-integration
578567
- driver-specific-integration
568+
- podman-e2e-integration
579569
- docker-e2e
580570
- podman-e2e
581571
- podman-additional-ca-e2e

‎.github/workflows/e2e-suites.yml‎

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,22 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44
# Runs testkit suites in tmachine environments on CI. Each row of `ROWS` below
5-
# names a tmachine environment and installer, the family (a workspace under
6-
# tests/suites/) and the package in it, the gateway name the installer
7-
# registers, and the runner label for the environment's architecture.
8-
# `openshell-test-runner` builds the tests, boots the environment, runs them
9-
# inside it and checks the results. The `family` input selects the rows of one
10-
# family; leave it empty to run every row.
5+
# names a tmachine environment and installer, the family (the path of a
6+
# workspace under tests/suites/, such as conformance or drivers/podman) and,
7+
# optionally, the package in it, the gateway name the installer registers, and
8+
# the runner label for the environment's architecture. `openshell-test-runner`
9+
# builds the tests, boots the environment, runs them inside it and checks the
10+
# results. The `family` input selects the rows of one family, including the
11+
# workspaces under it (drivers selects drivers/podman); leave it empty to run
12+
# every row.
1113

1214
name: E2E Suites
1315

1416
on:
1517
workflow_call:
1618
inputs:
1719
family:
18-
description: Run only the rows of this family (for example conformance); empty runs every row
20+
description: Run only the rows of this family and the workspaces under it (for example conformance or drivers); empty runs every row
1921
required: false
2022
type: string
2123
default: ""
@@ -62,17 +64,37 @@ jobs:
6264
# Only amd64 for now: CI has no arm64 runner with KVM for tmachine,
6365
# and the caller only builds amd64 inputs. The gateway is the name the
6466
# installer registers with the CLI: `openshell` for the packages,
65-
# `tmachine` for the k3s installers.
67+
# `tmachine` for the k3s and binaries installers. A row without a
68+
# package runs every package in the workspace; each driver suite is a
69+
# workspace of its own.
6670
rows='[
6771
{"environment":"ubuntu-docker-rootful","installer":"deb","family":"conformance","package":"conformance","gateway":"openshell","runner":"ubuntu-24.04"},
6872
{"environment":"fedora-podman-rootful","installer":"rpm","family":"conformance","package":"conformance","gateway":"openshell","runner":"ubuntu-24.04"},
6973
{"environment":"fedora-podman-rootless","installer":"rpm","family":"conformance","package":"conformance","gateway":"openshell","runner":"ubuntu-24.04"},
7074
{"environment":"ubuntu-k3s","installer":"k3s","family":"conformance","package":"conformance","gateway":"tmachine","runner":"ubuntu-24.04"},
7175
{"environment":"ubuntu-k3s","installer":"k3s-ha","family":"conformance","package":"conformance","gateway":"tmachine","runner":"ubuntu-24.04"},
72-
{"environment":"ubuntu-docker-rootful-keycloak","installer":"deb","family":"features","package":"keycloak-provider-refresh","gateway":"openshell","runner":"ubuntu-24.04"}
76+
{"environment":"ubuntu-docker-rootful-keycloak","installer":"deb","family":"features","package":"keycloak-provider-refresh","gateway":"openshell","runner":"ubuntu-24.04"},
77+
{"environment":"ubuntu-docker-rootful","installer":"deb","family":"features","package":"oci-image","gateway":"openshell","runner":"ubuntu-24.04"},
78+
{"environment":"fedora-podman-rootful","installer":"rpm","family":"features","package":"oci-image","gateway":"openshell","runner":"ubuntu-24.04"},
79+
{"environment":"fedora-podman-rootless","installer":"rpm","family":"features","package":"oci-image","gateway":"openshell","runner":"ubuntu-24.04"},
80+
{"environment":"fedora-podman-rootful-keycloak","installer":"rpm","family":"features","package":"keycloak-provider-refresh","gateway":"openshell","runner":"ubuntu-24.04"},
81+
{"environment":"fedora-podman-rootless-keycloak","installer":"rpm","family":"features","package":"keycloak-provider-refresh","gateway":"openshell","runner":"ubuntu-24.04"},
82+
{"environment":"fedora-podman-rootful-userns-default","installer":"binaries","family":"drivers/podman","gateway":"tmachine","runner":"ubuntu-24.04"},
83+
{"environment":"fedora-podman-rootful-userns-auto","installer":"binaries","family":"drivers/podman","gateway":"tmachine","runner":"ubuntu-24.04"},
84+
{"environment":"fedora-podman-rootful-userns-keep-id","installer":"binaries","family":"drivers/podman","gateway":"tmachine","runner":"ubuntu-24.04"},
85+
{"environment":"fedora-podman-rootful-userns-private","installer":"binaries","family":"drivers/podman","gateway":"tmachine","runner":"ubuntu-24.04"},
86+
{"environment":"fedora-podman-rootless-userns-default","installer":"binaries","family":"drivers/podman","gateway":"tmachine","runner":"ubuntu-24.04"},
87+
{"environment":"fedora-podman-rootless-userns-auto","installer":"binaries","family":"drivers/podman","gateway":"tmachine","runner":"ubuntu-24.04"},
88+
{"environment":"fedora-podman-rootless-userns-keep-id","installer":"binaries","family":"drivers/podman","gateway":"tmachine","runner":"ubuntu-24.04"},
89+
{"environment":"fedora-podman-rootless-userns-private","installer":"binaries","family":"drivers/podman","gateway":"tmachine","runner":"ubuntu-24.04"}
7390
]'
74-
matrix=$(jq -c --arg family "${FAMILY}" \
75-
'{include: map(select($family == "" or .family == $family))}' <<< "$rows")
91+
# `suite` names the row's tests in the job and artifact names.
92+
matrix=$(jq -c --arg family "${FAMILY}" '{include: map(
93+
select($family == "" or .family == $family or (.family | startswith($family + "/")))
94+
| .package //= ""
95+
| .suite = (if .package == "" then .family else "\(.family)/\(.package)" end)
96+
| .artifact = ([.suite, .environment, .installer] | join("-") | gsub("/"; "-"))
97+
)}' <<< "$rows")
7698
if [ "$(jq '.include | length' <<< "$matrix")" -eq 0 ]; then
7799
echo "::error::No E2E suites match family '${FAMILY}'"
78100
exit 1
@@ -81,7 +103,7 @@ jobs:
81103
echo "matrix=${matrix}" >> "$GITHUB_OUTPUT"
82104
83105
suites:
84-
name: E2E suites (${{ matrix.family }}/${{ matrix.package }}, ${{ matrix.environment }}, ${{ matrix.installer }})
106+
name: E2E suites (${{ matrix.suite }}, ${{ matrix.environment }}, ${{ matrix.installer }})
85107
needs: select
86108
strategy:
87109
fail-fast: false
@@ -145,11 +167,15 @@ jobs:
145167
# Retry dependency preparation, then run the suites once. The runner
146168
# builds the suites for the guest, so it needs no prepared archives.
147169
nix build --no-link .#openshell-test-runner || nix build --no-link .#openshell-test-runner
170+
packages=()
171+
if [ -n "${PACKAGE}" ]; then
172+
packages=(--package "${PACKAGE}")
173+
fi
148174
nix run .#openshell-test-runner -- \
149175
--environment "${ENVIRONMENT}" \
150176
--installer "${INSTALLER}" \
151177
--family "${FAMILY}" \
152-
--package "${PACKAGE}" \
178+
"${packages[@]}" \
153179
--gateway "${GATEWAY}" \
154180
--results artifacts/test-results
155181
@@ -162,7 +188,7 @@ jobs:
162188
if: always()
163189
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
164190
with:
165-
name: e2e-results-${{ matrix.family }}-${{ matrix.package }}-${{ matrix.environment }}-${{ matrix.installer }}
191+
name: e2e-results-${{ matrix.artifact }}
166192
path: artifacts/test-results
167193
if-no-files-found: ignore
168194
retention-days: 7

‎.github/workflows/integration-runner.yml‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ on:
2424
type: string
2525
default: >-
2626
[
27-
{"environment":"fedora-podman-rootful","installer":"rpm","testsuite":"provider-refresh"},
28-
{"environment":"fedora-podman-rootless","installer":"rpm","testsuite":"provider-refresh"}
27+
{"environment":"fedora-podman-rootless","installer":"binaries","testsuite":"e2e-podman"}
2928
]
3029
3130
permissions:

‎.github/workflows/integration-test.yml‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,14 @@ on:
2020
description: Integration-test category, used for the job name and concurrency key
2121
required: true
2222
type: string
23-
default: feature-specific
23+
default: driver-specific
2424
test-matrix:
2525
description: JSON array of environment, installer, and testsuite combinations
2626
required: true
2727
type: string
2828
default: >-
2929
[
30-
{"environment":"fedora-podman-rootful","installer":"rpm","testsuite":"provider-refresh"},
31-
{"environment":"fedora-podman-rootless","installer":"rpm","testsuite":"provider-refresh"}
30+
{"environment":"fedora-podman-rootless","installer":"binaries","testsuite":"e2e-podman"}
3231
]
3332
3433
permissions:

‎.github/workflows/release-dev.yml‎

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -132,19 +132,13 @@ jobs:
132132
actions: read
133133
contents: read
134134
packages: read
135-
uses: ./.github/workflows/integration-runner.yml
135+
uses: ./.github/workflows/e2e-suites.yml
136136
with:
137-
category: feature-specific
137+
family: features
138138
source-sha: ${{ needs.prepare-integration.outputs.source_sha }}
139139
integration-inputs-artifact-id: ${{ needs.prepare-integration.outputs.integration_inputs_artifact_id }}
140-
test-matrix: >-
141-
[
142-
{"environment":"fedora-podman-rootful","installer":"rpm","testsuite":"provider-refresh"},
143-
{"environment":"fedora-podman-rootless","installer":"rpm","testsuite":"provider-refresh"},
144-
{"environment":"ubuntu-docker-rootful","installer":"deb","testsuite":"oci-image"},
145-
{"environment":"fedora-podman-rootful","installer":"rpm","testsuite":"oci-image"},
146-
{"environment":"fedora-podman-rootless","installer":"rpm","testsuite":"oci-image"}
147-
]
140+
secrets:
141+
CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }}
148142

149143
docker-e2e:
150144
needs: [build-binaries, build-images]

‎.github/workflows/release-qualification.yml‎

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -85,19 +85,13 @@ jobs:
8585
actions: read
8686
contents: read
8787
packages: read
88-
uses: ./.github/workflows/integration-runner.yml
88+
uses: ./.github/workflows/e2e-suites.yml
8989
with:
90-
category: feature-specific
90+
family: features
9191
source-sha: ${{ needs.prepare-integration.outputs.source_sha }}
9292
integration-inputs-artifact-id: ${{ needs.prepare-integration.outputs.integration_inputs_artifact_id }}
93-
test-matrix: >-
94-
[
95-
{"environment":"fedora-podman-rootful","installer":"rpm","testsuite":"provider-refresh"},
96-
{"environment":"fedora-podman-rootless","installer":"rpm","testsuite":"provider-refresh"},
97-
{"environment":"ubuntu-docker-rootful","installer":"deb","testsuite":"oci-image"},
98-
{"environment":"fedora-podman-rootful","installer":"rpm","testsuite":"oci-image"},
99-
{"environment":"fedora-podman-rootless","installer":"rpm","testsuite":"oci-image"}
100-
]
93+
secrets:
94+
CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }}
10195

10296
docker-e2e:
10397
permissions:

‎AGENTS.md‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ Do not rely on this file for a full inventory. The detailed public and contribut
2222
| Path | Components | Purpose |
2323
|------|-----------|---------|
2424
| `crates/openshell-cli/` | CLI binary | User-facing command-line interface |
25-
| `crates/openshell-conformance/` | CLI conformance library | Reusable driver-agnostic scenarios and command runner |
2625
| `crates/openshell-server/` | Gateway server | Control-plane API, sandbox lifecycle, auth boundary |
2726
| `crates/openshell-sandbox/` | Sandbox runtime | Capability-free workload launcher, process identity, and seccomp-mediated I/O |
2827
| `crates/openshell-supervisor/` | Supervisor runtime | Gateway session, policy evaluation, credentials, and upstream networking |

‎CI.md‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,13 @@ selected. DEB and RPM packages build only when integration qualification is sele
165165
the DEB on Ubuntu with Docker and installs the CLI and gateway RPMs on Fedora with
166166
rootful and rootless Podman. These lanes run conformance using the matching runtime
167167
images. Release Dev, Release, and Pre-release use the same package installers.
168-
Fedora provider-refresh tests also use RPMs. The Podman driver-specific suites
169-
retain the binary installer because their fixtures configure its system service,
170-
local HTTP gateway, and CLI path. The manual Integration Tests workflow defaults
171-
to the package installers and downloads the packages selected by its matrix.
168+
The feature suites (`tests/suites/features`) run the same way, on the
169+
package installers. The Podman driver suite (`tests/suites/drivers/podman`) and the
170+
`e2e-podman` lane retain the binary installer because they configure its system
171+
service, local HTTP gateway, and CLI path. The driver suite and `e2e-podman` run
172+
only in `Branch E2E Checks`. The manual Integration Tests workflow runs the
173+
remaining tmachine testsuites, such as `e2e-podman`, and downloads the packages
174+
selected by its matrix.
172175

173176
Three opt-in labels enable the long-running E2E suites:
174177

‎Cargo.lock‎

Lines changed: 0 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)