2023-02-10 03:00:14 +00:00
CGO_FLAGS := '-extldflags "-static" -linkmode external'
TAGS := 'sqlite sqlite_unlock_notify netgo'
2021-11-20 15:31:10 +01:00
dev :
#!/usr/bin/env bash
set -euxo pipefail
export ACME_API = https://acme.mock.directory
export ACME_ACCEPT_TERMS = true
export PAGES_DOMAIN = localhost.mock.directory
export RAW_DOMAIN = raw.localhost.mock.directory
export PORT = 4430
2023-11-17 16:15:25 +01:00
export HTTP_PORT = 1234
2023-02-14 02:23:28 +00:00
export ENABLE_HTTP_SERVER = true
2022-08-12 05:24:05 +02:00
export LOG_LEVEL = trace
2023-02-10 03:00:14 +00:00
go run -tags '{{TAGS}}' .
2021-11-20 21:43:12 +01:00
build :
2023-02-10 03:00:14 +00:00
CGO_ENABLED = 1 go build -tags '{{TAGS}}' -ldflags '-s -w {{CGO_FLAGS}}' -v -o build/codeberg-pages-server ./
2022-05-10 18:13:14 +02:00
2022-06-14 20:35:11 +02:00
build-tag VERSION :
2023-02-10 03:00:14 +00:00
CGO_ENABLED = 1 go build -tags '{{TAGS}}' -ldflags '-s -w -X "codeberg.org/codeberg/pages/server/version.Version={{VERSION}}" {{CGO_FLAGS}}' -v -o build/codeberg-pages-server ./
2022-06-14 20:35:11 +02:00
2022-05-10 18:13:14 +02:00
lint : tool -golangci tool -gofumpt
2022-06-11 23:17:43 +02:00
golangci-lint run --timeout 5m --build-tags integration
2022-11-11 23:51:45 +01:00
# TODO: run editorconfig-checker
2022-05-10 18:13:14 +02:00
2022-06-11 23:02:06 +02:00
fmt : tool -gofumpt
gofumpt -w --extra .
2022-07-15 21:21:26 +02:00
clean :
go clean ./...
2023-02-11 02:04:57 +00:00
rm -rf build/ integration/certs.sqlite integration/acme-account.json
2022-07-15 21:21:26 +02:00
2022-05-10 18:13:14 +02:00
tool-golangci :
@hash golangci-lint> /dev/null 2>& 1; if [ $? -ne 0 ] ; then \
2022-05-30 23:55:37 +02:00
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest; \
2022-05-10 18:13:14 +02:00
fi
tool-gofumpt :
@hash gofumpt> /dev/null 2>& 1; if [ $? -ne 0 ] ; then \
go install mvdan.cc/gofumpt@latest; \
fi
2022-06-13 14:43:49 +02:00
test :
2023-11-17 16:15:25 +01:00
go test -race -cover -tags '{{TAGS}}' codeberg.org/codeberg/pages/config/ codeberg.org/codeberg/pages/html/ codeberg.org/codeberg/pages/server/...
2022-06-13 14:43:49 +02:00
2022-06-14 20:35:11 +02:00
test-run TEST :
2023-11-17 16:15:25 +01:00
go test -race -tags '{{TAGS}}' -run " ^{{TEST}} $" codeberg.org/codeberg/pages/config/ codeberg.org/codeberg/pages/html/ codeberg.org/codeberg/pages/server/...
2022-06-14 20:35:11 +02:00
2022-06-13 14:43:49 +02:00
integration :
2023-02-10 03:00:14 +00:00
go test -race -tags 'integration {{TAGS}}' codeberg.org/codeberg/pages/integration/...
2022-06-14 20:35:11 +02:00
integration-run TEST :
2023-02-10 03:00:14 +00:00
go test -race -tags 'integration {{TAGS}}' -run " ^{{TEST}} $" codeberg.org/codeberg/pages/integration/...
2023-02-13 20:14:45 +00:00
docker :
docker run --rm -it --user $( id -u) -v $( pwd ) :/work --workdir /work -e HOME = /work codeberg.org/6543/docker-images/golang_just