Improve dev container and taskfile
This commit is contained in:
parent
9b5119d3dd
commit
6b3026dc8e
137
Taskfile.yml
137
Taskfile.yml
@ -5,31 +5,32 @@ vars:
|
||||
|
||||
tasks:
|
||||
default:
|
||||
desc: Build budgeteer in production mode
|
||||
deps: [frontend, cover]
|
||||
cmds:
|
||||
- task: build-prod
|
||||
- task: backend
|
||||
- task: cover
|
||||
|
||||
sqlc:
|
||||
desc: sqlc code generation
|
||||
sources:
|
||||
- ./sqlc.yaml
|
||||
- ./postgres/schema/*
|
||||
- ./postgres/queries/*
|
||||
generates:
|
||||
- ./postgres/*.sql.go
|
||||
run:
|
||||
desc: Start budgeteer
|
||||
deps: [backend]
|
||||
cmds:
|
||||
- sqlc generate
|
||||
- ./build/budgeteer{{exeExt}}
|
||||
|
||||
gomod:
|
||||
desc: Go modules
|
||||
sources:
|
||||
- ./go.mod
|
||||
- ./go.sum
|
||||
method: checksum
|
||||
dev:
|
||||
desc: Build budgeteer in dev mode (without frontend)
|
||||
cmds:
|
||||
- go mod download
|
||||
- task: backend
|
||||
|
||||
build:
|
||||
ci:
|
||||
desc: Run CI build
|
||||
deps: [go-lint, go-vet, go-fmt, js-tsc, js-lint]
|
||||
cmds:
|
||||
- task: default
|
||||
|
||||
backend:
|
||||
desc: Build budgeteer
|
||||
deps: [go-mod, go-sqlc]
|
||||
sources:
|
||||
- ./go.mod
|
||||
- ./go.sum
|
||||
@ -43,29 +44,37 @@ tasks:
|
||||
cmds:
|
||||
- go build -o ./build/budgeteer{{exeExt}} ./cmd/budgeteer
|
||||
|
||||
build-dev:
|
||||
desc: Build budgeteer in dev mode
|
||||
deps: [gomod, sqlc]
|
||||
go-vet:
|
||||
cmds:
|
||||
- go vet
|
||||
- go fmt
|
||||
- golangci-lint run
|
||||
- task: build
|
||||
|
||||
build-prod:
|
||||
desc: Build budgeteer in prod mode
|
||||
deps: [gomod, sqlc, frontend]
|
||||
go-fmt:
|
||||
cmds:
|
||||
- go vet
|
||||
- go fmt
|
||||
- golangci-lint run
|
||||
- task: build
|
||||
|
||||
ci:
|
||||
desc: Run CI build
|
||||
go-lint:
|
||||
cmds:
|
||||
- task: build-prod
|
||||
- task: cover
|
||||
- golangci-lint run
|
||||
|
||||
go-sqlc:
|
||||
desc: sqlc code generation
|
||||
sources:
|
||||
- ./sqlc.yaml
|
||||
- ./postgres/schema/*
|
||||
- ./postgres/queries/*
|
||||
generates:
|
||||
- ./postgres/*.sql.go
|
||||
cmds:
|
||||
- sqlc generate
|
||||
|
||||
go-mod:
|
||||
desc: Go modules
|
||||
sources:
|
||||
- ./go.mod
|
||||
- ./go.sum
|
||||
method: checksum
|
||||
cmds:
|
||||
- go mod download
|
||||
|
||||
cover:
|
||||
desc: Run test and analyze coverage
|
||||
@ -75,26 +84,40 @@ tasks:
|
||||
|
||||
frontend:
|
||||
desc: Build vue frontend
|
||||
dir: web
|
||||
deps: [js-build]
|
||||
sources:
|
||||
- web/src/**/*
|
||||
generates:
|
||||
- web/dist/**/*
|
||||
|
||||
frontend-dev:
|
||||
desc: Run dev-server for frontend
|
||||
dir: web
|
||||
cmds:
|
||||
- yarn run dev
|
||||
|
||||
js-build:
|
||||
dir: web
|
||||
deps: [js-mod]
|
||||
cmds:
|
||||
- yarn build
|
||||
|
||||
js-mod:
|
||||
dir: web
|
||||
cmds:
|
||||
- yarn
|
||||
- yarn build
|
||||
- yarn run vue-tsc --noEmit
|
||||
- yarn run eslint "./src/**"
|
||||
|
||||
docker:
|
||||
desc: Build budgeeter:latest
|
||||
deps: [build-prod]
|
||||
sources:
|
||||
- ./build/budgeteer{{exeExt}}
|
||||
- ./build/Dockerfile
|
||||
|
||||
js-tsc:
|
||||
dir: web
|
||||
deps: [js-mod]
|
||||
cmds:
|
||||
- docker build -t {{.IMAGE_NAME}}:latest ./build
|
||||
- docker push {{.IMAGE_NAME}}:latest
|
||||
- yarn run vue-tsc --noEmit
|
||||
|
||||
js-lint:
|
||||
dir: web
|
||||
deps: [js-mod]
|
||||
cmds:
|
||||
- yarn run eslint "./src/**"
|
||||
|
||||
dev-docker:
|
||||
desc: Build budgeeter:dev
|
||||
@ -103,17 +126,11 @@ tasks:
|
||||
- ./web/package.json
|
||||
- ./web/yarn.lock
|
||||
cmds:
|
||||
- docker build -t {{.IMAGE_NAME}}:dev . -f docker/Dockerfile.dev
|
||||
- docker push {{.IMAGE_NAME}}:dev
|
||||
|
||||
run:
|
||||
desc: Start budgeteer
|
||||
deps: [build-dev]
|
||||
- docker build -t {{.IMAGE_NAME}}:dev . -f docker/Dockerfile.dev
|
||||
- docker push {{.IMAGE_NAME}}:dev
|
||||
|
||||
run-dev:
|
||||
desc: Run dev environment in docker
|
||||
deps: [dev-docker]
|
||||
cmds:
|
||||
- ./build/budgeteer{{exeExt}}
|
||||
|
||||
rundocker:
|
||||
desc: Start docker-compose
|
||||
deps: [docker]
|
||||
cmds:
|
||||
- docker-compose up -d
|
||||
- docker-compose -f docker/docker-compose.dev.yml -p budgeteer up -d
|
@ -17,22 +17,22 @@ import (
|
||||
func main() {
|
||||
cfg, err := config.LoadConfig()
|
||||
if err != nil {
|
||||
log.Fatalf("Could not load config: %v", err)
|
||||
log.Fatalf("load config: %v", err)
|
||||
}
|
||||
|
||||
queries, err := postgres.Connect("pgx", cfg.DatabaseConnection)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed connecting to DB: %v", err)
|
||||
log.Fatalf("connect to database: %v", err)
|
||||
}
|
||||
|
||||
static, err := fs.Sub(web.Static, "dist")
|
||||
if err != nil {
|
||||
panic("couldn't open static files")
|
||||
panic("open static files")
|
||||
}
|
||||
|
||||
tokenVerifier, err := jwt.NewTokenVerifier(cfg.SessionSecret)
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("couldn't create token verifier: %w", err))
|
||||
panic(fmt.Errorf("create token verifier: %w", err))
|
||||
}
|
||||
|
||||
handler := &server.Handler{
|
||||
|
@ -6,10 +6,10 @@ RUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
|
||||
|
||||
FROM alpine
|
||||
RUN apk --no-cache add go nodejs yarn bash curl git git-perl
|
||||
RUN yarn global add @vue/cli
|
||||
ENV PATH="/root/.yarn/bin/:${PATH}"
|
||||
WORKDIR /src/web
|
||||
ADD web/package.json web/yarn.lock /src/web/
|
||||
RUN yarn
|
||||
WORKDIR /src
|
||||
VOLUME /go
|
||||
VOLUME /.cache
|
||||
COPY --from=godeps /root/go/bin/task /root/go/bin/sqlc /root/go/bin/golangci-lint /usr/local/bin/
|
@ -6,11 +6,10 @@ services:
|
||||
command: task -w run
|
||||
ports:
|
||||
- 1323:1323
|
||||
user: '1000'
|
||||
volumes:
|
||||
- ~/budgeteer:/src
|
||||
- ~/.go:/go
|
||||
- ~/.cache:/.cache
|
||||
- go-cache:/go
|
||||
- yarn-cache:/.cache
|
||||
environment:
|
||||
BUDGETEER_DB: postgres://budgeteer:budgeteer@db:5432/budgeteer
|
||||
BUDGETEER_SESSION_SECRET: random string for JWT authorization
|
||||
@ -19,13 +18,11 @@ services:
|
||||
|
||||
frontend:
|
||||
image: hub.javil.eu/budgeteer:dev
|
||||
command: bash -c "cd web; yarn run dev"
|
||||
command: task frontend-dev
|
||||
ports:
|
||||
- 3000:3000
|
||||
user: '1000'
|
||||
volumes:
|
||||
- ~/budgeteer:/src
|
||||
- ~/.cache:/.cache
|
||||
depends_on:
|
||||
- backend
|
||||
|
||||
@ -49,3 +46,5 @@ services:
|
||||
|
||||
volumes:
|
||||
db:
|
||||
go-cache:
|
||||
yarn-cache:
|
||||
|
@ -1,4 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.13.0
|
||||
// source: accounts.sql
|
||||
|
||||
package postgres
|
||||
|
@ -1,4 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.13.0
|
||||
// source: assignments.sql
|
||||
|
||||
package postgres
|
||||
|
@ -1,4 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.13.0
|
||||
// source: budgets.sql
|
||||
|
||||
package postgres
|
||||
|
@ -1,4 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.13.0
|
||||
// source: categories.sql
|
||||
|
||||
package postgres
|
||||
|
@ -1,4 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.13.0
|
||||
// source: cumultative-balances.sql
|
||||
|
||||
package postgres
|
||||
|
@ -1,4 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.13.0
|
||||
|
||||
package postgres
|
||||
|
||||
|
@ -1,4 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.13.0
|
||||
|
||||
package postgres
|
||||
|
||||
|
@ -1,4 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.13.0
|
||||
// source: payees.sql
|
||||
|
||||
package postgres
|
||||
|
@ -1,4 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.13.0
|
||||
// source: transactions.sql
|
||||
|
||||
package postgres
|
||||
|
@ -1,4 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.13.0
|
||||
// source: user_budgets.sql
|
||||
|
||||
package postgres
|
||||
|
@ -1,4 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.13.0
|
||||
// source: users.sql
|
||||
|
||||
package postgres
|
||||
|
@ -22,9 +22,6 @@
|
||||
"@types/file-saver": "^2.0.5",
|
||||
"@typescript-eslint/parser": "^5.13.0",
|
||||
"@vitejs/plugin-vue": "^2.0.0",
|
||||
"@vue/cli-plugin-babel": "5.0.0-beta.7",
|
||||
"@vue/cli-plugin-typescript": "~4.5.0",
|
||||
"@vue/cli-service": "5.0.0-beta.7",
|
||||
"eslint": "^8.10.0",
|
||||
"eslint-plugin-vue": "^8.5.0",
|
||||
"prettier": "2.5.1",
|
||||
|
Loading…
x
Reference in New Issue
Block a user