Skip to content

Commit fede8df

Browse files
committed
test: fix e2e no watch test
1 parent d4dd93f commit fede8df

File tree

5 files changed

+64
-20
lines changed

5 files changed

+64
-20
lines changed

.github/workflows/e2e-tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,4 @@ jobs:
5555
- name: e2e test
5656
working-directory: ./e2e
5757
run: |
58-
go test -v -ginkgo.v
58+
go test -v -ginkgo.v -timeout 3600s

e2e/tests/build/build.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ var _ = DevSpaceDescribe("build", func() {
103103
framework.ExpectNoError(err)
104104

105105
for _, image := range imageList {
106-
if image.RepoTags[0] == "my-docker-username/helloworld-buildkit:latest" {
106+
if len(image.RepoTags) > 0 && image.RepoTags[0] == "my-docker-username/helloworld-buildkit:latest" {
107107
err = nil
108108
break
109109
} else {

e2e/tests/sync/sync.go

Lines changed: 42 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,8 @@ var _ = DevSpaceDescribe("sync", func() {
366366
Namespace: ns,
367367
ConfigPath: "no-watch.yaml",
368368
},
369-
NoWatch: true,
369+
NoWatch: true,
370+
DownloadOnInitialSync: true,
370371
}
371372

372373
// start the command
@@ -376,8 +377,11 @@ var _ = DevSpaceDescribe("sync", func() {
376377
// wait until files were synced
377378
framework.ExpectRemoteFileContents("node", ns, "/no-watch/file1.txt", "Hello World")
378379

380+
// check if file was downloaded correctly
381+
framework.ExpectLocalFileContents(filepath.Join(tempDir, "initial-sync-done-before.txt"), "Hello World")
382+
379383
// check if file was downloaded through after hook
380-
framework.ExpectLocalFileContents(filepath.Join(tempDir, "initial-sync-done.txt"), "Hello World")
384+
framework.ExpectLocalFileNotFound(filepath.Join(tempDir, "initial-sync-done-after.txt"))
381385
})
382386

383387
ginkgo.It("should sync to a pod container with --container and --container-path", func() {
@@ -404,6 +408,9 @@ var _ = DevSpaceDescribe("sync", func() {
404408
framework.ExpectNoError(err)
405409

406410
// sync with --container and --container-path
411+
interrupt, stop := framework.InterruptChan()
412+
defer stop()
413+
407414
syncCmd := &cmd.SyncCmd{
408415
GlobalFlags: &flags.GlobalFlags{
409416
NoWarn: true,
@@ -412,12 +419,18 @@ var _ = DevSpaceDescribe("sync", func() {
412419
},
413420
Container: "container2",
414421
ContainerPath: "/app2",
415-
NoWatch: true,
422+
Interrupt: interrupt,
416423
}
417424

418425
// start the command
419-
err = syncCmd.Run(f)
420-
framework.ExpectNoError(err)
426+
waitGroup := sync.WaitGroup{}
427+
waitGroup.Add(1)
428+
go func() {
429+
defer ginkgo.GinkgoRecover()
430+
defer waitGroup.Done()
431+
err = syncCmd.Run(f)
432+
framework.ExpectNoError(err)
433+
}()
421434

422435
// wait until files were synced
423436
framework.ExpectRemoteContainerFileContents("e2e=sync-containers", "container2", ns, "/app2/file1.txt", "Hello World")
@@ -427,6 +440,12 @@ var _ = DevSpaceDescribe("sync", func() {
427440
err = ioutil.WriteFile(filepath.Join(tempDir, "watching.txt"), []byte(payload), 0666)
428441
framework.ExpectNoError(err)
429442
framework.ExpectRemoteContainerFileContents("e2e=sync-containers", "container2", ns, "/app2/watching.txt", payload)
443+
444+
// stop command
445+
stop()
446+
447+
// wait for the command to finish
448+
waitGroup.Wait()
430449
})
431450

432451
ginkgo.It("should sync to a pod container with excludeFile, downloadExcludeFile, and uploadExcludeFile configuration", func() {
@@ -452,19 +471,28 @@ var _ = DevSpaceDescribe("sync", func() {
452471
err = deployCmd.Run(f)
453472
framework.ExpectNoError(err)
454473

474+
interrupt, stop := framework.InterruptChan()
475+
defer stop()
476+
455477
// sync command
456478
syncCmd := &cmd.SyncCmd{
457479
GlobalFlags: &flags.GlobalFlags{
458480
NoWarn: true,
459481
Namespace: ns,
460482
ConfigPath: "devspace.yaml",
461483
},
462-
NoWatch: true,
484+
Interrupt: interrupt,
463485
}
464486

465487
// start the command
466-
err = syncCmd.Run(f)
467-
framework.ExpectNoError(err)
488+
waitGroup := sync.WaitGroup{}
489+
waitGroup.Add(1)
490+
go func() {
491+
defer ginkgo.GinkgoRecover()
492+
defer waitGroup.Done()
493+
err = syncCmd.Run(f)
494+
framework.ExpectNoError(err)
495+
}()
468496

469497
// wait for initial sync to complete
470498
framework.ExpectLocalFileContents(filepath.Join(tempDir, "initial-sync-done.txt"), "Hello World")
@@ -488,5 +516,11 @@ var _ = DevSpaceDescribe("sync", func() {
488516
err = ioutil.WriteFile(filepath.Join(tempDir, "watching.txt"), []byte(payload), 0666)
489517
framework.ExpectNoError(err)
490518
framework.ExpectRemoteFileContents("node", ns, "/app/watching.txt", payload)
519+
520+
// stop command
521+
stop()
522+
523+
// wait for the command to finish
524+
waitGroup.Wait()
491525
})
492526
})

e2e/tests/sync/testdata/sync-simple/no-watch.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,14 @@ hooks:
2626
when:
2727
before:
2828
initialSync: test
29-
- command: echo -n Hello World > /no-watch/initial-sync-done.txt
29+
- command: echo -n Hello World > /no-watch/initial-sync-done-before.txt
30+
where:
31+
container:
32+
imageSelector: ${IMAGE}
33+
when:
34+
before:
35+
initialSync: test
36+
- command: echo -n Hello World > /no-watch/initial-sync-done-after.txt
3037
where:
3138
container:
3239
imageSelector: ${IMAGE}

pkg/devspace/deploy/deploy.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -212,19 +212,22 @@ func (c *controller) Deploy(options *Options, logLogger log.Logger) error {
212212
}(deployConfig, i)
213213
}
214214

215-
logLogger.StartWait(fmt.Sprintf("Deploying %d deployments concurrently", len(concurrentDeployments)))
215+
if len(concurrentDeployments) > 0 {
216+
logLogger.StartWait(fmt.Sprintf("Deploying %d deployments concurrently", len(concurrentDeployments)))
216217

217-
// Wait for concurrent deployments to complete before starting sequential deployments.
218-
for i := 0; i < len(concurrentDeployments); i++ {
219-
select {
220-
case err := <-errChan:
221-
return err
222-
case <-deployedChan:
223-
logLogger.StartWait(fmt.Sprintf("Deploying %d deployments concurrently", len(concurrentDeployments)-i-1))
218+
// Wait for concurrent deployments to complete before starting sequential deployments.
219+
for i := 0; i < len(concurrentDeployments); i++ {
220+
select {
221+
case err := <-errChan:
222+
return err
223+
case <-deployedChan:
224+
logLogger.StartWait(fmt.Sprintf("Deploying %d deployments concurrently", len(concurrentDeployments)-i-1))
224225

226+
}
225227
}
228+
229+
logLogger.StopWait()
226230
}
227-
logLogger.StopWait()
228231

229232
for _, deployConfig := range sequentialDeployments {
230233
_, err := c.deployOne(deployConfig, logLogger, options, helmV2Clients)

0 commit comments

Comments
 (0)