102 lines
1.9 KiB
YAML
102 lines
1.9 KiB
YAML
version: '3'
|
|
|
|
vars:
|
|
BINARY_NAME: cms
|
|
MAIN_PATH: ./main.go
|
|
|
|
tasks:
|
|
default:
|
|
desc: Display available tasks
|
|
cmds:
|
|
- task --list
|
|
|
|
build:
|
|
desc: Build the application
|
|
deps: [templ]
|
|
cmds:
|
|
- go build -o {{.BINARY_NAME}} {{.MAIN_PATH}}
|
|
sources:
|
|
- '**/*.go'
|
|
- 'go.mod'
|
|
- 'go.sum'
|
|
generates:
|
|
- '{{.BINARY_NAME}}'
|
|
|
|
css:compile:
|
|
desc: Compile SCSS to CSS using Sass
|
|
cmds:
|
|
- npx sass --style compressed assets/bulma/bulma.scss static/style.css --no-source-map
|
|
sources:
|
|
- 'assets/bulma/sass/**/*.scss'
|
|
generates:
|
|
- 'static/style.css'
|
|
|
|
run:
|
|
desc: Run the application
|
|
deps: [templ]
|
|
cmds:
|
|
- go run {{.MAIN_PATH}}
|
|
|
|
templ:
|
|
desc: Generate templ files
|
|
cmds:
|
|
- templ generate
|
|
sources:
|
|
- 'pkg/views/*.templ'
|
|
generates:
|
|
- 'pkg/views/*_templ.go'
|
|
|
|
csp:generate:
|
|
desc: Generate CSP script hashes from templates
|
|
cmds:
|
|
- go generate ./pkg/csp/...
|
|
sources:
|
|
- 'pkg/views/*.templ'
|
|
generates:
|
|
- 'pkg/csp/generated_hashes.go'
|
|
|
|
templ:watch:
|
|
desc: Watch and generate templ files on change
|
|
cmds:
|
|
- templ generate --watch
|
|
|
|
clean:
|
|
desc: Clean build artifacts
|
|
cmds:
|
|
- rm -f {{.BINARY_NAME}}
|
|
- rm -f pkg/views/*_templ.go
|
|
|
|
test:
|
|
desc: Run tests
|
|
cmds:
|
|
- go test -v ./...
|
|
|
|
test:cover:
|
|
desc: Run tests with coverage
|
|
cmds:
|
|
- go test -v -coverprofile=coverage.out ./...
|
|
- go tool cover -html=coverage.out -o coverage.html
|
|
|
|
lint:
|
|
desc: Run linter
|
|
cmds:
|
|
- golangci-lint run --fix ./...
|
|
|
|
fmt:
|
|
desc: Format code
|
|
cmds:
|
|
- go fmt ./...
|
|
- templ fmt .
|
|
|
|
deps:
|
|
desc: Download dependencies
|
|
cmds:
|
|
- go mod download
|
|
- go mod tidy
|
|
|
|
deps:update:
|
|
desc: Update dependencies
|
|
cmds:
|
|
- go get -u ./...
|
|
- go mod tidy
|