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

run-vmtest@v2 and build-selftests@v2 #150

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

theihor
Copy link
Contributor

@theihor theihor commented Nov 1, 2024

Updates to various actions and scripts with breaking API changes. The goal of the changes is to make the actions usable by libbpf/libbpf#862.

See commits for details.

@theihor theihor changed the title run-vmtest@v2: remove unused img input, make vmlinuz optional run-vmtest@v2 Nov 5, 2024
@theihor theihor force-pushed the run-vmtest-v2 branch 11 times, most recently from fa191b0 to 08a3466 Compare November 6, 2024 23:17
theihor and others added 5 commits November 6, 2024 16:45
Previously the first run-vmtest action step would always search for
vmlinux image in KERNEL_ROOT, and then copy it to path specified by
inputs.vmlinuz

However, the caller may want to pass vmlinux image directly.

Change this behavior: search only inputs.vmlinuz was not passed.

Signed-off-by: Ihor Solodrai <[email protected]>
Various changes in the scripts aimed to make run-vmtest action usable
by libbpf/libbpf workflows:

* Change how ALLOWLIST and DENYLIST are set up. A script executing in
  qemu (vmtest) is now expecting a single $ALLOWLIST_FILE and
  $DENYLIST_FILE which are parsed by read_lists as usual. This change
  makes it easier for an action caller to modify the lists, as they are
  often composed from a number of files.

* Update vmtest init command (executed in qemu before the tests), to
  create a link from /boot to vmlinux being tested. This is necessary
  when older kernels are tested.

* Allow some env variables to be defined outside of the scripts to
  give the caller more control over the action. That is, before
  setting a default value, check if the variable is set.

* Remove env vars like $THISDIR, $PROJECT_NAME etc. in favor of
  $GITHUB_ACTION_PATH, $GITHUB_WORKSPACE and $KERNEL_ROOT

* Move selftests running scripts from ci/vmtest to run-vmtest, so that
  they are local to the action

Signed-off-by: Ihor Solodrai <[email protected]>
@theihor theihor force-pushed the run-vmtest-v2 branch 4 times, most recently from 5db3a07 to 766dd98 Compare November 11, 2024 21:46
@theihor theihor self-assigned this Nov 12, 2024
@theihor theihor force-pushed the run-vmtest-v2 branch 2 times, most recently from 9f45a6b to 1c98688 Compare November 12, 2024 22:41
Adjust run-vmtest scripts so that the action is callable from
libbpf/libbpf, particularly with pre-built kernels.

More environment variables can now be set by a caller to direct the
scripts behavior: SELFTESTS_BPF, VERISTAT_CONFIGS, VMLINUX, VMLINUZ

A symlink to standard vmlinux location is created before vmtest is
executed to accomodate older kernels.

The command passed tp vmtest is refactored, separating generic vmtet
init and VMTEST_SCRIPT execution.

Search and processing of json test summaries is now noop in case when
no summaries are found.

Signed-off-by: Ihor Solodrai <[email protected]>
FETCH_DEPTH now controls how to get linux source. If it's 0, the
snapshot is searched for and downloaded if found.  Otherwise git clone
--depth $FETCH_DEPTH is executed, and .git is preserved.

Signed-off-by: Ihor Solodrai <[email protected]>
Changes in action inputs:
  * kernel-root is now a required input
  * kernel, kbuild-output and max-make-jobs are removed

kernel-root input is required, because to build selftests
one must to clone a kernel source tree first.

The build script behavior can be directed more granularly with env
variables:
  * KBUILD_OUTPUT now defaults to the kernel-root
  * VMLINUX_BTF now can be set externally
  * MAX_MAKE_JOBS can be set as env variable if desired

Preparation script logic is removed: the rationale is that the caller
is responsible for setting up required environment before building.

Signed-off-by: Ihor Solodrai <[email protected]>
Introduce CACHED_KERNEL_BUILD variable and change download/build steps
to make use of the cached incremental build on libbpf/ci workflows.

Change parameters passed to build-selftests.

Add a step preparing allow/denylist before running vmtest.

Signed-off-by: Ihor Solodrai <[email protected]>
@theihor theihor changed the title run-vmtest@v2 run-vmtest@v2 and build-selftests@v2 Nov 13, 2024
@theihor theihor marked this pull request as ready for review November 13, 2024 22:33
@theihor theihor requested a review from chantra November 13, 2024 23:11
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.

1 participant