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

Enabled Linux UVM tests to run on 1ES github runner pool #2357

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

Conversation

jiechen0826
Copy link
Contributor

This pull request includes several updates to the CI workflow configuration in .github/workflows/ci.yml.

The purpose of the change is to enable the Linux UVM tests in the CI workflow. Similar to the Windows UVM tests, the Linux UVM tests will be run on the 1ES Github Runner pool which supports nested virtualization.

The changes introduce a new job to create Linux boot files, modify existing jobs to incorporate these files, and update environment variables.

CI Workflow Enhancements:

  • New Job for Linux Boot Files Creation:

    • Added a create-linux-boot-files job to handle the creation and preparation of Linux boot files. This job includes steps for authenticating with Azure, downloading LCOW artifacts from the dev feed, and creating new rootfs for subsequent testing of the Linux GCS.
  • Environment Variables:

    • Introduced new environment variables (LCOW_ARTIFACT_PROJECT, LCOW_ARTIFACT_FEED, LCOW_ARTIFACT_NAME, LCOW_ARTIFACT_VERSION, LINUX_BOOT_FILES_PATH) to support the new job and its steps.
  • Job Dependencies:

    • Updated the test-windows job to depend on the new create-linux-boot-files job to ensure the necessary Linux boot files are available for testing.
  • Linux Boot Files Integration:

    • Added steps in the test-windows job to create a directory for Linux boot files, download the boot files from the artifact, and extract them for use in tests.
  • Test Command Update:

    • Modified the test command in the test-windows job to include the path to the Linux boot files, ensuring that the tests utilize the newly created files.

@jiechen0826 jiechen0826 requested a review from a team as a code owner January 21, 2025 18:47
run: |
mv ./downloaded_artifacts/LinuxBootFiles/kernel ${{ env.LINUX_BOOT_FILES_PATH }}/
mv ./downloaded_artifacts/LinuxBootFiles/vmlinux ${{ env.LINUX_BOOT_FILES_PATH }}/
mv ./downloaded_artifacts/rootfs-*.tar.gz .
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: I think it would be clearer to use a specific directory name for where we're putting the temporary rootfs

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sounds good, added a directory name for the temp rootfs.

echo "The full file name is $ROOTFS_TAR"

make clean
sudo make BASE=${{ github.workspace }}/$ROOTFS_TAR rootfs
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we also set "KMOD=1" as an arg to make?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Updated!

@jiechen0826 jiechen0826 force-pushed the jiechen3/github_runner branch 2 times, most recently from ad4e412 to 521163c Compare January 22, 2025 06:12
@jiechen0826 jiechen0826 force-pushed the jiechen3/github_runner branch 2 times, most recently from 41c33bb to 52a0e9b Compare January 23, 2025 19:25
Skipped uvm plan9 test until azurelinux rootfs is fixed

Signed-off-by: Jie Chen <[email protected]>
@jiechen0826 jiechen0826 force-pushed the jiechen3/github_runner branch from ecf1c0b to 897ca55 Compare January 23, 2025 20:41
@jiechen0826
Copy link
Contributor Author

Once #2359 is merged, TestLCOW_IPv6_Assignment will pass in CI.
Also skipped the Plan9_Writable test since it is failing on the azurelinux rootfs. Will reenable it once the rootfs is updated.
The other failing tests in CI are coming from HVSocket_*, which are quite flaky and will only pass after multiple retries.

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.

3 participants