Skip to content

Commit ed144a9

Browse files
committed
add flag to run in background
1 parent a0f2b2c commit ed144a9

7 files changed

Lines changed: 167 additions & 9 deletions

File tree

cmd/down.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package cmd
2+
3+
import (
4+
"os"
5+
6+
"github.com/dashwave/up/internal/service"
7+
"github.com/spf13/cobra"
8+
)
9+
10+
var downCmd = &cobra.Command{
11+
Use: "down",
12+
Short: "stops the specified deployment",
13+
Long: "stops the specified deployment",
14+
Run: func(cmd *cobra.Command, args []string) {
15+
ctx := cmd.Context()
16+
cleanupCompleted := make(chan bool)
17+
go service.CleanupDockerContainers(ctx, cleanupCompleted)
18+
<-cleanupCompleted
19+
os.Exit(0)
20+
},
21+
}

cmd/run.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package cmd
22

33
import (
4-
"context"
54
"fmt"
65
"os"
76
"os/signal"
@@ -18,16 +17,21 @@ var runCmd = &cobra.Command{
1817
Long: "runs the specified deployment",
1918
Run: func(cmd *cobra.Command, args []string) {
2019
ctx := cmd.Context()
21-
ctx, cancel := context.WithCancel(ctx)
20+
21+
cleanupCompleted := make(chan bool)
22+
go service.CleanupDockerContainers(ctx, cleanupCompleted)
23+
<-cleanupCompleted
24+
2225
if err := deploy.Deploy(ctx, deploymentFile); err != nil {
2326
fmt.Printf("error deploying: %v\n", err)
2427
}
25-
cleanupCompleted := make(chan bool)
26-
go service.CleanupDockerContainers(ctx, cleanupCompleted)
28+
if background {
29+
os.Exit(0)
30+
}
2731
c := make(chan os.Signal, 1)
2832
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
2933
<-c
30-
cancel()
34+
go service.CleanupDockerContainers(ctx, cleanupCompleted)
3135
<-cleanupCompleted
3236
os.Exit(0)
3337
},

cmd/up.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
)
99

1010
var deploymentFile string
11+
var background bool
1112

1213
var rootCmd = &cobra.Command{
1314
Use: "up",
@@ -28,5 +29,7 @@ func Execute() {
2829

2930
func init() {
3031
runCmd.Flags().StringVarP(&deploymentFile, "file", "f", "up.yaml", "deployment file to use")
32+
runCmd.Flags().BoolVarP(&background, "background", "d", false, "run in background")
3133
rootCmd.AddCommand(runCmd)
34+
rootCmd.AddCommand(downCmd)
3235
}

internal/deploy/deploy.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ func Deploy(ctx context.Context, configFile string) error {
1111
if err := service.InitConfigFromYaml(ctx, configFile); err != nil {
1212
return err
1313
}
14-
fmt.Println(service.UpConfigs.Services)
14+
fmt.Println(service.UpConfigs)
1515
for _, n := range service.UpConfigs.Networks {
1616
if err := n.Create(ctx); err != nil {
1717
fmt.Printf("error creating network %s: %v\n", n.Name, err)

internal/service/docker.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,6 @@ func (d *dockerService) deployDocker(ctx context.Context) error {
8686
}
8787

8888
func CleanupDockerContainers(ctx context.Context, completed chan bool) {
89-
<-ctx.Done() // Wait for the context to be canceled
90-
91-
ctx = context.Background()
9289
cli, err := newDockerClient(ctx)
9390
if err != nil {
9491
panic(fmt.Errorf("error while cleaning up docker containers: %v", err))

test

56.4 KB
Binary file not shown.

up.ci.yaml

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
services:
2+
- name: nucleon_db
3+
source: docker
4+
container_name: nucleon_db
5+
image: postgres:14
6+
env:
7+
- POSTGRES_USER
8+
- POSTGRES_PASSWORD
9+
- POSTGRES_DB
10+
ports:
11+
- 5432:5555
12+
volumes:
13+
- database_postgres:/var/lib/postgresql/data
14+
networks:
15+
- dashwave
16+
- name: poolmanager
17+
source: docker
18+
image: registry.dashwave.io/dashwave-pm_linux_amd64:local-deployment-1d0b41
19+
container_name: poolmanager
20+
volumes:
21+
- /Users/burnerlee/Projects/dashwave/poolmanager/poolmanager.db:/root/poolmanager.db
22+
ports:
23+
- 9001:9001
24+
networks:
25+
- dashwave
26+
env:
27+
- SCIVIR_BASE
28+
- NATIVE_BUILDER_DEFAULT_IMAGE
29+
- FLUTTER_BUILDER_DEFAULT_IMAGE
30+
- EMULATOR_DEFAULT_IMAGE
31+
- ENABLE_HEALTH_CHECKER
32+
- HEALTH_CHECKER_INTERVAL
33+
- HEALTH_CHECK_RETRIES
34+
- HTTP_PROBE_TIMEOUT
35+
- UNHEALTHY_INSTANCE_RETRY_TIME
36+
- BUILDER_WARMUP_TIME
37+
- EMULATOR_WARMUP_TIME
38+
- SERVICE_NAME
39+
- ENABLE_REVOKER
40+
- REVOKER_INTERVAL
41+
- BUILDER_INACTIVITY
42+
- EMULATOR_INACTIVITY
43+
- SHARED_EMULATOR_INACTIVITY
44+
- ENABLE_BUILDER_BUFFER_MANAGER
45+
- BUILDER_BUFFER
46+
- BUILDER_ASG
47+
- ENABLE_EMULATOR_BUFFER_MANAGER
48+
- EMULATOR_BUFFER
49+
- EMULATOR_ASG
50+
- ENV
51+
- OTEL_EXPORTER_ENDPOINT
52+
- VAULT_TOKEN
53+
env:
54+
- ENV=ci-test
55+
- POSTGRES_USER=dashwave_root
56+
- POSTGRES_PASSWORD=root
57+
- POSTGRES_DB=dashwave_central
58+
- DB_HOST=nucleon_db
59+
- DB_DRIVER=postgres
60+
- API_SECRET=98hbun98h
61+
- DB_USER=dashwave_root
62+
- DB_PASSWORD=root
63+
- DB_NAME=dashwave_central
64+
- DB_PORT=5432
65+
- SCIVIR_BASE=https://scivirdev.dashwave.io
66+
- PM_BASE=poolmanager
67+
- CONSOLE_URL=console
68+
- USER_SPACES_LIMIT=1
69+
- SPACE_INSTANCES_LIMIT=2
70+
- PREVIEW_MODE=NONE
71+
- STATUS_POLLING_TIME=5
72+
- DEFAULT_ORG=true
73+
- VAULT_TOKEN=hvs.ujnsShjjYEXv4fGSmLcv4SUI
74+
- DEFAULT_ORGANISATION_REGION=us-east-1
75+
- SERVICE_NAME=nucleon
76+
- SENDGRID_SENDER_EMAIL=hello@dashwave.io
77+
- INVITE_MAIL_SUBJECT=Dashwave Emulation Invite
78+
- SENDGRID_TEMPLATE_ID=d-f3cd543a49e44dc2ac8caf2325a69e9b
79+
- SENDGRID_SEND_API=https://api.sendgrid.com/v3/mail/send
80+
- SENTINEL_ENDPOINT=https://sentinel.dashwave.io
81+
- OTEL_EXPORTER_ENDPOINT=20.219.14.232:4317
82+
- GITLAB_KEY=3946b942301f651c2896f643320589f68d254664baf691e300645110b751c255
83+
- GITLAB_SECRET=gloas-f51aa5a27fc80eb4c711e26dea439aca5de2268ce51aace82f6f84f1c30a11f7
84+
- GITLAB_CALLBACK=console
85+
- GITLAB_KEY_LOCAL=4cf55c9bc058ebac31f3a5d88cec3d5f869cc62fcf191068289642ba023bc8cb
86+
- GITLAB_SECRET_LOCAL=gloas-9469130661cdb1c97e1b0f5213ef1f5ed5e114a1bbe73db77fb7bd1c8fd5a273
87+
- GITLAB_CALLBACK_LOCAL=http://127.0.0.1:3000/oauth/gitlab/callback
88+
- SCIVIR_BASE=https://scivirdev.dashwave.io
89+
- NATIVE_BUILDER_DEFAULT_IMAGE=registry.dashwave.io/android-builder:amd64
90+
- FLUTTER_BUILDER_DEFAULT_IMAGE=registry.dashwave.io/flutter-builder:latest
91+
- EMULATOR_DEFAULT_IMAGE=registry.dashwave.io/emulator_android-29_amd64:latest
92+
- ENABLE_HEALTH_CHECKER=true
93+
- HEALTH_CHECKER_INTERVAL=30s
94+
- HEALTH_CHECK_RETRIES=3
95+
- HTTP_PROBE_TIMEOUT=8s
96+
- UNHEALTHY_INSTANCE_RETRY_TIME=6s
97+
- BUILDER_WARMUP_TIME=1m30s
98+
- EMULATOR_WARMUP_TIME=5m
99+
- SERVICE_NAME=pm
100+
- ENABLE_REVOKER=true
101+
- REVOKER_INTERVAL=2m
102+
- BUILDER_INACTIVITY=6h
103+
- EMULATOR_INACTIVITY=4h
104+
- SHARED_EMULATOR_INACTIVITY=1h
105+
- ENABLE_BUILDER_BUFFER_MANAGER=false
106+
- BUILDER_BUFFER=5
107+
- BUILDER_ASG=build-runner-autoscaler-test
108+
- ENABLE_EMULATOR_BUFFER_MANAGER=false
109+
- EMULATOR_BUFFER=3
110+
- EMULATOR_ASG=emulator-runner-autoscaler-test
111+
- OTEL_EXPORTER_ENDPOINT=20.219.14.232:4317
112+
- VAULT_TOKEN=hvs.ujnsShjjYEXv4fGSmLcv4SUI
113+
- VITE_API_BASE_URL=http://localhost:8080
114+
- VITE_WS_BASE_URL=ws://localhost:8080
115+
- GOOGLE_KEY=126853618621-0n5cup6669tsd0dktc0q6hl6ms1r8p2u.apps.googleusercontent.com
116+
- GOOGLE_SECRET=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
117+
- GOOGLE_CALLBACK=https://consoledev.dashwave.io/oauth/google/callback
118+
- GOOGLE_KEY_LOCAL=126853618621-hstu4nh6e3bv9ijfte0gcp7o4k1pa6cs.apps.googleusercontent.com
119+
- GOOGLE_SECRET_LOCAL=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
120+
- GOOGLE_CALLBACK_LOCAL=http://127.0.0.1:3000/oauth/google/callback
121+
- GITHUB_KEY=53e6ba34ef9e2fd943a3
122+
- GITHUB_SECRET=052018ff940c5bad6369f9052861cecc0f31aca9
123+
- GITHUB_CALLBACK=https://consoledev.dashwave.io/oauth/github/callback
124+
- GITHUB_KEY_LOCAL=8c1fd2c7bd461176eecf
125+
- GITHUB_SECRET_LOCAL=9c48f96eefab3864c1bef352c30c5dd8b38e0ad5
126+
- GITHUB_CALLBACK_LOCAL=http://127.0.0.1:3000/oauth/github/callback
127+
networks:
128+
- name: dashwave
129+
driver: bridge
130+
131+
deploy:
132+
- nucleon_db
133+
- poolmanager

0 commit comments

Comments
 (0)