Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci(podman): add state tests in simple container #273

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

andrii-suse
Copy link

PR progress checklist (to be filled in by reviewers)

  • Changes to documentation are appropriate (or tick if not required)
  • Changes to tests are appropriate (or tick if not required)
  • Reviews completed

What type of PR is this?

Primary type

  • [build] Changes related to the build system
  • [chore] Changes to the build process or auxiliary tools and libraries such as documentation generation
  • [ci] Changes to the continuous integration configuration
  • [feat] A new feature
  • [fix] A bug fix
  • [perf] A code change that improves performance
  • [refactor] A code change that neither fixes a bug nor adds a feature
  • [revert] A change used to revert a previous commit
  • [style] Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)

Secondary type

  • [docs] Documentation changes
  • [test] Adding missing or correcting existing tests

Does this PR introduce a BREAKING CHANGE?

No.

Related issues and/or pull requests

#267

Describe the changes you're proposing

Currently CI uses kitchen in gitlab runners, which is good, but heavy solution with complex dependencies and non-trivial setup. It is closer to system level testing.
This PR proposes CI on unit-test level, with is convenient way to quickly verify correctness of formula changes or reproduce bugs, etc.
Additional features:

  • no dependencies besides podman - everyone should be able to run simple tests in any environment;
  • podman cache to quickly bootstrap tests when re-run is needed;
  • possibility to log into the container and perform native troubleshooting in bash shell;
  • easy integration with CI providers like github workflows, etc;
  • provides easy way to learn how functions work, report bugs, share ideas, etc.

Pillar / config required to test the proposed changes

Debug log showing how the proposed changes work

Linked github workflow should have the logs.

Documentation checklist

  • Updated the README (e.g. Available states).
  • Updated pillar.example.

Testing checklist

  • Included in Kitchen (i.e. under state_top).
  • Covered by new/existing tests (e.g. InSpec, Serverspec, etc.).
  • Updated the relevant test pillar.

Additional context

@andrii-suse andrii-suse requested a review from a team as a code owner April 25, 2023 10:53
Copy link
Contributor

@baby-gnu baby-gnu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that instead of using a lib as a shebang, you should source the file.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The precommit fails on this file

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The precommit fails on this file

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The precommit fails on this file

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The precommit fails on this file

@andrii-suse
Copy link
Author

andrii-suse commented Apr 26, 2023

I think that instead of using a lib as a shebang, you should source the file.

The advantage of shebang is that the .sh file can be sourced in some scenarios. E.g. if I have custom way to set up test container and still run 10-password.sh in it (just as bash script, not as executable). Then all initialization is skipped and test scenario is still useful.

Edit: Ah I don't need to execute those commands that are in the .sh files. I need to setup test environment and pass those commands into that environment. So source will not work.

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.

2 participants