Skip to content

test: add Podman integration tests for OCI runtime compatibility#1143

Merged
Ron (rjaegers) merged 31 commits intomainfrom
copilot/test-compatibility-with-podman
Feb 27, 2026
Merged

test: add Podman integration tests for OCI runtime compatibility#1143
Ron (rjaegers) merged 31 commits intomainfrom
copilot/test-compatibility-with-podman

Conversation

Copy link
Contributor

Copilot AI commented Feb 6, 2026

This pull request introduces a new workflow for running integration tests using Podman in the CI pipeline. The main change is the addition of a dedicated workflow for Podman-based integration testing, which improves the flexibility and coverage of container image testing.

Integration testing improvements:

  • Added a new job integration-test-podman to .github/workflows/wc-build-push-test.yml that triggers Podman-based integration tests when an integration test file is provided.
  • Created .github/workflows/wc-integration-test-podman.yml workflow file, which installs Podman, logs into the container registry, pulls the specified image, and runs integration tests using the bats testing framework inside the container. Test results are uploaded as artifacts.

Co-authored-by: rjaegers <45816308+rjaegers@users.noreply.github.com>
Co-authored-by: rjaegers <45816308+rjaegers@users.noreply.github.com>
@github-actions
Copy link
Contributor

github-actions bot commented Feb 6, 2026

📦 Container Size Analysis

Note

Comparing ghcr.io/philips-software/amp-devcontainer-base:edgeghcr.io/philips-software/amp-devcontainer-base:pr-1143

📈 Size Comparison Table

OS/Platform Previous Current Change Trend
linux/amd64 175.16 MB 175.16 MB +224 B (+0%) 🔼
linux/arm64 167.63 MB 167.63 MB +131 B (+0%) 🔼

@github-actions
Copy link
Contributor

github-actions bot commented Feb 6, 2026

⚠️MegaLinter analysis: Success with warnings

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ ACTION actionlint 23 0 0 0.62s
✅ DOCKERFILE hadolint 3 0 0 0.77s
✅ GHERKIN gherkin-lint 6 0 0 2.69s
✅ JSON npm-package-json-lint yes no no 0.5s
✅ JSON prettier 21 4 0 0 0.63s
✅ JSON v8r 21 0 0 7.76s
✅ MARKDOWN markdownlint 12 0 0 0 0.97s
✅ MARKDOWN markdown-table-formatter 12 0 0 0 0.27s
✅ REPOSITORY checkov yes no no 17.97s
✅ REPOSITORY gitleaks yes no no 0.59s
✅ REPOSITORY git_diff yes no no 0.01s
✅ REPOSITORY grype yes no no 30.61s
✅ REPOSITORY secretlint yes no no 0.93s
✅ REPOSITORY syft yes no no 1.97s
✅ REPOSITORY trivy yes no no 7.35s
✅ REPOSITORY trivy-sbom yes no no 0.23s
✅ REPOSITORY trufflehog yes no no 2.19s
⚠️ SPELL lychee 83 1 0 10.93s
✅ YAML prettier 31 0 0 0 0.98s
✅ YAML v8r 31 0 0 8.49s
✅ YAML yamllint 31 0 0 0.75s

Detailed Issues

⚠️ SPELL / lychee - 1 error
[403] https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads | Network error: Forbidden
[IGNORED] docker://pandoc/extra:3.7.0@sha256:a703d335fa237f8fc3303329d87e2555dca5187930da38bfa9010fa4e690933a | Unsupported: Error creating request client: builder error for url (docker://pandoc/extra:3.7.0@sha256:a703d335fa237f8fc3303329d87e2555dca5187930da38bfa9010fa4e690933a)
[IGNORED] https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/philips-software/amp-devcontainer | Unsupported: Error creating request client: builder error for url (vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/philips-software/amp-devcontainer)
📝 Summary
---------------------
🔍 Total..........126
✅ Successful.....123
⏳ Timeouts.........0
🔀 Redirected.......0
👻 Excluded.........0
❓ Unknown..........0
🚫 Errors...........1

Errors in .github/TOOL_VERSION_ISSUE_TEMPLATE.md
[403] https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads | Network error: Forbidden

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.3.0 --custom-flavor-setup --custom-flavor-linters ACTION_ACTIONLINT,DOCKERFILE_HADOLINT,GHERKIN_GHERKIN_LINT,JSON_V8R,JSON_PRETTIER,JSON_NPM_PACKAGE_JSON_LINT,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,REPOSITORY_CHECKOV,REPOSITORY_GIT_DIFF,REPOSITORY_GITLEAKS,REPOSITORY_GRYPE,REPOSITORY_SECRETLINT,REPOSITORY_SYFT,REPOSITORY_TRIVY,REPOSITORY_TRIVY_SBOM,REPOSITORY_TRUFFLEHOG,SPELL_LYCHEE,YAML_PRETTIER,YAML_YAMLLINT,YAML_V8R

MegaLinter is graciously provided by OX Security

Co-authored-by: rjaegers <45816308+rjaegers@users.noreply.github.com>
Copilot AI changed the title [WIP] Run integration tests with Podman for OCI runtimes compatibility Add Podman integration tests for OCI runtime compatibility Feb 6, 2026
Copilot AI requested a review from Ron (rjaegers) February 6, 2026 16:28
@github-actions
Copy link
Contributor

github-actions bot commented Feb 6, 2026

📦 Container Size Analysis

Note

Comparing ghcr.io/philips-software/amp-devcontainer-rust:edgeghcr.io/philips-software/amp-devcontainer-rust:pr-1143

📈 Size Comparison Table

OS/Platform Previous Current Change Trend
linux/amd64 555.57 MB 555.57 MB +110 B (+0%) 🔼
linux/arm64 509.75 MB 509.75 MB +211 B (+0%) 🔼

@github-actions
Copy link
Contributor

github-actions bot commented Feb 6, 2026

📦 Container Size Analysis

Note

Comparing ghcr.io/philips-software/amp-devcontainer-cpp:edgeghcr.io/philips-software/amp-devcontainer-cpp:pr-1143

📈 Size Comparison Table

OS/Platform Previous Current Change Trend
linux/amd64 696.86 MB 696.86 MB +539 B (+0%) 🔼
linux/arm64 677.67 MB 677.67 MB +246 B (+0%) 🔼

@github-actions
Copy link
Contributor

github-actions bot commented Feb 6, 2026

Test Results

 13 files  + 6   13 suites  +6   19m 51s ⏱️ + 15m 51s
 33 tests ± 0   33 ✅ ± 0  0 💤 ±0  0 ❌ ±0 
137 runs  +68  137 ✅ +68  0 💤 ±0  0 ❌ ±0 

Results for commit aae1dd9. ± Comparison against base commit 094efc5.

♻️ This comment has been updated with latest results.

@rjaegers
Copy link
Member

Copilot some ci checks are failing. Mostly due to the possibility of code injection via template expansion in GitHub workflows. Please fix these issues. Use the same patterns that are used in other workflow files, adding unvalidated input to the environment, and using environment variables in shell commands instead. Make sure to properly quote all input that can contains spaces.

Move all template expansions to environment variables and use them in
shell commands instead to prevent code injection. Properly quote all
variables that can contain spaces.

Co-authored-by: rjaegers <45816308+rjaegers@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 10, 2026

Copilot some ci checks are failing. Mostly due to the possibility of code injection via template expansion in GitHub workflows. Please fix these issues. Use the same patterns that are used in other w...

Fixed in commit aa27255. All template expansions in shell commands have been moved to environment variables, and all variables are properly quoted to prevent code injection. The workflow now follows the same security pattern used in other workflows like wc-build-push.yml.

@rjaegers Ron (rjaegers) changed the title Add Podman integration tests for OCI runtime compatibility test: add Podman integration tests for OCI runtime compatibility Feb 10, 2026
@rjaegers
Copy link
Member

Copilot the test for Podman on the x86 configuration seem to fail. While for arm64 they run successfully. Can you diagnose and fix?

Add --network=host flag to podman run command to ensure DNS resolution
works properly in containers. This fixes the "failed to lookup address
information" errors that were occurring on x64 runners when tests tried
to download Windows SDK from aka.ms domains.

Co-authored-by: rjaegers <45816308+rjaegers@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 20, 2026

Copilot the test for Podman on the x86 configuration seem to fail. While for arm64 they run successfully. Can you diagnose and fix?

Fixed in commit 2f5b5c1. The issue was DNS resolution failure in Podman containers on x64 runners. Podman doesn't inherit the host's DNS configuration by default like Docker does. Added --network=host flag to the podman run command to use the host's network stack, which resolves the "failed to lookup address information" errors when tests tried to download the Windows SDK from aka.ms domains.

Copy link
Contributor

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

Adds a Podman-based reusable integration test workflow to run the existing BATS integration tests under an alternative OCI runtime (Podman) alongside the current GitHub Actions container:-based (Docker) approach, strengthening OCI runtime compatibility coverage for the devcontainer images.

Changes:

  • Introduces a new reusable workflow to run integration tests via podman pull + podman run.
  • Updates the build/push/test reusable workflow to also invoke the new Podman integration test job in CI.
  • Publishes separate Podman test result artifacts to be picked up by the existing test result publishing job.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
.github/workflows/wc-integration-test-podman.yml New reusable workflow that installs Podman, pulls the built image by digest, runs BATS inside a Podman container, and uploads JUnit XML artifacts.
.github/workflows/wc-build-push-test.yml Adds an integration-test-podman job that calls the new Podman workflow after image build/push.

@rjaegers Ron (rjaegers) requested a review from a team February 25, 2026 18:23
@rjaegers Ron (rjaegers) requested a review from a team February 26, 2026 18:31
@sonarqubecloud
Copy link

@rjaegers Ron (rjaegers) added this pull request to the merge queue Feb 27, 2026
Merged via the queue into main with commit 75ae0ce Feb 27, 2026
55 checks passed
@rjaegers Ron (rjaegers) deleted the copilot/test-compatibility-with-podman branch February 27, 2026 05:47
@github-actions
Copy link
Contributor

Pull Request Report (#1143)

Static measures

Description Value
Number of added lines 209
Number of deleted lines 98
Number of changed files 6
Number of commits 31
Number of reviews 7
Number of comments (w/o review comments) 12
Number of reviews that contains a comment to resolve 4
Number of reviews that requested a change from the author 0
Number of reviews that approved the Pull Request 3
Get the total number of participants of a Pull Request 11

Time related measures

Description Value
PR lead time (from creation to close of PR) 20.6 Days
Time that was spend on the branch before the PR was created 1 Sec
Time that was spend on the branch before the PR was merged 20.6 Days
Time to merge after last review 9 Hours

Status check related measures

Description Value
Total runtime for last status check run (Workflow for PR) 1.2 Hours
Total time spend in last status check run on PR 10.8 Hours

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