Skip to content

Commit 9902916

Browse files
committed
feat: add smtp mailpit testing tool
1 parent 893cae9 commit 9902916

14 files changed

Lines changed: 218 additions & 34 deletions

Taskfile.yml

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,10 @@ tasks:
132132

133133
install-tools-test:
134134
cmds:
135+
- task: curl
136+
vars:
137+
URL: https://raw.githubusercontent.com/axllent/mailpit/develop/install.sh
138+
PIPE: sudo bash
135139
- go run github.com/playwright-community/playwright-go/cmd/playwright@latest install chromium --with-deps
136140
- bun i -g concurrently wait-on
137141

@@ -377,6 +381,9 @@ tasks:
377381
- task: git-reset-hard
378382
- task: init
379383

384+
#* Mailpit
385+
mailpit: mailpit --smtp-auth-allow-insecure --smtp-auth-accept-any
386+
380387
#* Docker
381388
docker-usage: docker system df
382389

@@ -411,7 +418,7 @@ tasks:
411418
cmds:
412419
- task: compose-env
413420
vars:
414-
OPTIONS: .env.dev down
421+
OPTIONS: .env.demo.dev --profile dev down
415422
- task: docker-rm-vol
416423
vars:
417424
VOLUME: codexgo-database-mongodb-dev
@@ -421,13 +428,13 @@ tasks:
421428
- task: compose-dev-down
422429
- task: compose-env
423430
vars:
424-
OPTIONS: .env.dev up
431+
OPTIONS: .env.demo.dev --profile dev up
425432

426433
compose-test-down:
427434
cmds:
428435
- task: compose-env
429436
vars:
430-
OPTIONS: .env.test down
437+
OPTIONS: .env.demo.test --profile test down
431438
- task: docker-rm-vol
432439
vars:
433440
VOLUME: codexgo-database-mongodb-test
@@ -437,27 +444,27 @@ tasks:
437444
- task: compose-test-down
438445
- task: compose-env
439446
vars:
440-
OPTIONS: .env.test --env-file .env.test.integration up --exit-code-from codexgo
447+
OPTIONS: .env.demo.test --env-file .env.demo.test.integration --profile test up --exit-code-from codexgo
441448

442449
compose-test-acceptance:
443450
cmds:
444451
- task: compose-test-down
445452
- task: compose-env
446453
vars:
447-
OPTIONS: .env.test --env-file .env.test.acceptance up --exit-code-from codexgo
454+
OPTIONS: .env.demo.test --env-file .env.demo.test.acceptance --profile test up --exit-code-from codexgo
448455

449456
compose-tests:
450457
cmds:
451458
- task: compose-test-down
452459
- task: compose-env
453460
vars:
454-
OPTIONS: .env.test up --exit-code-from codexgo
461+
OPTIONS: .env.demo.test --profile test up --exit-code-from codexgo
455462

456463
compose-prod-down:
457464
cmds:
458465
- task: compose-env
459466
vars:
460-
OPTIONS: .env.prod down
467+
OPTIONS: .env.demo.prod down
461468
- task: docker-rm-img
462469
vars:
463470
IMAGE: codexgo
@@ -467,20 +474,20 @@ tasks:
467474
- task: compose-prod-down
468475
- task: compose-env
469476
vars:
470-
OPTIONS: .env.prod up --exit-code-from codexgo
477+
OPTIONS: .env.demo.prod up --exit-code-from codexgo
471478

472479
demo-down:
473480
cmds:
474481
- task: compose-env
475482
vars:
476-
OPTIONS: .env.demo down
483+
OPTIONS: .env.demo --profile demo down
477484

478485
demo:
479486
cmds:
480487
- task: demo-down
481488
- task: compose-env
482489
vars:
483-
OPTIONS: .env.demo up --exit-code-from codexgo
490+
OPTIONS: .env.demo --profile demo up --exit-code-from codexgo
484491

485492
compose-down:
486493
cmds:

deployments/.env.demo

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,14 @@ CODEXGO_CONTAINER_VOLUME=codexgo-logs:/app/logs
2121
CODEXGO_CONTAINER_START=./run
2222
CODEXGO_CONTAINER_RESTART=on-failure
2323

24-
CODEXGO_BROKER_RABBITMQ_URI=
2524
CODEXGO_BROKER_RABBITMQ_NAME=codexgo-demo
2625

27-
CODEXGO_DATABASE_MONGODB_URI=
2826
CODEXGO_DATABASE_MONGODB_NAME=codexgo-demo
2927

3028
CODEXGO_DATABASE_SQLITE_DSN=codexgo-demo.db
3129

32-
CODEXGO_SMTP_HOST=
33-
CODEXGO_SMTP_PORT=
34-
CODEXGO_SMTP_USERNAME=
35-
CODEXGO_SMTP_PASSWORD=
30+
CODEXGO_SMTP_HOST=localhost
31+
CODEXGO_SMTP_PORT=1025
3632

3733
CODEXGO_JWT_SECRET_KEY=codexgo-demo
3834

@@ -44,4 +40,9 @@ CODEXGO_SERVER_GIN_ALLOWED_HOSTS=localhost:8080
4440
CODEXGO_SERVER_GIN_COOKIE_SECRET_KEY=codexgo-demo
4541
CODEXGO_SERVER_GIN_COOKIE_SESSION_NAME=codexgo-demo
4642

47-
CODEXGO_DEV_AIR_PROXY_PORT=8080
43+
CODEXGO_DEV_RELOAD_AIR_PROXY_PORT=8080
44+
45+
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_NAME=codexgo-smtp-mailpit-demo
46+
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_RESTART=on-failure
47+
48+
CODEXGO_DEV_SMTP_MAILPIT_WEBUI_PORT=8025

deployments/.env.demo.cli

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
CODEXGO_JWT_SECRET_KEY=codexgo-demo
2+
3+
CODEXGO_SERVER_GIN_HOSTNAME=localhost
4+
CODEXGO_SERVER_GIN_PORT=8080
5+
CODEXGO_SERVER_GIN_URL=http://localhost:8080
6+
CODEXGO_SERVER_GIN_MODE=release
7+
CODEXGO_SERVER_GIN_ALLOWED_HOSTS=localhost:8080
8+
CODEXGO_SERVER_GIN_COOKIE_SECRET_KEY=codexgo-demo
9+
CODEXGO_SERVER_GIN_COOKIE_SESSION_NAME=codexgo-demo

deployments/.env.demo.dev

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
CODEXGO_BROKER_RABBITMQ_CONTAINER_NAME=codexgo-broker-rabbitmq-dev
2+
CODEXGO_BROKER_RABBITMQ_CONTAINER_RESTART=on-failure
3+
4+
CODEXGO_BROKER_RABBITMQ_AMQP_PORT=5672
5+
CODEXGO_BROKER_RABBITMQ_ADMIN_PORT=15672
6+
CODEXGO_BROKER_RABBITMQ_ADMIN_USERNAME=codexgo-dev
7+
CODEXGO_BROKER_RABBITMQ_ADMIN_PASSWORD=codexgo-dev
8+
9+
CODEXGO_DATABASE_MONGODB_CONTAINER_NAME=codexgo-database-mongodb-dev
10+
CODEXGO_DATABASE_MONGODB_CONTAINER_VOLUME=codexgo-database-mongodb-dev
11+
CODEXGO_DATABASE_MONGODB_CONTAINER_RESTART=on-failure
12+
13+
CODEXGO_DATABASE_MONGODB_PORT=27017
14+
CODEXGO_DATABASE_MONGODB_ROOT_USERNAME=codexgo-dev
15+
CODEXGO_DATABASE_MONGODB_ROOT_PASSWORD=codexgo-dev
16+
17+
CODEXGO_CONTAINER_IMAGE_TAG=codexgo-dev
18+
CODEXGO_CONTAINER_IMAGE_BUILD_TARGET=dev
19+
CODEXGO_CONTAINER_NAME=codexgo-dev
20+
CODEXGO_CONTAINER_VOLUME=..:/app
21+
CODEXGO_CONTAINER_START=air
22+
CODEXGO_CONTAINER_RESTART=on-failure
23+
24+
CODEXGO_BROKER_RABBITMQ_NAME=codexgo-dev
25+
26+
CODEXGO_DATABASE_MONGODB_NAME=codexgo-dev
27+
28+
CODEXGO_DATABASE_SQLITE_DSN=codexgo-dev.db
29+
30+
CODEXGO_SMTP_HOST=localhost
31+
CODEXGO_SMTP_PORT=1025
32+
33+
CODEXGO_JWT_SECRET_KEY=codexgo-dev
34+
35+
CODEXGO_SERVER_GIN_HOSTNAME=localhost
36+
CODEXGO_SERVER_GIN_PORT=8080
37+
CODEXGO_SERVER_GIN_URL=http://localhost:8080
38+
CODEXGO_SERVER_GIN_MODE=debug
39+
CODEXGO_SERVER_GIN_ALLOWED_HOSTS=localhost:8080
40+
CODEXGO_SERVER_GIN_COOKIE_SECRET_KEY=codexgo-dev
41+
CODEXGO_SERVER_GIN_COOKIE_SESSION_NAME=codexgo-dev
42+
43+
CODEXGO_DEV_RELOAD_AIR_PROXY_PORT=8090
44+
45+
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_NAME=codexgo-smtp-mailpit-dev
46+
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_RESTART=on-failure
47+
48+
CODEXGO_DEV_SMTP_MAILPIT_WEBUI_PORT=8025

deployments/.env.demo.prod

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
CODEXGO_BROKER_RABBITMQ_CONTAINER_NAME=codexgo-broker-rabbitmq
2+
CODEXGO_BROKER_RABBITMQ_CONTAINER_RESTART=always
3+
4+
CODEXGO_BROKER_RABBITMQ_AMQP_PORT=5672
5+
CODEXGO_BROKER_RABBITMQ_ADMIN_PORT=15672
6+
CODEXGO_BROKER_RABBITMQ_ADMIN_USERNAME=codexgo
7+
CODEXGO_BROKER_RABBITMQ_ADMIN_PASSWORD=codexgo
8+
9+
CODEXGO_DATABASE_MONGODB_CONTAINER_NAME=codexgo-database-mongodb
10+
CODEXGO_DATABASE_MONGODB_CONTAINER_VOLUME=codexgo-database-mongodb
11+
CODEXGO_DATABASE_MONGODB_CONTAINER_RESTART=always
12+
13+
CODEXGO_DATABASE_MONGODB_PORT=27017
14+
CODEXGO_DATABASE_MONGODB_ROOT_USERNAME=codexgo
15+
CODEXGO_DATABASE_MONGODB_ROOT_PASSWORD=codexgo
16+
17+
CODEXGO_CONTAINER_IMAGE_TAG=codexgo
18+
CODEXGO_CONTAINER_IMAGE_BUILD_TARGET=prod
19+
CODEXGO_CONTAINER_NAME=codexgo
20+
CODEXGO_CONTAINER_VOLUME=codexgo-logs:/app/logs
21+
CODEXGO_CONTAINER_START=./run
22+
CODEXGO_CONTAINER_RESTART=always
23+
24+
CODEXGO_BROKER_RABBITMQ_NAME=codexgo
25+
26+
CODEXGO_DATABASE_MONGODB_NAME=codexgo
27+
28+
CODEXGO_DATABASE_SQLITE_DSN=codexgo.db
29+
30+
CODEXGO_SMTP_HOST=
31+
CODEXGO_SMTP_PORT=
32+
CODEXGO_SMTP_USERNAME=
33+
CODEXGO_SMTP_PASSWORD=
34+
35+
CODEXGO_JWT_SECRET_KEY=codexgo
36+
37+
CODEXGO_SERVER_GIN_HOSTNAME=localhost
38+
CODEXGO_SERVER_GIN_PORT=8080
39+
CODEXGO_SERVER_GIN_URL=http://localhost:8080
40+
CODEXGO_SERVER_GIN_MODE=release
41+
CODEXGO_SERVER_GIN_ALLOWED_HOSTS=localhost:8080
42+
CODEXGO_SERVER_GIN_COOKIE_SECRET_KEY=codexgo
43+
CODEXGO_SERVER_GIN_COOKIE_SESSION_NAME=codexgo
44+
45+
CODEXGO_DEV_RELOAD_AIR_PROXY_PORT=8080
46+
47+
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_NAME=
48+
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_RESTART=
49+
50+
CODEXGO_DEV_SMTP_MAILPIT_WEBUI_PORT=8080

deployments/.env.demo.test

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
CODEXGO_BROKER_RABBITMQ_CONTAINER_NAME=codexgo-broker-rabbitmq-test
2+
CODEXGO_BROKER_RABBITMQ_CONTAINER_RESTART=on-failure
3+
4+
CODEXGO_BROKER_RABBITMQ_AMQP_PORT=5672
5+
CODEXGO_BROKER_RABBITMQ_ADMIN_PORT=15672
6+
CODEXGO_BROKER_RABBITMQ_ADMIN_USERNAME=codexgo-test
7+
CODEXGO_BROKER_RABBITMQ_ADMIN_PASSWORD=codexgo-test
8+
9+
CODEXGO_DATABASE_MONGODB_CONTAINER_NAME=codexgo-database-mongodb-test
10+
CODEXGO_DATABASE_MONGODB_CONTAINER_VOLUME=codexgo-database-mongodb-test
11+
CODEXGO_DATABASE_MONGODB_CONTAINER_RESTART=on-failure
12+
13+
CODEXGO_DATABASE_MONGODB_PORT=27017
14+
CODEXGO_DATABASE_MONGODB_ROOT_USERNAME=codexgo-test
15+
CODEXGO_DATABASE_MONGODB_ROOT_PASSWORD=codexgo-test
16+
17+
CODEXGO_CONTAINER_IMAGE_TAG=codexgo-test
18+
CODEXGO_CONTAINER_IMAGE_BUILD_TARGET=test
19+
CODEXGO_CONTAINER_NAME=codexgo-test
20+
CODEXGO_CONTAINER_VOLUME=..:/app
21+
CODEXGO_CONTAINER_START='task tests'
22+
CODEXGO_CONTAINER_RESTART=on-failure
23+
24+
CODEXGO_BROKER_RABBITMQ_NAME=codexgo-test
25+
26+
CODEXGO_DATABASE_MONGODB_NAME=codexgo-test
27+
28+
CODEXGO_DATABASE_SQLITE_DSN=codexgo-test.db
29+
30+
CODEXGO_SMTP_HOST=localhost
31+
CODEXGO_SMTP_PORT=1025
32+
33+
CODEXGO_JWT_SECRET_KEY=codexgo-test
34+
35+
CODEXGO_SERVER_GIN_HOSTNAME=localhost
36+
CODEXGO_SERVER_GIN_PORT=8080
37+
CODEXGO_SERVER_GIN_URL=http://localhost:8080
38+
CODEXGO_SERVER_GIN_MODE=test
39+
CODEXGO_SERVER_GIN_ALLOWED_HOSTS=localhost:8080
40+
CODEXGO_SERVER_GIN_COOKIE_SECRET_KEY=codexgo-test
41+
CODEXGO_SERVER_GIN_COOKIE_SESSION_NAME=codexgo-test
42+
43+
CODEXGO_DEV_RELOAD_AIR_PROXY_PORT=8080
44+
45+
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_NAME=codexgo-smtp-mailpit-test
46+
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_RESTART=on-failure
47+
48+
CODEXGO_DEV_SMTP_MAILPIT_WEBUI_PORT=8025

deployments/.env.example

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,9 @@ CODEXGO_SERVER_GIN_ALLOWED_HOSTS=
4444
CODEXGO_SERVER_GIN_COOKIE_SECRET_KEY=
4545
CODEXGO_SERVER_GIN_COOKIE_SESSION_NAME=
4646

47-
CODEXGO_DEV_AIR_PROXY_PORT=
47+
CODEXGO_DEV_RELOAD_AIR_PROXY_PORT=
48+
49+
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_NAME=
50+
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_RESTART=
51+
52+
CODEXGO_DEV_SMTP_MAILPIT_WEBUI_PORT=

deployments/.env.example.cli

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ CODEXGO_DATABASE_MONGODB_NAME=codexgo-(dev|test|prod|demo)
77
CODEXGO_DATABASE_SQLITE_DSN=codexgo-(dev|test|prod|demo).db
88

99
CODEXGO_SMTP_HOST=smtp.example.com
10-
CODEXGO_SMTP_PORT=(25|465|587|2525)
10+
CODEXGO_SMTP_PORT=(25|465|587|1025|2525)
1111
CODEXGO_SMTP_USERNAME=codexgo-(dev|test|prod|demo)
1212
CODEXGO_SMTP_PASSWORD=codexgo-(dev|test|prod|demo)
1313

0 commit comments

Comments
 (0)