mirror of
https://github.com/kazhuravlev/database-gateway.git
synced 2025-06-24 09:10:48 +00:00
151 lines
3.9 KiB
YAML
151 lines
3.9 KiB
YAML
# Database Gateway provides access to servers with ACL for safe and restricted database interactions.
|
|
# Copyright (C) 2024 Kirill Zhuravlev
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
version: "3"
|
|
|
|
vars:
|
|
PROJECT_NAME: database-gateway
|
|
DEPS_COMPOSE_FILE: ./.cicd/local/docker-compose.yaml
|
|
DOCKER_IMAGE_NAME: database-gateway
|
|
GO_ENTRYPOINT: ./cmd/gateway
|
|
GIT_TAG:
|
|
sh: "gt t l -f tag"
|
|
|
|
tasks:
|
|
run:
|
|
cmds:
|
|
- go run {{ .GO_ENTRYPOINT }} run
|
|
|
|
deps:run:
|
|
desc: Run all deps
|
|
cmds:
|
|
- docker compose -p {{ .PROJECT_NAME }} -f {{ .DEPS_COMPOSE_FILE }} up -d
|
|
|
|
deps:logs:
|
|
desc: Show all deps logs
|
|
cmds:
|
|
- docker compose -p {{ .PROJECT_NAME }} -f {{ .DEPS_COMPOSE_FILE }} logs -f
|
|
|
|
deps:stop:
|
|
desc: Stop all deps
|
|
cmds:
|
|
- docker compose -p {{ .PROJECT_NAME }} -f {{ .DEPS_COMPOSE_FILE }} stop
|
|
|
|
deps:drop:
|
|
desc: Stop all deps, remove volumes and other resources
|
|
cmds:
|
|
- docker compose -p {{ .PROJECT_NAME }} -f {{ .DEPS_COMPOSE_FILE }} down -v -t 0
|
|
- docker volume list | grep {{ .PROJECT_NAME }} | awk '{print $2}' | xargs docker volume rm $1
|
|
|
|
tools:install:
|
|
cmds:
|
|
- echo '>>> Run install tools'
|
|
- toolset sync
|
|
|
|
lint:
|
|
desc: Run static analysis
|
|
cmds:
|
|
- echo '>>> Run lint'
|
|
- toolset run golangci-lint run
|
|
|
|
fmt:
|
|
desc: Safe formatting codebase
|
|
cmds:
|
|
- echo ">>> Run Code Formatter"
|
|
- go fmt $(go list ./...)
|
|
- toolset run gofumpt -l -w .
|
|
- toolset run goimports -d -w $(find . -type f -name '*.go' -not -path './.cicd/*')
|
|
|
|
migrations:new:
|
|
desc: Create new migration
|
|
cmds:
|
|
- go run {{ .GO_ENTRYPOINT }} migrate-new
|
|
|
|
migrations:up:
|
|
desc: Up all migrations
|
|
cmds:
|
|
- go run {{ .GO_ENTRYPOINT }} migrate-up
|
|
|
|
ci:lint:
|
|
desc: Run linter in CI tool
|
|
cmds:
|
|
- task: tools:install
|
|
- echo ">>> Run lint"
|
|
- toolset run golangci-lint run
|
|
|
|
generate:
|
|
desc: Generate code
|
|
cmds:
|
|
- task: "generate:go"
|
|
- task: "generate:tailwind"
|
|
- task: "generate:templ"
|
|
- task: "generate:jet"
|
|
- task: "generate:license"
|
|
- task: "fmt"
|
|
|
|
generate:jet:
|
|
desc: Generate jet models
|
|
cmds:
|
|
- echo ">>> Jet generate"
|
|
- go run {{ .GO_ENTRYPOINT }} jet-generate
|
|
- rm -rf ./internal/storage/jetgen/{table,model}
|
|
- mv ./internal/storage/jetgen/local__dbgw/public/* ./internal/storage/jetgen/
|
|
- rm -rf ./internal/storage/jetgen/local__dbgw
|
|
|
|
generate:license:
|
|
cmds:
|
|
- toolset run addlicense -f LICENSE_gplv3_header.txt .
|
|
|
|
generate:tailwind:
|
|
dir: './internal/facade'
|
|
cmds:
|
|
- npx tailwindcss -i ./static/input.css -o ./static/output.css
|
|
|
|
generate:go:
|
|
desc: Generate go
|
|
cmds:
|
|
- echo ">>> Go generate ./..."
|
|
- go generate ./...
|
|
|
|
generate:templ:
|
|
desc: Generate templ
|
|
dir: './internal/facade/templates'
|
|
cmds:
|
|
- echo ">>> Templ"
|
|
- toolset run templ generate
|
|
|
|
check:
|
|
desc: Run all project checks
|
|
cmds:
|
|
- task: "tools:install"
|
|
- task: "generate"
|
|
- task: "fmt"
|
|
- task: "lint"
|
|
- task: "test"
|
|
|
|
test:
|
|
cmds:
|
|
- go test ./...
|
|
|
|
docker:build:
|
|
cmds:
|
|
- echo ">>> Docker build"
|
|
- |
|
|
docker buildx build \
|
|
--platform linux/amd64 \
|
|
-t {{ .DOCKER_IMAGE_NAME }}:{{.GIT_TAG}} \
|
|
-f Dockerfile .
|