mirror of
https://github.com/go-shiori/shiori.git
synced 2025-03-11 07:18:05 +08:00
* return corrent path in windows with usiing path lib * ci: run tests in windows and macos too * avoid testing mysql/psql in windows and macos * windows & macos matrix * disable gotestfmt * replace which in shell script * handle error in test db removal * fix expected path baseed on platform * add leading seprator * proper temporary storage dir and db cleanup * fix failed to create destination dir file does not exist in windows * move temp to /tmp * update temp folder * fix config tests in windows * apply patch for db * revert temp dir creation. * unify account db tests pach * remove TmpDir for sqlite tests * try to force CGO disable with enviroment variable * Remove unneeded log Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com> * remove unneeded comment Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com> * fix file path for download images * change way to create temp directory * use diffrent file name for each test * fix typo * fix absolute path in successful download image * correct filename with png * change test to download image from internet instead of local machine * remvoe unneeded import * remove os.RemoveAll(.env) * unify variable names in unit test * return CGO_ENABLED=0 * test other way to set enviroment variable * try to set enviroment variable sepratly in macos and windows * set enviroment variable before run commands in windows * fix windows test name * combine two workflow for windows and macos again * fix typo * remove env * change env path * cleanup unneeded env * general CGO_ENABLED environ * use absolute path to run fileserver instead of relative * serve file test from internet shiori repository * check file existance after download and unify varibale name from temp to tmpDir * remove unneeded log --------- Co-authored-by: Felipe M <me@fmartingr.com> Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
101 lines
2.6 KiB
Makefile
101 lines
2.6 KiB
Makefile
GO ?= $(shell command -v go 2> /dev/null)
|
|
BASH ?= $(shell command -v bash 2> /dev/null)
|
|
|
|
# Development
|
|
SHIORI_DIR ?= dev-data
|
|
|
|
# Testing
|
|
override GO_TEST_FLAGS += -v -race -count=1 -covermode=atomic -coverprofile=coverage.out
|
|
GOTESTFMT_FLAGS ?=
|
|
|
|
# Build
|
|
CGO_ENABLED ?= 0
|
|
BUILD_TIME := $(shell date -u +%Y%m%d.%H%M%S)
|
|
BUILD_HASH := $(shell git describe --tags)
|
|
BUILD_TAGS ?= osusergo,netgo
|
|
LDFLAGS += -s -w -X main.version=$(BUILD_HASH) -X main.date=$(BUILD_TIME)
|
|
|
|
# Development
|
|
GIN_MODE ?= debug
|
|
SHIORI_DEVELOPMENT ?= true
|
|
|
|
# Swagger
|
|
SWAG_VERSION := $(shell grep "swaggo/swag" go.mod | cut -d " " -f 2)
|
|
SWAGGER_DOCS_PATH ?= ./docs/swagger
|
|
|
|
# Frontend
|
|
CLEANCSS_OPTS ?= --with-rebase
|
|
|
|
# Help documentatin à la https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
|
|
.PHONY: help
|
|
help:
|
|
@cat Makefile | grep -v '\.PHONY' | grep -v '\help:' | grep -B1 -E '^[a-zA-Z0-9_.-]+:.*' | sed -e "s/:.*//" | sed -e "s/^## //" | grep -v '\-\-' | sed '1!G;h;$$!d' | awk 'NR%2{printf "\033[36m%-30s\033[0m",$$0;next;}1' | sort
|
|
|
|
## Cleans up build artifacts
|
|
.PHONY: clean
|
|
clean:
|
|
rm -rf dist
|
|
|
|
## Runs the legacy http API for local development
|
|
.PHONY: serve
|
|
serve:
|
|
SHIORI_DEVELOPMENT=$(SHIORI_DEVELOPMENT) SHIORI_DIR=$(SHIORI_DIR) go run main.go serve
|
|
|
|
## Runs server for local development
|
|
.PHONY: run-server
|
|
run-server:
|
|
GIN_MODE=$(GIN_MODE) SHIORI_DEVELOPMENT=$(SHIORI_DEVELOPMENT) SHIORI_DIR=$(SHIORI_DIR) SHIORI_HTTP_SECRET_KEY=shiori go run main.go server --log-level debug
|
|
|
|
## Generate swagger docs
|
|
.PHONY: swagger
|
|
swagger:
|
|
SWAGGER_DOCS_PATH=$(SWAGGER_DOCS_PATH) $(BASH) ./scripts/swagger.sh
|
|
|
|
.PHONY: swag-check
|
|
swag-check:
|
|
REQUIRED_SWAG_VERSION=$(SWAG_VERSION) SWAGGER_DOCS_PATH=$(SWAGGER_DOCS_PATH) $(BASH) ./scripts/swagger_check.sh
|
|
|
|
.PHONY: swag-fmt
|
|
swag-fmt:
|
|
swag fmt --dir internal/http
|
|
go fmt ./internal/http/...
|
|
|
|
## Run linters
|
|
.PHONY: lint
|
|
lint: golangci-lint swag-check
|
|
|
|
## Run golangci-lint
|
|
.PHONY: golangci-lint
|
|
golangci-lint:
|
|
golangci-lint run
|
|
|
|
## Run unit tests
|
|
.PHONY: unittest
|
|
unittest:
|
|
GIN_MODE=$(GIN_MODE) GO_TEST_FLAGS="$(GO_TEST_FLAGS)" GOTESTFMT_FLAGS="$(GOTESTFMT_FLAGS)" $(BASH) -xe ./scripts/test.sh
|
|
|
|
## Build styles
|
|
.PHONY: styles
|
|
styles:
|
|
CLEANCSS_OPTS=$(CLEANCSS_OPTS) $(BASH) ./scripts/styles.sh
|
|
|
|
## Build styles
|
|
.PHONY: styles-check
|
|
styles-check:
|
|
CLEANCSS_OPTS=$(CLEANCSS_OPTS) $(BASH) ./scripts/styles_check.sh
|
|
|
|
## Build binary
|
|
.PHONY: build
|
|
build: clean
|
|
GIN_MODE=$(GIN_MODE) goreleaser build --rm-dist --snapshot
|
|
|
|
## Creates a coverage report
|
|
.PHONY: coverage
|
|
coverage:
|
|
$(GO) test $(GO_TEST_FLAGS) -coverprofile=coverage.txt ./...
|
|
$(GO) tool cover -html=coverage.txt
|
|
|
|
## Run generate accross the project
|
|
.PHONY: generated
|
|
generate:
|
|
$(GO) generate ./...
|