Skip to content

Commit 0d21c33

Browse files
committed
tests: add deploy and purge test
1 parent 3547781 commit 0d21c33

File tree

4 files changed

+89
-1
lines changed

4 files changed

+89
-1
lines changed

e2e/tests/deploy/deploy.go

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,73 @@ var _ = DevSpaceDescribe("deploy", func() {
3636
// TODO
3737
})
3838

39+
ginkgo.It("should deploy concurrent deployments", func() {
40+
tempDir, err := framework.CopyToTempDir("tests/deploy/testdata/helm_concurrent_new")
41+
framework.ExpectNoError(err)
42+
defer framework.CleanupTempDir(initialDir, tempDir)
43+
44+
ns, err := kubeClient.CreateNamespace("deploy")
45+
framework.ExpectNoError(err)
46+
defer func() {
47+
err := kubeClient.DeleteNamespace(ns)
48+
framework.ExpectNoError(err)
49+
}()
50+
51+
// create a new dev command
52+
deployCmd := &cmd.DeployCmd{
53+
GlobalFlags: &flags.GlobalFlags{
54+
NoWarn: true,
55+
Namespace: ns,
56+
},
57+
}
58+
59+
// run the command
60+
err = deployCmd.Run(f)
61+
framework.ExpectNoError(err)
62+
63+
// check if deployments are there
64+
deploy, err := kubeClient.RawClient().AppsV1().Deployments(ns).Get(context.TODO(), "test1", metav1.GetOptions{})
65+
framework.ExpectNoError(err)
66+
framework.ExpectEqual(deploy.Spec.Template.Spec.Containers[0].Name, "test")
67+
framework.ExpectEqual(deploy.Spec.Template.Spec.Containers[0].Image, "alpine")
68+
deploy, err = kubeClient.RawClient().AppsV1().Deployments(ns).Get(context.TODO(), "test2", metav1.GetOptions{})
69+
framework.ExpectNoError(err)
70+
framework.ExpectEqual(deploy.Spec.Template.Spec.Containers[0].Name, "test")
71+
framework.ExpectEqual(deploy.Spec.Template.Spec.Containers[0].Image, "alpine")
72+
deploy, err = kubeClient.RawClient().AppsV1().Deployments(ns).Get(context.TODO(), "test3", metav1.GetOptions{})
73+
framework.ExpectNoError(err)
74+
framework.ExpectEqual(deploy.Spec.Template.Spec.Containers[0].Name, "test")
75+
framework.ExpectEqual(deploy.Spec.Template.Spec.Containers[0].Image, "alpine")
76+
deploy, err = kubeClient.RawClient().AppsV1().Deployments(ns).Get(context.TODO(), "test4", metav1.GetOptions{})
77+
framework.ExpectNoError(err)
78+
framework.ExpectEqual(deploy.Spec.Template.Spec.Containers[0].Name, "test")
79+
framework.ExpectEqual(deploy.Spec.Template.Spec.Containers[0].Image, "alpine")
80+
_, err = kubeClient.RawClient().AppsV1().Deployments(ns).Get(context.TODO(), "base", metav1.GetOptions{})
81+
framework.ExpectError(err)
82+
83+
// create a new purge command
84+
purgeCmd := &cmd.PurgeCmd{
85+
GlobalFlags: &flags.GlobalFlags{
86+
NoWarn: true,
87+
Namespace: ns,
88+
},
89+
}
90+
91+
// run the command
92+
err = purgeCmd.Run(f)
93+
framework.ExpectNoError(err)
94+
95+
// check if deployments are still there
96+
_, err = kubeClient.RawClient().AppsV1().Deployments(ns).Get(context.TODO(), "test1", metav1.GetOptions{})
97+
framework.ExpectError(err)
98+
_, err = kubeClient.RawClient().AppsV1().Deployments(ns).Get(context.TODO(), "test2", metav1.GetOptions{})
99+
framework.ExpectError(err)
100+
_, err = kubeClient.RawClient().AppsV1().Deployments(ns).Get(context.TODO(), "test3", metav1.GetOptions{})
101+
framework.ExpectError(err)
102+
_, err = kubeClient.RawClient().AppsV1().Deployments(ns).Get(context.TODO(), "test4", metav1.GetOptions{})
103+
framework.ExpectError(err)
104+
})
105+
39106
ginkgo.It("should deploy helm application", func() {
40107
tempDir, err := framework.CopyToTempDir("tests/deploy/testdata/helm")
41108
framework.ExpectNoError(err)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
version: v2beta1
2+
3+
deployments:
4+
base:
5+
helm:
6+
values:
7+
containers:
8+
- image: alpine
9+
10+
pipelines:
11+
deploy:
12+
steps:
13+
- run: |-
14+
echo '{"helm": {"values": {"containers": [{"image":"alpine"}]}}}' > ${devspace.tempFolder}/deployment.yaml
15+
16+
create_deployments test1 test2 test3 test4 --from-file test1:${devspace.tempFolder}/deployment.yaml \
17+
--from test2:base \
18+
--set test3:helm.values.containers[0].image=alpine \
19+
--set-string test4:helm.values.containers[0].image=alpine \
20+
--set helm.values.containers[0].name=test

pkg/devspace/pipeline/engine/pipelinehandler/commands/create_deployments.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ func applySetValues(ctx *devspacecontext.Context, name, objName string, set, set
148148
}
149149
}
150150

151+
rawConfig[name].(map[string]interface{})[objName] = mapObj
151152
latestConfig, err := loader.Convert(rawConfig, ctx.Log)
152153
if err != nil {
153154
return nil, err

pkg/devspace/pipeline/pipeline_job.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ func (j *Job) executeStep(ctx *devspacecontext.Context, step *latest.PipelineSte
147147
return nil
148148
})
149149

150-
handler := pipelinehandler.NewPipelineExecHandler(ctx, stdoutWriter, j.Pipeline, true)
150+
handler := pipelinehandler.NewPipelineExecHandler(ctx, stdoutWriter, j.Pipeline)
151151
_, err := engine.ExecutePipelineShellCommand(ctx.Context, step.Run, os.Args[1:], ctx.ResolvePath(step.WorkingDir), step.ContinueOnError, stdoutWriter, stdoutWriter, os.Stdin, j.getEnv(ctx), handler)
152152
return err
153153
}

0 commit comments

Comments
 (0)