version: '3' vars: BINARY_EXT: sh: echo '{{if eq OS "windows"}}.exe{{end}}' tasks: default: deps: [build] web: desc: Build the binary and start the web server deps: [build] cmds: - ./gogs web build: desc: Build the binary cmds: - go build -v -ldflags ' -X "{{.PKG_PATH}}.BuildTime={{.BUILD_TIME}}" -X "{{.PKG_PATH}}.BuildCommit={{.BUILD_COMMIT}}" ' -tags '{{.TAGS}}' -trimpath -o gogs{{.BINARY_EXT}} vars: PKG_PATH: gogs.io/gogs/internal/conf BUILD_TIME: sh: date -u '+%Y-%m-%d %I:%M:%S %Z' BUILD_COMMIT: sh: git rev-parse HEAD sources: - go.mod - gogs.go - internal/**/*.go - conf/**/* - public/**/* - templates/**/* - custom/**/* method: timestamp generate-schemadoc: desc: Generate database schema documentation cmds: - go generate ./internal/db/schemadoc generate: desc: Run all go:generate commands cmds: - go generate ./... test: desc: Run all tests. cmds: - go test -cover -race ./... clean: desc: Cleans up system meta files cmds: - find . -name "*.DS_Store" -type f -delete release: desc: Build the binary and pack resources to a ZIP file deps: [build] cmds: - rm -rf {{.RELEASE_GOGS}} - mkdir -p {{.RELEASE_GOGS}} - cp -r gogs{{.BINARY_EXT}} LICENSE README.md README_ZH.md scripts {{.RELEASE_GOGS}} - cd {{.RELEASE_ROOT}} && zip -r gogs.zip "gogs" vars: RELEASE_ROOT: release RELEASE_GOGS: release/gogs less: desc: Generate CSS from LESS files cmds: - lessc --clean-css --source-map "public/less/gogs.less" public/css/gogs.min.css fixme: desc: Show all occurrences of "FIXME" cmds: - grep -rnw "FIXME" internal todo: desc: Show all occurrences of "TODO" cmds: - grep -rnw "TODO" internal legacy: desc: Identify legacy and deprecated lines cmds: - grep -rnw "\(LEGACY\|Deprecated\)" internal drop-test-db: desc: Drop the test database cmds: - | for dbname in $(psql -Xc "copy (select datname from pg_database where datname like 'gogs-%') to stdout"); do dropdb "$dbname" echo "dropped $dbname" done