Skip to content

Conversation

@sou1118
Copy link
Contributor

@sou1118 sou1118 commented Mar 24, 2025

Description

This PR fixes a CI workflow for testing the compatibility between Podman and Youki as an OCI runtime. The workflow now uses a Fedora VM via Lima to provide a more stable and appropriate testing environment, ensuring a more accurate assessment of how Youki performs with higher-level container management tools.

This change effect could check it https://github.com/youki-dev/youki/actions/runs/14129458601 .

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Performance improvement
  • Test updates
  • CI/CD related changes
  • Other (please describe):

Testing

  • Added new unit tests
  • Added new integration tests
  • Ran existing test suite
  • Tested manually (please provide steps)

Related Issues

Fixes #

Additional Context

The updated workflow:

  1. Sets up a Fedora VM using Lima (rather than the previous environment)
  2. Builds Youki from source and installs it as the system's OCI runtime
  3. Installs all necessary Podman dependencies from Fedora's package repositories
  4. Builds Podman from source with appropriate tags for full feature support
  5. Executes Podman's system tests with Youki as the runtime

The move to Fedora provides a more suitable environment for Podman testing, as Fedora is the primary development platform for Podman. This change resolves previous environment issues including PATH variable problems and missing dependencies that were causing test failures.

The test suite now shows significantly improved results, with most tests passing successfully. This confirms that Youki functions properly as a drop-in replacement for other OCI runtimes when used with Podman.

@sou1118 sou1118 force-pushed the feature/podman-test-ci branch 12 times, most recently from 0f6d89b to fd440ed Compare March 25, 2025 12:15
@sou1118 sou1118 marked this pull request as ready for review March 25, 2025 12:33
@YJDoc2
Copy link
Collaborator

YJDoc2 commented Mar 25, 2025

Hey @sou1118 , thanks for doing this! There are a couple of things in this

  1. run all of the tests instead of just first one. I'm pretty sure there are several tests later on which used to fail because of missing skopeo or aardvark dep. If we are removing the step to install it, we need to check if that actually works or not
  2. If we are not building podman from main, we need to use tests from tag which was used to build the podman. It is possible that tests in main are not passable with podman version that we have installed in runner.

Also when I commented we need to fix podman tests, my scope was larger than just this. See the issue for more details, but my main intention was that maybe with lima or something (I'm not much familiar with it) , we could run these tests in fedora instead of ubuntu which solves a lof of our dependencies issues (skopeo and aardvark are packaged for fedora officially and are pretty recent, the bats and bash are also pretty new). Depending on if lima launches a proper vm or just a container we would also be able to solve 3rd point mentioned in the issue.

Can you check that? Thanks :)

@sou1118
Copy link
Contributor Author

sou1118 commented Mar 25, 2025

Hi @YJDoc2. Thank you for the feedback and clarification!

I misunderstood the scope of this task. I'll revise the approach to address the points you raised.

I'll work on implementing this and update the PR accordingly :-)

@sou1118 sou1118 marked this pull request as draft March 25, 2025 13:07
@sou1118 sou1118 force-pushed the feature/podman-test-ci branch 12 times, most recently from 485eb49 to 18f234d Compare March 26, 2025 14:37
@sou1118 sou1118 force-pushed the feature/podman-test-ci branch 6 times, most recently from 3a59dc9 to b0e7d40 Compare March 27, 2025 11:31
@YJDoc2
Copy link
Collaborator

YJDoc2 commented Mar 27, 2025

Hey @sou1118 , I've cancelled the last run as the tests were failing withcrun not found . Probably some issue with passing env vars to lima.

Btw, I noticed that you are iterating for fixing the CI and CI fixes are usually pain to get right. I have tried following two ways before to help me iterate faster maybe they can help you as well

  1. https://github.com/nektos/act This basically runs a docker container with same image as github CI and then runs the commands from the CI yaml file into it. It is Basically runing the CI into you're local. However, the docker image it uses is pretty heavy maybe around 3-4 GB even the smallest one , so depends on if you have enough network and local storage for this. I have tried this a couple of times and it worked, but had issues with storage space so don't use it much now.
  2. Instead of pushing your changes here and making it run the whole test suite , in past I have created another branch , set the trigger as manual trigger and kept pushing to my personal fork of the repo. I had complete control of CI there, so I could immediately cancel if I noticed something going wrong ; and could selectively trigger just the podman CI instead of whole CI suite.

Of course you can keep pushing here, but I think maybe these will help you iterate faster. Thanks :)

Let me know if you need any help from my side. I might try to take a look at it on weekend.

@sou1118 sou1118 force-pushed the feature/podman-test-ci branch from b0e7d40 to 9f9013b Compare March 27, 2025 12:08
@sou1118
Copy link
Contributor Author

sou1118 commented Mar 27, 2025

Hi @YJDoc2
I apologize for running the CI multiple times and causing inconvenience.

It seems that in the lima environment, shell command chaining with && doesn't work as expected. After separating the commands, it started working properly:

      # build youki
      - run: just youki-release
      - run: lima sudo rm /usr/bin/crun
      - run: lima sudo cp youki /usr/local/bin
      - run: lima sudo cp youki /usr/bin/crun

Your suggestions for faster iteration (using nektos/act or a personal fork) are very helpful. I'll utilize these methods to work more efficiently on CI problem-solving in the future.

Thank you for your advice and support. Please let me know if there are any other issues I can help with.

@sou1118 sou1118 force-pushed the feature/podman-test-ci branch 10 times, most recently from 594365c to c93a568 Compare March 28, 2025 12:58
Signed-off-by: Kattyan <hello@kattyan.dev>
@sou1118 sou1118 force-pushed the feature/podman-test-ci branch from c93a568 to f857ec6 Compare March 28, 2025 13:51
@sou1118 sou1118 changed the title chore(ci): fix podman-tests ci chore(ci): fix podman-tests ci to use fedora on lima Mar 28, 2025
@sou1118 sou1118 marked this pull request as ready for review March 28, 2025 13:57
@sou1118
Copy link
Contributor Author

sou1118 commented Apr 6, 2025

Hi @YJDoc2!
I've fixed the podman-tests CI workflow and it's now able to run.
Could you help me understand which test cases are critical and need to pass for us to consider this integration successful?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants