Files
gogs/moon.yml
T
2026-05-23 21:55:22 -04:00

147 lines
3.6 KiB
YAML

$schema: "https://moonrepo.dev/schemas/project.json"
language: "go"
stack: "backend"
id: "gogs"
fileGroups:
sources:
- "cmd/**/*.go"
- "internal/**/*.go"
- "public/**/*.go"
- "templates/**/*.go"
- "conf/**/*.go"
tests:
- "**/*_test.go"
configs:
- "go.mod"
- "go.sum"
- ".golangci.yml"
assets:
- "conf/**/*"
- "public/**/*"
- "templates/**/*"
tasks:
install:
script: |
go mod tidy
go generate ./...
inputs:
- "@group(sources)"
- "@group(configs)"
- "mockgen.go"
- "mockgen.yaml"
format:
command: "golangci-lint fmt"
inputs:
- "@group(sources)"
- "@group(configs)"
deps:
- "install"
lint:
command: "golangci-lint run"
inputs:
- "@group(sources)"
- "@group(configs)"
deps:
- "install"
- "format"
test:
command: "go test -cover -race ./..."
inputs:
- "@group(sources)"
- "@group(tests)"
- "@group(configs)"
deps:
- "install"
build:
script: |
go build -v -trimpath \
-ldflags "-X 'gogs.io/gogs/internal/conf.BuildTime=$(date -u '+%Y-%m-%d %I:%M:%S %Z')' -X 'gogs.io/gogs/internal/conf.BuildCommit=$(git rev-parse HEAD)'" \
-o .bin/gogs ./cmd/gogs
inputs:
- "@group(sources)"
- "@group(configs)"
- "@group(assets)"
outputs:
- ".bin/gogs"
deps:
- "install"
build-prod:
script: |
go build -v -trimpath -tags prod \
-ldflags "-X 'gogs.io/gogs/internal/conf.BuildTime=$(date -u '+%Y-%m-%d %I:%M:%S %Z')' -X 'gogs.io/gogs/internal/conf.BuildCommit=$(git rev-parse HEAD)'" \
-o .bin/gogs ./cmd/gogs
inputs:
- "@group(sources)"
- "@group(configs)"
- "@group(assets)"
outputs:
- ".bin/gogs"
deps:
- "install"
- "web:build"
portless:
script: |
portless alias gogs 3000 --force >/dev/null
portless proxy start >/dev/null 2>&1 || true
mkdir -p .bin/custom/conf
touch .bin/custom/conf/app.ini
awk '
BEGIN { in_server=0; saw_server=0; set_domain=0; set_url=0 }
/^\[server\]/ { in_server=1; saw_server=1; print; next }
/^\[/ {
if (in_server) {
if (!set_domain) print "DOMAIN = gogs.localhost"
if (!set_url) print "EXTERNAL_URL = https://gogs.localhost/"
in_server=0
}
print; next
}
in_server && /^[[:space:]]*DOMAIN[[:space:]]*=/ {
print "DOMAIN = gogs.localhost"; set_domain=1; next
}
in_server && /^[[:space:]]*EXTERNAL_URL[[:space:]]*=/ {
print "EXTERNAL_URL = https://gogs.localhost/"; set_url=1; next
}
{ print }
END {
if (in_server) {
if (!set_domain) print "DOMAIN = gogs.localhost"
if (!set_url) print "EXTERNAL_URL = https://gogs.localhost/"
} else if (!saw_server) {
print ""
print "[server]"
print "DOMAIN = gogs.localhost"
print "EXTERNAL_URL = https://gogs.localhost/"
}
}
' .bin/custom/conf/app.ini > .bin/custom/conf/app.ini.tmp \
&& mv .bin/custom/conf/app.ini.tmp .bin/custom/conf/app.ini
dev:
script: "cd .bin && ./gogs web"
preset: "server"
env:
TTY_FORCE: "1"
deps:
- "build"
- "web:dev"
- "portless"
prod:
script: "cd .bin && ./gogs web"
preset: "server"
env:
TTY_FORCE: "1"
deps:
- "build-prod"
- "portless"