-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Artifacts and how to get them #5585
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
Merged
JackThomson2
merged 14 commits into
firecracker-microvm:main
from
ShadowCurse:pull_latest_s3_artifacts
Jan 9, 2026
Merged
Artifacts and how to get them #5585
JackThomson2
merged 14 commits into
firecracker-microvm:main
from
ShadowCurse:pull_latest_s3_artifacts
Jan 9, 2026
+280
−218
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7682ec8 to
24326d6
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5585 +/- ##
=======================================
Coverage 83.23% 83.23%
=======================================
Files 277 277
Lines 29312 29312
=======================================
Hits 24399 24399
Misses 4913 4913
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
1de4267 to
59fb38f
Compare
Manciukic
previously approved these changes
Dec 18, 2025
075b628 to
2b3c8b9
Compare
89f232b to
ccd1bd1
Compare
JackThomson2
reviewed
Jan 6, 2026
JackThomson2
reviewed
Jan 6, 2026
JackThomson2
reviewed
Jan 6, 2026
e446012 to
5e9524c
Compare
Manciukic
reviewed
Jan 9, 2026
The snapshot version check was iterating over last several FC versions pulled from S3, but it was unnecessary since there were no cross FC checks. Remove checks of old FC versions and only test the current version. Also remove fixup state from `setup-ci-artifacts.sh` since it is redundant now. Signed-off-by: Egor Lazarchuk <[email protected]>
Instead of using fixed artifact path for a current FC version pull newest artifacts from S3. This way we can update them independently while keeping old versions around. Unfortunately there is no simple way to query newest added directory in S3, so do the next best thing of looking through all files in all directories and determining the `newest` directory be the `LastModified` status of files inside. Signed-off-by: Egor Lazarchuk <[email protected]>
The old setup used `build/img` as the base directory for artifacts pulled from S3. In S3 the artifacts directory contains 1 subdirectory per architecture (x86_64 and aarch64). This was causing final local artifacts path to be `build/img/x86_64` or `build/img/aarch64`. This commit changes the structure a to have a separate `build/artifacts` directory with subdirectories containing different versions of artifacts. The path to currently used artifacts will be placed in `build/current_artifacts` file. This make is easy to switch between multiple versions of artifacts without a need to delete/download them. This also opens a door for A/B testing of artifacts. Signed-off-by: Egor Lazarchuk <[email protected]>
Downloading artifacts is a separate step that should not mess with currently selected artifacts. Signed-off-by: Egor Lazarchuk <[email protected]>
Modify `download_ci_artifacts` to accept artifacts paths as input and download by passing these paths to `ensure_ci_artifacts`. `ensure_ci_artifacts` will default to latest s3 artifacts if no args were provided. `--force` still works and only deletes specified artifacts. Signed-off-by: Egor Lazarchuk <[email protected]>
Add arguments names for binary paths for ab_test.py Signed-off-by: Egor Lazarchuk <[email protected]>
e9990c4 to
8ea0f52
Compare
Manciukic
previously approved these changes
Jan 9, 2026
JackThomson2
reviewed
Jan 9, 2026
JackThomson2
previously approved these changes
Jan 9, 2026
Update `ab_test.py` with ability to accept custom artifacts for A and B runs. Additionally update `pipeline_perf.py` as well. Now REVISION_A_ARTIFACTS and REVISION_B_ARTIFACTS environment variables specify custom artifacts which will be used in A/B test Signed-off-by: Egor Lazarchuk <[email protected]>
Some tests like style checks do not require artifacts to be present. Signed-off-by: Egor Lazarchuk <[email protected]>
Add missing descriptions for additional arguments Signed-off-by: Egor Lazarchuk <[email protected]>
The command is used internally in the `devtool` to make sure there are at lest some current artifacts set up. This behaviour is also required in the popular docker test, so convert it to a callable command. Signed-off-by: Egor Lazarchuk <[email protected]>
Add `--artifacts` option to `devtool test` to simplify changing between different sets of artifacts. Signed-off-by: Egor Lazarchuk <[email protected]>
- rename ensure_current_artifacts_are_set_up to ensure_current_artifacts to shorten a name a bit - rename LOCAL_ARTIFACTS_CURRENT_DIR_FILE to LOCAL_CURRENT_ARTIFACTS_FILE to make name more descriptive - Simplify logs regarding artifacts status - remove ` symbols from cmd_help as bash was interpreting them as actual commands to execute - other minor renamings Signed-off-by: Egor Lazarchuk <[email protected]>
`current_artifacts` is a name of the FILE that contains a path to artifacts that should be used for test runs. Same name was used for a DIRECTORY within devctr that contained artifacts copied from a build/artifacts... To remove this confusion rename the directory inside devctr to test_artifacts. Signed-off-by: Egor Lazarchuk <[email protected]>
e4c83a8
a363aeb to
e4c83a8
Compare
Manciukic
approved these changes
Jan 9, 2026
JackThomson2
approved these changes
Jan 9, 2026
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Status: Awaiting review
Indicates that a pull request is ready to be reviewed
Type: Enhancement
Indicates new feature requests
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes
devtoolpull latest artifacts from s3Reason
Artifacts are rebuilt periodically now, so update our tools to be able to pull latest ones.
Additionally, while we are at it, add ability to download and switch between multiple
artifacts. This also opened a path for A/B tests of artifacts as well.
License Acceptance
By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license. For more information on following Developer
Certificate of Origin and signing off your commits, please check
CONTRIBUTING.md.PR Checklist
tools/devtool checkbuild --allto verify that the PR passesbuild checks on all supported architectures.
tools/devtool checkstyleto verify that the PR passes theautomated style checks.
how they are solving the problem in a clear and encompassing way.
in the PR.
CHANGELOG.md.Runbook for Firecracker API changes.
integration tests.
TODO.rust-vmm.