forked from greenpau/caddy-authorize
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
140 lines (124 loc) · 6.08 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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
.PHONY: test ctest covdir coverage docs linter qtest clean dep release templates info license
PLUGIN_NAME="caddy-auth-jwt"
REPO_BASE="github.com/greenpau/caddy-auth-jwt"
PLUGIN_VERSION:=$(shell cat VERSION | head -1)
GIT_COMMIT:=$(shell git describe --dirty --always)
GIT_BRANCH:=$(shell git rev-parse --abbrev-ref HEAD -- | head -1)
LATEST_GIT_COMMIT:=$(shell git log --format="%H" -n 1 | head -1)
BUILD_USER:=$(shell whoami)
BUILD_DATE:=$(shell date +"%Y-%m-%d")
BUILD_DIR:=$(shell pwd)
VERBOSE:=-v
ifdef TEST
TEST:="-run ${TEST}"
endif
CADDY_VERSION="v2.4.3"
all: build
build: info license
@mkdir -p bin/
@rm -rf ./bin/caddy
@rm -rf ../xcaddy-$(PLUGIN_NAME)/*
@mkdir -p ../xcaddy-$(PLUGIN_NAME) && cd ../xcaddy-$(PLUGIN_NAME) && \
xcaddy build $(CADDY_VERSION) --output ../$(PLUGIN_NAME)/bin/caddy \
--with github.com/greenpau/caddy-auth-jwt@$(LATEST_GIT_COMMIT)=$(BUILD_DIR) \
--with github.com/greenpau/caddy-auth-portal@latest=$(BUILD_DIR)/../caddy-auth-portal
info:
@echo "Version: $(PLUGIN_VERSION), Branch: $(GIT_BRANCH), Revision: $(GIT_COMMIT)"
@echo "Build on $(BUILD_DATE) by $(BUILD_USER)"
linter:
@echo "Running lint checks"
@golint -set_exit_status ./...
@echo "PASS: linter"
test: covdir linter
@echo "Running tests"
@go test $(VERBOSE) -coverprofile=.coverage/coverage.out ./...
@echo "PASS: test"
ctest: covdir linter
@time richgo test $(VERBOSE) $(TEST) -coverprofile=.coverage/coverage.out ./...
covdir:
@echo "Creating .coverage/ directory"
@mkdir -p .coverage
coverage:
@go tool cover -html=.coverage/coverage.out -o .coverage/coverage.html
@go test -covermode=count -coverprofile=.coverage/coverage.out ./...
@go tool cover -func=.coverage/coverage.out | grep -v "100.0"
docs:
@versioned -toc
@mkdir -p .doc
@go doc -all > .doc/index.txt
clean:
@rm -rf .doc
@rm -rf .coverage
@rm -rf bin/
qtest: covdir
@echo "Perform quick tests ..."
@#time richgo test -v -run TestPlugin ./*.go
@#time richgo test -v -run TestTokenProviderConfig ./*.go
@#time richgo test -v -run TestTokenCache ./*.go
@#time richgo test -v -run TestNewGrantor ./*.go
@#time richgo test -v -run TestAppMetadataAuthorizationRoles ./pkg/user/*.go
@#time richgo test -v -run TestRealmAccessRoles ./pkg/user/*.go
@#time richgo test -v -run TestGrantValidate ./pkg/auth/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out ./pkg/user/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out ./pkg/authz/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out ./pkg/cache/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out ./pkg/kms/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out ./pkg/acl/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out ./pkg/testutils/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out ./pkg/validator/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run TestAuthorize ./pkg/validator/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run MatchPathBasedACL ./pkg/acl/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run TestNewAccessList ./pkg/acl/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run TestEvalAclRule ./pkg/acl/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run ReadUserClaims ./pkg/user/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run AuthorizationSources ./pkg/validator/*.go
@#time richgo test -v -run TestGetSignedToken ./pkg/user/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run TestNewUserClaimsFromMap ./pkg/user/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run TestTokenValidity ./pkg/user/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out ./pkg/user/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run TestLoadKeyManager ./pkg/kms/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run ParseCryptoKeyConfigs ./pkg/kms/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run TestParseCryptoKeyConfigs ./pkg/kms/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run TestValidateCryptoKeyConfig ./pkg/kms/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run TestGetKeysFromConfig ./pkg/kms/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run TestKeystoreOperators ./pkg/kms/*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run TestCryptoKeyStoreAutoGenerate ./pkg/kms/*.go
@time richgo test -v -coverprofile=.coverage/coverage.out -run TestCaddyfile ./*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run TestParser ./*.go
@#time richgo test -v -coverprofile=.coverage/coverage.out -run Test* ./pkg/utils/cfgutils/*.go
@#time richgo test -v ./internal/tag/*.go
@go tool cover -html=.coverage/coverage.out -o .coverage/coverage.html
@go tool cover -func=.coverage/coverage.out | grep -v "100.0"
qdoc:
@#go doc -all $(REPO_BASE)/pkg/acl
@#go doc -all $(REPO_BASE)/pkg/validator
@go doc -all $(REPO_BASE)/pkg/kms
dep:
@echo "Making dependencies check ..."
@go get -u golang.org/x/lint/golint
@go get -u golang.org/x/tools/cmd/godoc
@go get -u github.com/kyoh86/richgo
@go get -u github.com/caddyserver/xcaddy/cmd/xcaddy
@pip3 install Markdown --user
@pip3 install markdownify --user
@go get -u github.com/greenpau/versioned/cmd/versioned
@go get -u github.com/google/addlicense
license:
@for f in `find ./ -type f -name '*.go'`; do addlicense -c "Paul Greenberg [email protected]" -y 2020 $$f; done
mod:
@go mod tidy
@go mod verify
release:
@echo "Making release"
@if [ $(GIT_BRANCH) != "main" ]; then echo "cannot release to non-main branch $(GIT_BRANCH)" && false; fi
@git diff-index --quiet HEAD -- || ( echo "git directory is dirty, commit changes first" && false )
@versioned -patch
@echo "Patched version"
@git add VERSION
@git commit -m "released v`cat VERSION | head -1`"
@git tag -a v`cat VERSION | head -1` -m "v`cat VERSION | head -1`"
@git push
@git push --tags
@echo "If necessary, run the following commands:"
@echo " git push --delete origin v$(PLUGIN_VERSION)"
@echo " git tag --delete v$(PLUGIN_VERSION)"