-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTaskfile.yml
110 lines (89 loc) · 2.84 KB
/
Taskfile.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
version: '3'
dotenv: [.env]
env:
ENV: local
vars:
TEST_COMPOSE_FILE: docker-compose.test.yml
tasks:
db:schema:apply:
desc: Applies schema to the database which will take care of creating the tables
cmds:
- docker compose run --rm dev-cli atlas schema apply --env local --auto-approve
- task: models:generate
down:
cmds:
- docker compose down --remove-orphans
- pgrep -f 'docker-compose compose watch' | xargs kill -SIGINT
up:
desc: Runs the application in development mode in docker
cmds:
- docker compose watch
graphql:schema:generate:
desc: Generate graphql schema
cmds:
- docker compose run --rm dev-cli go run github.com/99designs/gqlgen generate
logs:
desc: Tails the logs of the application
cmds:
- docker compose logs -f
build:
desc: Rebuilds images
cmds:
- docker compose build
- docker compose build dev-cli
test:build:
desc: Rebuilds test images
cmds:
- docker compose -f {{ .TEST_COMPOSE_FILE }} -p ezsplit_test build
- docker compose -f {{ .TEST_COMPOSE_FILE }} -p test-cli build
compose:
desc: Acts as a proxy for `docker compose` command
cmds:
- docker compose {{.CLI_ARGS}}
list:
desc: Lists all available tasks
cmds:
- task --list-all
ping:
desc: Pings the application
cmds:
- curl http://localhost:$PORT/ping
db:seed:run:
desc: Initialize database with data
cmds:
- docker compose run --rm dev-cli go run cmd/seed/main.go
test:
dotenv: [.env.test]
cmds:
- cmd: docker compose -f {{ .TEST_COMPOSE_FILE }} -p ezsplit_test run --rm app
ignore_error: true
- defer: docker compose -f {{ .TEST_COMPOSE_FILE }} -p ezsplit_test down
dev:cli:
cmds:
- docker compose run --rm dev-cli sh
test:cli:
desc: Access the test container
cmds:
- docker compose -f {{ .TEST_COMPOSE_FILE }} run --rm test-cli sh
lint:
desc: Runs linter
cmds:
- defer: { task: down }
- task: models:generate
- '{{if eq .CLI_ARGS "docker"}}docker compose run --rm dev-cli{{end}} go vet ./...'
- '{{if eq .CLI_ARGS "docker"}}docker compose run --rm dev-cli{{end}} go run github.com/golangci/golangci-lint/cmd/[email protected] run -v ./...'
db:setup:
cmds:
- task: db:schema:apply
- task: db:seed:run
models:generate:
desc: Generate DB models
cmds:
- docker compose run --rm dev-cli go run cmd/ezsplit_jet/*.go
jet:models:generate:
internal: true
desc: Do not use this. Please use models:generate command instead
vars:
JET_COMMAND: 'jet -source=postgresql -user=$DB_USER -password=$DB_PASSWORD -host=$DB_HOST -port=$DB_PORT -dbname=$DB_NAME -schema=public -sslmode=disable -path=./.gen'
cmds:
- docker compose run --rm dev-cli {{.JET_COMMAND}}