This repository has been archived by the owner on Sep 19, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
124 lines (106 loc) · 4.22 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
GO ?= go
WORK_DIR := $(shell pwd)
GITEA_SDK_TEST_URL ?= http://localhost:3000
GITEA_SDK_TEST_USERNAME ?= test01
GITEA_SDK_TEST_PASSWORD ?= test01
PACKAGE := github.com/OpenCSGs/gitea-go-sdk/gitea
GOFUMPT_PACKAGE ?= mvdan.cc/[email protected]
GOLANGCI_LINT_PACKAGE ?= github.com/golangci/golangci-lint/cmd/[email protected]
GITEA_VET_PACKAGE ?= code.gitea.io/[email protected]
GITEA_VERSION := 1.18
GITEA_DL := https://dl.gitea.com/gitea/$(GITEA_VERSION)/gitea-$(GITEA_VERSION)-
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
GITEA_DL := $(GITEA_DL)linux-
UNAME_P := $(shell uname -p)
ifeq ($(UNAME_P),unknown)
GITEA_DL := $(GITEA_DL)amd64
endif
ifeq ($(UNAME_P),x86_64)
GITEA_DL := $(GITEA_DL)amd64
endif
ifneq ($(filter %86,$(UNAME_P)),)
GITEA_DL := $(GITEA_DL)386
endif
ifneq ($(filter arm%,$(UNAME_P)),)
GITEA_DL := $(GITEA_DL)arm-5
endif
endif
ifeq ($(UNAME_S),Darwin)
GITEA_DL := $(GITEA_DL)darwin-10.12-amd64
endif
.PHONY: all
all: clean test build
.PHONY: help
help:
@echo "Make Routines:"
@echo " - \"\" run \"make clean test build\""
@echo " - build build sdk"
@echo " - clean clean"
@echo " - fmt format the code"
@echo " - lint run golint"
@echo " - vet examines Go source code and reports"
@echo " - test run unit tests (need a running gitea)"
@echo " - test-instance start a gitea instance for test"
.PHONY: clean
clean:
rm -r -f test
cd gitea && $(GO) clean -i ./...
.PHONY: fmt
fmt:
find . -name "*.go" -type f | xargs gofmt -s -w; \
$(GO) run $(GOFUMPT_PACKAGE) -extra -w ./gitea
.PHONY: vet
vet:
# Default vet
cd gitea && $(GO) vet $(PACKAGE)
# Custom vet
cd gitea && $(GO) get $(GITEA_VET_PACKAGE)
cd gitea && $(GO) build code.gitea.io/gitea-vet
cd gitea && $(GO) vet -vettool=gitea-vet $(PACKAGE)
.PHONY: ci-lint
ci-lint:
@cd gitea/; echo -n "gofumpt ...";\
diff=$$($(GO) run $(GOFUMPT_PACKAGE) -extra -l .); \
if [ -n "$$diff" ]; then \
echo; echo "Not gofumpt-ed"; \
exit 1; \
fi; echo " done"; echo -n "golangci-lint ...";\
$(GO) run $(GOLANGCI_LINT_PACKAGE) run --timeout 5m; \
if [ $$? -eq 1 ]; then \
echo; echo "Doesn't pass golangci-lint"; \
exit 1; \
fi; echo " done"; \
cd -; \
.PHONY: test
test:
@export GITEA_SDK_TEST_URL=${GITEA_SDK_TEST_URL}; export GITEA_SDK_TEST_USERNAME=${GITEA_SDK_TEST_USERNAME}; export GITEA_SDK_TEST_PASSWORD=${GITEA_SDK_TEST_PASSWORD}; \
if [ -z "$(shell curl --noproxy "*" "${GITEA_SDK_TEST_URL}/api/v1/version" 2> /dev/null)" ]; then \echo "No test-instance detected!"; exit 1; else \
cd gitea && $(GO) test -race -cover -coverprofile coverage.out; \
fi
.PHONY: test-instance
test-instance:
rm -f -r ${WORK_DIR}/test 2> /dev/null; \
mkdir -p ${WORK_DIR}/test/conf/ ${WORK_DIR}/test/data/
wget ${GITEA_DL} -O ${WORK_DIR}/test/gitea-main; \
chmod +x ${WORK_DIR}/test/gitea-main; \
echo "[security]" > ${WORK_DIR}/test/conf/app.ini; \
echo "INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE1NTg4MzY4ODB9.LoKQyK5TN_0kMJFVHWUW0uDAyoGjDP6Mkup4ps2VJN4" >> ${WORK_DIR}/test/conf/app.ini; \
echo "INSTALL_LOCK = true" >> ${WORK_DIR}/test/conf/app.ini; \
echo "SECRET_KEY = 2crAW4UANgvLipDS6U5obRcFosjSJHQANll6MNfX7P0G3se3fKcCwwK3szPyGcbo" >> ${WORK_DIR}/test/conf/app.ini; \
echo "PASSWORD_COMPLEXITY = off" >> ${WORK_DIR}/test/conf/app.ini; \
echo "[database]" >> ${WORK_DIR}/test/conf/app.ini; \
echo "DB_TYPE = sqlite3" >> ${WORK_DIR}/test/conf/app.ini; \
echo "[repository]" >> ${WORK_DIR}/test/conf/app.ini; \
echo "ROOT = ${WORK_DIR}/test/data/" >> ${WORK_DIR}/test/conf/app.ini; \
echo "[server]" >> ${WORK_DIR}/test/conf/app.ini; \
echo "ROOT_URL = ${GITEA_SDK_TEST_URL}" >> ${WORK_DIR}/test/conf/app.ini; \
${WORK_DIR}/test/gitea-main migrate -c ${WORK_DIR}/test/conf/app.ini; \
${WORK_DIR}/test/gitea-main admin user create --username=${GITEA_SDK_TEST_USERNAME} --password=${GITEA_SDK_TEST_PASSWORD} [email protected] --admin=true --must-change-password=false --access-token -c ${WORK_DIR}/test/conf/app.ini; \
${WORK_DIR}/test/gitea-main web -c ${WORK_DIR}/test/conf/app.ini
.PHONY: bench
bench:
cd gitea && $(GO) test -run=XXXXXX -benchtime=10s -bench=. || exit 1
.PHONY: build
build:
cd gitea && $(GO) build