-
Notifications
You must be signed in to change notification settings - Fork 5
Add buildomat job for interop testing #466
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
Conversation
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
#: | ||
#: name = "test-interop" | ||
#: variety = "basic" | ||
#: target = "helios-2.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs to be something like `lab-2.0-opte' to get a physical lab machine, see this as an example.
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
#: target = "lab-2.0-opte" | ||
#: rust_toolchain = "stable" | ||
#: access_repos = [ | ||
#: "oxidecomputer/testbed", | ||
#: ] | ||
#: output_rules = [ | ||
#: "/work/*", | ||
#: ] | ||
#: | ||
#: [dependencies.image] | ||
#: job = "image" | ||
#: | ||
|
||
set -x | ||
set -e | ||
|
||
cargo --version | ||
rustc --version | ||
|
||
cargo install cargo-nextest | ||
pfexec pkg install protobuf git |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that there is no pkg and no git in the lab-2.0-* target environment. Generally I would recommend that you build anything that you need in a regular helios-2.0 job, put the needed bits and pieces in an archive as an output rule, and then unpack those things in this job. We copy any outputs from a job you depend on into /input
for this job; some more detail is under the documentation for the dependencies configuration property in the buildomat README.
The interop falcon topology must be run on hardware w/ OPTE, so this needs to be split into a separate job w/ target lab-2.0-opte. Modify the build stage to output a tarball that the test stage can execute on its own. Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
I pushed a few changes that hopefully inch a little closer to success. I'm not sure if cargo-nextest is a requirement, or if you could just run the test binaries directly? If you can do the latter, you might look at this older version of what propolis used to do for testing: https://github.com/oxidecomputer/propolis/tree/fc09089e2d8a238637449a59752bf134f52631bb/.github/buildomat/jobs The tests-build.sh and test-run.sh jobs have long since been replaced with something else, I believe, but show a basic way to build a bunch of tests with cargo and then ship them and run them on another system. If cargo-nextest is actually necessary for some reason, you might want to look at the "archive" facility it has: https://nexte.st/docs/ci-features/archiving/ |
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Move bgp/interface/route info collection into its own function. Call this function once before the test runs, then again as part of the error handler. Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
@rcgoodfellow @jclulow I think we've got things at a pretty stable point... CI passed the last 3 times since moving to the new gimlet buildomat target + disabling ssh host validation. When you get some time, would you guys mind reviewing this and seeing if you're both satisfied with it? |
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
moving from backticks to $() substitution required different escaping for a variable passed to awk. Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks for the persistence in getting this across the line @taspelund
No description provided.