Skip to content

Conversation

taspelund
Copy link
Contributor

No description provided.

@taspelund taspelund added want testing bgp Border Gateway Protocol mgd Maghemite daemon customer For any bug reports or feature requests tied to customer requests labels Apr 10, 2025
@taspelund taspelund self-assigned this Apr 10, 2025
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>
taspelund added 3 commits May 1, 2025 17:06
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"
Copy link
Collaborator

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.

taspelund added 2 commits May 5, 2025 15:14
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Comment on lines 5 to 25
#: 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
Copy link
Contributor

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.

taspelund and others added 9 commits May 7, 2025 23:32
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>
@jclulow
Copy link
Contributor

jclulow commented May 8, 2025

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/

taspelund added 2 commits May 30, 2025 12:37
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
Signed-off-by: Trey Aspelund <trey@oxidecomputer.com>
@taspelund taspelund marked this pull request as ready for review May 30, 2025 22:50
taspelund added 16 commits June 2, 2025 19:18
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>
@taspelund
Copy link
Contributor Author

@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>
Copy link
Collaborator

@rcgoodfellow rcgoodfellow left a 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

@taspelund taspelund merged commit a7a1eaf into main Jun 26, 2025
13 checks passed
@taspelund taspelund deleted the ci_interop branch June 26, 2025 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bgp Border Gateway Protocol customer For any bug reports or feature requests tied to customer requests mgd Maghemite daemon testing want
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants