Skip to content

Commit 40dbfad

Browse files
authored
We work at a computer company. Let's use our computers (#1029)
Presently there is a shortage of servers to run Buildomat workers for CI jobs. Fortunately, we work at a company that makes servers. So we can just make more servers. And then we can use those servers for CI. And then everyone's happy. In order to do that, we must use the `lab-2.0-gimlet` Buildomat target rather than `helios-2.0` or `lab-2.0-opte` targets. It's possible that some or all of Omicron's CI cannot easily do that due to special-cased behavior for the `i86pc` architecture to detect running in a dev environment. Luckily, no such behavior exists in Propolis, so we can just switch our Buildomat jobs to the `lab-2.0-gimlet` target and it will (mostly) Just Work. This way, we're not competing with Omicron builds for the relatively scarce non-Gimlet workers. One change to the `run_phd_with_args.sh` was required to make it compatible with the `lab-2.0-gimlet` target. Previously, that script hard-coded the names of disks on the `lab-2.0-opte` workers, which don't exist on the Gimlet workers. Instead, since the names of disks on the Gimlet workers include the SSD's WWN, we must use `pilot local disk list` to list all the U.2 devices at runtime, and use them when creating the zpool. Note that this does now tie that script to the Gimlet workers, but...that's fine, since the previous version only worked on the non-Gimlet lab workers.
1 parent 7d4e2a4 commit 40dbfad

3 files changed

Lines changed: 7 additions & 3 deletions

File tree

.github/buildomat/jobs/phd-run-migrate-from-base.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#:
33
#: name = "phd-run-migrate-from-base"
44
#: variety = "basic"
5-
#: target = "lab-2.0-opte"
5+
#: target = "lab-2.0-gimlet"
66
#: output_rules = [
77
#: "/tmp/phd-runner.log",
88
#: "/tmp/phd-tmp-files.tar.gz",

.github/buildomat/jobs/phd-run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#:
33
#: name = "phd-run"
44
#: variety = "basic"
5-
#: target = "lab-2.0-opte"
5+
#: target = "lab-2.0-gimlet"
66
#: output_rules = [
77
#: "/tmp/phd-runner.log",
88
#: "/tmp/phd-tmp-files.tar.gz",

.github/buildomat/phd-run-with-args.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ phddir="$PWD/phd-test"
1313

1414
# Put artifacts on the runner's SSDs (the /work ramdisk is small by design, too
1515
# small for images of any appreciable size).
16-
pfexec zpool create -f phd-artifacts c1t1d0 c2t1d0
16+
17+
# Find usable disks to make a zpool on. Note that this only works on Oxide
18+
# compute sled runners such as `lab-2.0-gimlet`.
19+
disks=( $(pilot local disk list -H -o type,disk | grep -v 'M.2' | cut -f 2) )
20+
pfexec zpool create -f phd-artifacts ${disks[@]}
1721
artifactdir="/phd-artifacts"
1822

1923
banner 'Inputs'

0 commit comments

Comments
 (0)