Skip to content

Commit d27a794

Browse files
Merge pull request #294 from circleci/ONPREM-2960/runner-provisioner-smoke-tester
[ONPREM-2960] Add runner-provisioner smoke tests to CI tester
2 parents 3a8a1f1 + 8ff4448 commit d27a794

File tree

1 file changed

+41
-19
lines changed

1 file changed

+41
-19
lines changed

internal/testing/ci/smoke/smoke_test.go

Lines changed: 41 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,38 @@ type CLI struct {
2020
IsCanary bool `name:"is-canary" env:"IS_CANARY" default:"false" help:"Whether this is a canary or not. Some things like the Docker image repositories may differ for canaries."`
2121

2222
// Driver-specific parameters
23-
Machine `prefix:"machine-" envprefix:"MACHINE_"`
24-
Kubernetes `prefix:"kubernetes-" envprefix:"KUBERNETES_"`
23+
Machine `prefix:"machine-" envprefix:"MACHINE_"`
24+
Kubernetes `prefix:"kubernetes-" envprefix:"KUBERNETES_"`
25+
RunnerProvisioner `prefix:"runner-provisioner-" envprefix:"RUNNER_PROVISIONER_"`
2526
} `envprefix:"SMOKE_TESTS_" embed:""`
2627
}
2728

29+
type DriverConfig struct {
30+
CircleHost string `name:"circle-host" env:"CIRCLE_HOST" default:"https://circleci.com" help:"URL to your CircleCI host."`
31+
CircleToken secret.String `name:"circle-api-token" env:"CIRCLE_API_TOKEN" required:"true" help:"An API token to authenticate with the CircleCI API."`
32+
RunnerNamespace string `name:"runner-namespace" env:"RUNNER_NAMESPACE" default:"circleci-runner" help:"Namespace of the runner resource classes."`
33+
}
34+
2835
type Machine struct {
29-
CircleHost string `name:"circle-host" env:"CIRCLE_HOST" default:"https://circleci.com" help:"URL to your CircleCI host for the machine tests."`
30-
CircleToken secret.String `name:"circle-api-token" env:"CIRCLE_API_TOKEN" required:"true" help:"An API token to authenticate with the CircleCI API for the machine tests."`
31-
RunnerNamespace string `name:"runner-namespace" env:"RUNNER_NAMESPACE" default:"circleci-runner" help:"Namespace of the machine runner resource classes."`
32-
Skip bool `env:"SKIP" help:"Skip tests for the machine driver."`
36+
DriverConfig `embed:""`
37+
Skip bool `env:"SKIP" help:"Skip tests for the machine driver."`
3338
}
3439

3540
type Kubernetes struct {
36-
CircleHost string `name:"circle-host" env:"CIRCLE_HOST" default:"https://k9s.sphereci.com" help:"URL to your CircleCI host for the Kubernetes tests."`
37-
CircleToken secret.String `name:"circle-api-token" env:"CIRCLE_API_TOKEN" required:"true" help:"An API token to authenticate with the CircleCI API for the Kubernetes tests."`
38-
RunnerNamespace string `name:"runner-namespace" env:"RUNNER_NAMESPACE" default:"k9s" help:"Namespace of the container runner resource classes."`
39-
Skip bool `env:"SKIP" help:"Skip tests for the Kubernetes driver."`
41+
DriverConfig `embed:""`
42+
Skip bool `env:"SKIP" help:"Skip tests for the Kubernetes driver."`
4043

4144
RunnerInitTag string `env:"RUNNER_INIT_TAG" default:"" help:"The runner-init image tag to use in the smoke tests."`
4245
HelmChartBranch string `env:"HELM_CHART_BRANCH" default:"" help:"An optional branch name on the CircleCI-Public/container-runner-helm-chart repository. This can be used for testing a pre-release Helm chart version."`
4346
}
4447

48+
type RunnerProvisioner struct {
49+
DriverConfig `embed:""`
50+
Skip bool `env:"SKIP" default:"true" help:"Skip tests for the runner-provisioner driver."`
51+
52+
Branch string `env:"BRANCH" default:"main" help:"An optional branch name on the runner-provisioner repository. This can be used for testing a pre-release version."`
53+
}
54+
4555
var cli *CLI
4656

4757
func TestMain(m *testing.M) {
@@ -77,15 +87,11 @@ func TestSmoke(t *testing.T) {
7787
},
7888
},
7989
{
80-
name: "kubernetes success",
81-
driver: "kubernetes",
82-
//circleHost: cli.Tests.Kubernetes.CircleHost,
83-
//circleToken: cli.Tests.Kubernetes.CircleToken,
84-
//namespace: cli.Tests.Kubernetes.RunnerNamespace,
85-
// TODO: Temporarily run the Kubernetes smoke tests on cloud until we complete https://circleci.atlassian.net/browse/ONPREM-2237
86-
circleHost: cli.Tests.Machine.CircleHost,
87-
circleToken: cli.Tests.Machine.CircleToken,
88-
namespace: cli.Tests.Machine.RunnerNamespace,
90+
name: "kubernetes success",
91+
driver: "kubernetes",
92+
circleHost: cli.Tests.Kubernetes.CircleHost,
93+
circleToken: cli.Tests.Kubernetes.CircleToken,
94+
namespace: cli.Tests.Kubernetes.RunnerNamespace,
8995
skip: cli.Tests.Kubernetes.Skip,
9096
cases: []TestCase{
9197
{
@@ -95,6 +101,21 @@ func TestSmoke(t *testing.T) {
95101
},
96102
},
97103
},
104+
{
105+
name: "runner-provisioner success",
106+
driver: "provisioner",
107+
circleHost: cli.Tests.RunnerProvisioner.CircleHost,
108+
circleToken: cli.Tests.RunnerProvisioner.CircleToken,
109+
namespace: cli.Tests.RunnerProvisioner.RunnerNamespace,
110+
skip: cli.Tests.RunnerProvisioner.Skip,
111+
cases: []TestCase{
112+
{
113+
WorkflowName: "provisioner",
114+
WantWorkflowStatus: "success",
115+
CheckJobs: nil,
116+
},
117+
},
118+
},
98119
}
99120

100121
for _, tt := range tests {
@@ -118,6 +139,7 @@ func TestSmoke(t *testing.T) {
118139
ExtraPipelineParameters: map[string]any{
119140
"kubernetes_helm_chart_branch": cli.Tests.HelmChartBranch,
120141
"kubernetes_runner_init_tag": cli.Tests.RunnerInitTag,
142+
"provisioner_branch": cli.Tests.RunnerProvisioner.Branch,
121143
},
122144
}
123145
st.Setup(t)

0 commit comments

Comments
 (0)