Skip to content

Commit 088c87e

Browse files
added test for run_pipelines
1 parent 87a6e95 commit 088c87e

3 files changed

Lines changed: 57 additions & 10 deletions

File tree

e2e/framework/helper.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package framework
22

33
import (
4+
"context"
45
"fmt"
56
"github.com/go-resty/resty/v2"
67
"github.com/loft-sh/devspace/e2e/kube"
78
"github.com/onsi/gomega"
89
"github.com/pkg/errors"
910
"io/ioutil"
11+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1012
"k8s.io/apimachinery/pkg/util/wait"
1113
"os"
1214
"strings"
@@ -86,6 +88,21 @@ func ExpectLocalCurlContents(urlString string, contents string) {
8688
ExpectNoErrorWithOffset(1, err)
8789
}
8890

91+
func ExpectContainerNameAndImageEqual(namespace, deploymentName, containerImage, containerName string) {
92+
kubeClient, err := kube.NewKubeHelper()
93+
ExpectNoErrorWithOffset(1, err)
94+
err = wait.PollImmediate(time.Second, time.Minute*2, func() (done bool, err error) {
95+
deploy, err := kubeClient.RawClient().AppsV1().Deployments(namespace).Get(context.TODO(),
96+
deploymentName, metav1.GetOptions{})
97+
if err != nil {
98+
return false, nil
99+
}
100+
return deploy.Spec.Template.Spec.Containers[0].Name == containerName &&
101+
deploy.Spec.Template.Spec.Containers[0].Image == containerImage, nil
102+
})
103+
ExpectNoErrorWithOffset(1, err)
104+
}
105+
89106
func ExpectRemoteCurlContents(imageSelector string, namespace string, urlString string, contents string) {
90107
kubeClient, err := kube.NewKubeHelper()
91108
ExpectNoErrorWithOffset(1, err)

e2e/tests/pipelines/pipelines.go

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -120,23 +120,38 @@ var _ = DevSpaceDescribe("pipelines", func() {
120120
}
121121
})
122122

123-
ginkgo.FIt("should get value from config", func() {
124-
tempDir, err := framework.CopyToTempDir("tests/pipelines/testdata/getconfigvalue")
123+
ginkgo.It("should use --set value from run_pipelines command", func() {
124+
tempDir, err := framework.CopyToTempDir("tests/pipelines/testdata/run_pipelines")
125125
framework.ExpectNoError(err)
126126
defer framework.CleanupTempDir(initialDir, tempDir)
127127

128128
ns, err := kubeClient.CreateNamespace("pipelines")
129129
framework.ExpectNoError(err)
130130
defer framework.ExpectDeleteNamespace(kubeClient, ns)
131131

132-
devCmd := &cmd.RunPipelineCmd{
133-
GlobalFlags: &flags.GlobalFlags{
134-
NoWarn: true,
135-
Namespace: ns,
136-
},
137-
Pipeline: "dev",
138-
}
139-
err = devCmd.RunDefault(f)
132+
done := make(chan error)
133+
cancelCtx, cancel := context.WithCancel(context.Background())
134+
defer cancel()
135+
136+
go func() {
137+
defer ginkgo.GinkgoRecover()
138+
devCmd := &cmd.RunPipelineCmd{
139+
GlobalFlags: &flags.GlobalFlags{
140+
NoWarn: true,
141+
Namespace: ns,
142+
ConfigPath: "devspace.yaml",
143+
},
144+
Pipeline: "dev",
145+
Ctx: cancelCtx,
146+
}
147+
done <- devCmd.RunDefault(f)
148+
}()
149+
150+
// check if deployments are there
151+
framework.ExpectContainerNameAndImageEqual(ns, "dev", "nginx", "mynginx")
152+
153+
cancel()
154+
err = <-done
140155
framework.ExpectNoError(err)
141156
})
142157

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
version: v2beta1
2+
name: run-pipelines-demo
3+
4+
pipelines:
5+
dev: |-
6+
run_pipelines deploy --set deployments.dev.helm.values.containers[0].image=nginx --set-string deployments.dev.helm.values.containers[0].name=mynginx
7+
deploy: |-
8+
create_deployments --all
9+
10+
deployments:
11+
dev:
12+
helm:
13+
values:
14+
containers:
15+
- image: alpine

0 commit comments

Comments
 (0)