Skip to content

Commit

Permalink
feat: add smtp mailpit testing tool
Browse files Browse the repository at this point in the history
  • Loading branch information
bastean committed Feb 17, 2025
1 parent 893cae9 commit 9902916
Show file tree
Hide file tree
Showing 14 changed files with 218 additions and 34 deletions.
27 changes: 17 additions & 10 deletions Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,10 @@ tasks:

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

Expand Down Expand Up @@ -377,6 +381,9 @@ tasks:
- task: git-reset-hard
- task: init

#* Mailpit
mailpit: mailpit --smtp-auth-allow-insecure --smtp-auth-accept-any

#* Docker
docker-usage: docker system df

Expand Down Expand Up @@ -411,7 +418,7 @@ tasks:
cmds:
- task: compose-env
vars:
OPTIONS: .env.dev down
OPTIONS: .env.demo.dev --profile dev down
- task: docker-rm-vol
vars:
VOLUME: codexgo-database-mongodb-dev
Expand All @@ -421,13 +428,13 @@ tasks:
- task: compose-dev-down
- task: compose-env
vars:
OPTIONS: .env.dev up
OPTIONS: .env.demo.dev --profile dev up

compose-test-down:
cmds:
- task: compose-env
vars:
OPTIONS: .env.test down
OPTIONS: .env.demo.test --profile test down
- task: docker-rm-vol
vars:
VOLUME: codexgo-database-mongodb-test
Expand All @@ -437,27 +444,27 @@ tasks:
- task: compose-test-down
- task: compose-env
vars:
OPTIONS: .env.test --env-file .env.test.integration up --exit-code-from codexgo
OPTIONS: .env.demo.test --env-file .env.demo.test.integration --profile test up --exit-code-from codexgo

compose-test-acceptance:
cmds:
- task: compose-test-down
- task: compose-env
vars:
OPTIONS: .env.test --env-file .env.test.acceptance up --exit-code-from codexgo
OPTIONS: .env.demo.test --env-file .env.demo.test.acceptance --profile test up --exit-code-from codexgo

compose-tests:
cmds:
- task: compose-test-down
- task: compose-env
vars:
OPTIONS: .env.test up --exit-code-from codexgo
OPTIONS: .env.demo.test --profile test up --exit-code-from codexgo

compose-prod-down:
cmds:
- task: compose-env
vars:
OPTIONS: .env.prod down
OPTIONS: .env.demo.prod down
- task: docker-rm-img
vars:
IMAGE: codexgo
Expand All @@ -467,20 +474,20 @@ tasks:
- task: compose-prod-down
- task: compose-env
vars:
OPTIONS: .env.prod up --exit-code-from codexgo
OPTIONS: .env.demo.prod up --exit-code-from codexgo

demo-down:
cmds:
- task: compose-env
vars:
OPTIONS: .env.demo down
OPTIONS: .env.demo --profile demo down

demo:
cmds:
- task: demo-down
- task: compose-env
vars:
OPTIONS: .env.demo up --exit-code-from codexgo
OPTIONS: .env.demo --profile demo up --exit-code-from codexgo

compose-down:
cmds:
Expand Down
15 changes: 8 additions & 7 deletions deployments/.env.demo
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,14 @@ CODEXGO_CONTAINER_VOLUME=codexgo-logs:/app/logs
CODEXGO_CONTAINER_START=./run
CODEXGO_CONTAINER_RESTART=on-failure

CODEXGO_BROKER_RABBITMQ_URI=
CODEXGO_BROKER_RABBITMQ_NAME=codexgo-demo

CODEXGO_DATABASE_MONGODB_URI=
CODEXGO_DATABASE_MONGODB_NAME=codexgo-demo

CODEXGO_DATABASE_SQLITE_DSN=codexgo-demo.db

CODEXGO_SMTP_HOST=
CODEXGO_SMTP_PORT=
CODEXGO_SMTP_USERNAME=
CODEXGO_SMTP_PASSWORD=
CODEXGO_SMTP_HOST=localhost
CODEXGO_SMTP_PORT=1025

CODEXGO_JWT_SECRET_KEY=codexgo-demo

Expand All @@ -44,4 +40,9 @@ CODEXGO_SERVER_GIN_ALLOWED_HOSTS=localhost:8080
CODEXGO_SERVER_GIN_COOKIE_SECRET_KEY=codexgo-demo
CODEXGO_SERVER_GIN_COOKIE_SESSION_NAME=codexgo-demo

CODEXGO_DEV_AIR_PROXY_PORT=8080
CODEXGO_DEV_RELOAD_AIR_PROXY_PORT=8080

CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_NAME=codexgo-smtp-mailpit-demo
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_RESTART=on-failure

CODEXGO_DEV_SMTP_MAILPIT_WEBUI_PORT=8025
9 changes: 9 additions & 0 deletions deployments/.env.demo.cli
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
CODEXGO_JWT_SECRET_KEY=codexgo-demo

CODEXGO_SERVER_GIN_HOSTNAME=localhost
CODEXGO_SERVER_GIN_PORT=8080
CODEXGO_SERVER_GIN_URL=http://localhost:8080
CODEXGO_SERVER_GIN_MODE=release
CODEXGO_SERVER_GIN_ALLOWED_HOSTS=localhost:8080
CODEXGO_SERVER_GIN_COOKIE_SECRET_KEY=codexgo-demo
CODEXGO_SERVER_GIN_COOKIE_SESSION_NAME=codexgo-demo
48 changes: 48 additions & 0 deletions deployments/.env.demo.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
CODEXGO_BROKER_RABBITMQ_CONTAINER_NAME=codexgo-broker-rabbitmq-dev
CODEXGO_BROKER_RABBITMQ_CONTAINER_RESTART=on-failure

CODEXGO_BROKER_RABBITMQ_AMQP_PORT=5672
CODEXGO_BROKER_RABBITMQ_ADMIN_PORT=15672
CODEXGO_BROKER_RABBITMQ_ADMIN_USERNAME=codexgo-dev
CODEXGO_BROKER_RABBITMQ_ADMIN_PASSWORD=codexgo-dev

CODEXGO_DATABASE_MONGODB_CONTAINER_NAME=codexgo-database-mongodb-dev
CODEXGO_DATABASE_MONGODB_CONTAINER_VOLUME=codexgo-database-mongodb-dev
CODEXGO_DATABASE_MONGODB_CONTAINER_RESTART=on-failure

CODEXGO_DATABASE_MONGODB_PORT=27017
CODEXGO_DATABASE_MONGODB_ROOT_USERNAME=codexgo-dev
CODEXGO_DATABASE_MONGODB_ROOT_PASSWORD=codexgo-dev

CODEXGO_CONTAINER_IMAGE_TAG=codexgo-dev
CODEXGO_CONTAINER_IMAGE_BUILD_TARGET=dev
CODEXGO_CONTAINER_NAME=codexgo-dev
CODEXGO_CONTAINER_VOLUME=..:/app
CODEXGO_CONTAINER_START=air
CODEXGO_CONTAINER_RESTART=on-failure

CODEXGO_BROKER_RABBITMQ_NAME=codexgo-dev

CODEXGO_DATABASE_MONGODB_NAME=codexgo-dev

CODEXGO_DATABASE_SQLITE_DSN=codexgo-dev.db

CODEXGO_SMTP_HOST=localhost
CODEXGO_SMTP_PORT=1025

CODEXGO_JWT_SECRET_KEY=codexgo-dev

CODEXGO_SERVER_GIN_HOSTNAME=localhost
CODEXGO_SERVER_GIN_PORT=8080
CODEXGO_SERVER_GIN_URL=http://localhost:8080
CODEXGO_SERVER_GIN_MODE=debug
CODEXGO_SERVER_GIN_ALLOWED_HOSTS=localhost:8080
CODEXGO_SERVER_GIN_COOKIE_SECRET_KEY=codexgo-dev
CODEXGO_SERVER_GIN_COOKIE_SESSION_NAME=codexgo-dev

CODEXGO_DEV_RELOAD_AIR_PROXY_PORT=8090

CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_NAME=codexgo-smtp-mailpit-dev
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_RESTART=on-failure

CODEXGO_DEV_SMTP_MAILPIT_WEBUI_PORT=8025
50 changes: 50 additions & 0 deletions deployments/.env.demo.prod
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
CODEXGO_BROKER_RABBITMQ_CONTAINER_NAME=codexgo-broker-rabbitmq
CODEXGO_BROKER_RABBITMQ_CONTAINER_RESTART=always

CODEXGO_BROKER_RABBITMQ_AMQP_PORT=5672
CODEXGO_BROKER_RABBITMQ_ADMIN_PORT=15672
CODEXGO_BROKER_RABBITMQ_ADMIN_USERNAME=codexgo
CODEXGO_BROKER_RABBITMQ_ADMIN_PASSWORD=codexgo

CODEXGO_DATABASE_MONGODB_CONTAINER_NAME=codexgo-database-mongodb
CODEXGO_DATABASE_MONGODB_CONTAINER_VOLUME=codexgo-database-mongodb
CODEXGO_DATABASE_MONGODB_CONTAINER_RESTART=always

CODEXGO_DATABASE_MONGODB_PORT=27017
CODEXGO_DATABASE_MONGODB_ROOT_USERNAME=codexgo
CODEXGO_DATABASE_MONGODB_ROOT_PASSWORD=codexgo

CODEXGO_CONTAINER_IMAGE_TAG=codexgo
CODEXGO_CONTAINER_IMAGE_BUILD_TARGET=prod
CODEXGO_CONTAINER_NAME=codexgo
CODEXGO_CONTAINER_VOLUME=codexgo-logs:/app/logs
CODEXGO_CONTAINER_START=./run
CODEXGO_CONTAINER_RESTART=always

CODEXGO_BROKER_RABBITMQ_NAME=codexgo

CODEXGO_DATABASE_MONGODB_NAME=codexgo

CODEXGO_DATABASE_SQLITE_DSN=codexgo.db

CODEXGO_SMTP_HOST=
CODEXGO_SMTP_PORT=
CODEXGO_SMTP_USERNAME=
CODEXGO_SMTP_PASSWORD=

CODEXGO_JWT_SECRET_KEY=codexgo

CODEXGO_SERVER_GIN_HOSTNAME=localhost
CODEXGO_SERVER_GIN_PORT=8080
CODEXGO_SERVER_GIN_URL=http://localhost:8080
CODEXGO_SERVER_GIN_MODE=release
CODEXGO_SERVER_GIN_ALLOWED_HOSTS=localhost:8080
CODEXGO_SERVER_GIN_COOKIE_SECRET_KEY=codexgo
CODEXGO_SERVER_GIN_COOKIE_SESSION_NAME=codexgo

CODEXGO_DEV_RELOAD_AIR_PROXY_PORT=8080

CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_NAME=
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_RESTART=

CODEXGO_DEV_SMTP_MAILPIT_WEBUI_PORT=8080
48 changes: 48 additions & 0 deletions deployments/.env.demo.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
CODEXGO_BROKER_RABBITMQ_CONTAINER_NAME=codexgo-broker-rabbitmq-test
CODEXGO_BROKER_RABBITMQ_CONTAINER_RESTART=on-failure

CODEXGO_BROKER_RABBITMQ_AMQP_PORT=5672
CODEXGO_BROKER_RABBITMQ_ADMIN_PORT=15672
CODEXGO_BROKER_RABBITMQ_ADMIN_USERNAME=codexgo-test
CODEXGO_BROKER_RABBITMQ_ADMIN_PASSWORD=codexgo-test

CODEXGO_DATABASE_MONGODB_CONTAINER_NAME=codexgo-database-mongodb-test
CODEXGO_DATABASE_MONGODB_CONTAINER_VOLUME=codexgo-database-mongodb-test
CODEXGO_DATABASE_MONGODB_CONTAINER_RESTART=on-failure

CODEXGO_DATABASE_MONGODB_PORT=27017
CODEXGO_DATABASE_MONGODB_ROOT_USERNAME=codexgo-test
CODEXGO_DATABASE_MONGODB_ROOT_PASSWORD=codexgo-test

CODEXGO_CONTAINER_IMAGE_TAG=codexgo-test
CODEXGO_CONTAINER_IMAGE_BUILD_TARGET=test
CODEXGO_CONTAINER_NAME=codexgo-test
CODEXGO_CONTAINER_VOLUME=..:/app
CODEXGO_CONTAINER_START='task tests'
CODEXGO_CONTAINER_RESTART=on-failure

CODEXGO_BROKER_RABBITMQ_NAME=codexgo-test

CODEXGO_DATABASE_MONGODB_NAME=codexgo-test

CODEXGO_DATABASE_SQLITE_DSN=codexgo-test.db

CODEXGO_SMTP_HOST=localhost
CODEXGO_SMTP_PORT=1025

CODEXGO_JWT_SECRET_KEY=codexgo-test

CODEXGO_SERVER_GIN_HOSTNAME=localhost
CODEXGO_SERVER_GIN_PORT=8080
CODEXGO_SERVER_GIN_URL=http://localhost:8080
CODEXGO_SERVER_GIN_MODE=test
CODEXGO_SERVER_GIN_ALLOWED_HOSTS=localhost:8080
CODEXGO_SERVER_GIN_COOKIE_SECRET_KEY=codexgo-test
CODEXGO_SERVER_GIN_COOKIE_SESSION_NAME=codexgo-test

CODEXGO_DEV_RELOAD_AIR_PROXY_PORT=8080

CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_NAME=codexgo-smtp-mailpit-test
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_RESTART=on-failure

CODEXGO_DEV_SMTP_MAILPIT_WEBUI_PORT=8025
File renamed without changes.
File renamed without changes.
7 changes: 6 additions & 1 deletion deployments/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,9 @@ CODEXGO_SERVER_GIN_ALLOWED_HOSTS=
CODEXGO_SERVER_GIN_COOKIE_SECRET_KEY=
CODEXGO_SERVER_GIN_COOKIE_SESSION_NAME=

CODEXGO_DEV_AIR_PROXY_PORT=
CODEXGO_DEV_RELOAD_AIR_PROXY_PORT=

CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_NAME=
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_RESTART=

CODEXGO_DEV_SMTP_MAILPIT_WEBUI_PORT=
2 changes: 1 addition & 1 deletion deployments/.env.example.cli
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ CODEXGO_DATABASE_MONGODB_NAME=codexgo-(dev|test|prod|demo)
CODEXGO_DATABASE_SQLITE_DSN=codexgo-(dev|test|prod|demo).db

CODEXGO_SMTP_HOST=smtp.example.com
CODEXGO_SMTP_PORT=(25|465|587|2525)
CODEXGO_SMTP_PORT=(25|465|587|1025|2525)
CODEXGO_SMTP_USERNAME=codexgo-(dev|test|prod|demo)
CODEXGO_SMTP_PASSWORD=codexgo-(dev|test|prod|demo)

Expand Down
9 changes: 7 additions & 2 deletions deployments/.env.example.demo
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ CODEXGO_DATABASE_MONGODB_NAME=codexgo-(dev|test|prod|demo)
CODEXGO_DATABASE_SQLITE_DSN=codexgo-(dev|test|prod|demo).db

CODEXGO_SMTP_HOST=smtp.example.com
CODEXGO_SMTP_PORT=(25|465|587|2525)
CODEXGO_SMTP_PORT=(25|465|587|1025|2525)
CODEXGO_SMTP_USERNAME=codexgo-(dev|test|prod|demo)
CODEXGO_SMTP_PASSWORD=codexgo-(dev|test|prod|demo)

Expand All @@ -44,4 +44,9 @@ CODEXGO_SERVER_GIN_ALLOWED_HOSTS=localhost:8080
CODEXGO_SERVER_GIN_COOKIE_SECRET_KEY=codexgo-(dev|test|prod|demo)
CODEXGO_SERVER_GIN_COOKIE_SESSION_NAME=codexgo-(dev|test|prod|demo)

CODEXGO_DEV_AIR_PROXY_PORT=(8090|8080)
CODEXGO_DEV_RELOAD_AIR_PROXY_PORT=(8090|8080)

CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_NAME=codexgo-smtp-mailpit-(dev|test|prod|demo)
CODEXGO_DEV_SMTP_MAILPIT_CONTAINER_RESTART=(on-failure|always)

CODEXGO_DEV_SMTP_MAILPIT_WEBUI_PORT=(8025|8080)
Loading

0 comments on commit 9902916

Please sign in to comment.