//go:build workflows package main // fixup is a step to work around a Podman regression introduced by a bad // container escape mitigation. var fixup = Step{ Name: "Fix container filesystem", Run: "rm /var/run && ln -sf ../run /var", } // checkout is the standard actions/checkout step. var checkout = Step{Name: "Checkout", Uses: "actions/checkout@v4"} // toolchain is a step for setting up the Go toolchain. var toolchain = Step{ Name: "Set up Go toolchain", Uses: "actions/setup-go@v6", With: []KV[any]{ {"go-version-file", "go.mod"}, }, } // newUploadArtifact returns an actions/upload-artifact step uploading // everything in the result directory as the specified name. func newUploadArtifact(display, name string) Step { return Step{ Name: "Upload " + display, Uses: "actions/upload-artifact@v3", With: Map[any]{ {"name", name}, {"path", "result/*"}, {"retention-days", 1}, }, } } // newCIRequest returns a step for requesting a mbf CI task. func newCIRequest(display, name, id string) Step { return Step{ Name: "Request " + display, ID: id, Run: "HAKUREI_REV=\"$(git rev-parse --short HEAD)\" && " + "/rosa/bin/mbf ci " + name + " " + ". \"$(cat cmd/dist/VERSION)-$HAKUREI_REV\" && " + "echo \"rev=$HAKUREI_REV\" >> \"$GITHUB_OUTPUT\"", } } // install is a step to unpack and deploy a hakurei distribution created by a // step with identifier dist. var install = Step{ Name: "Install hakurei", Run: "HAKUREI_VERSION=\"$(cat cmd/dist/VERSION)-${{ steps.dist.outputs.rev }}\" && " + "tar xf \"result/hakurei-$HAKUREI_VERSION-amd64.tar.gz\" && " + "\"./hakurei-$HAKUREI_VERSION-amd64/install.sh\" && " + "sudo -u ubuntu hakurei version", } // newNixOSTest returns a step for running the named NixOS test. func newNixOSTest(name string) Step { return Step{ Name: "Run NixOS test", Run: "nix build " + "--out-link result " + "--print-out-paths " + "--print-build-logs " + "./test#checks.x86_64-linux." + name, } }