This repository was archived by the owner on Dec 20, 2025. It is now read-only.
forked from Blank-Xu/sql-adapter
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMakefile
More file actions
101 lines (84 loc) · 2.59 KB
/
Makefile
File metadata and controls
101 lines (84 loc) · 2.59 KB
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
#!make
include test/.env
export $(shell sed 's/=.*//' test/.env)
define run_unit_test
@go test -v -race -covermode=atomic -coverprofile=coverage.out ./... -coverpkg=./...
endef
define run_e2e_test
@echo "test start with DB[${1}]"
@cd test && CGO_ENABLED=1 TEST_DB=${1} go test -v -race -covermode=atomic -coverprofile=coverage.out ./e2e/... -coverpkg=../...
@if [ -f "coverage.out" ]; then tail -n +2 test/coverage.out >> coverage.out; else mv test/coverage.out coverage.out; fi
endef
define start_mysql
@docker run --name mysql_${TEST_DATABASE_NAME} \
-e "MYSQL_DATABASE=${TEST_DATABASE_NAME}" \
-e "MYSQL_ROOT_PASSWORD=${TEST_DATABASE_PASSWORD}" \
-e "MYSQL_USER=${TEST_DATABASE_USER}" \
-e "MYSQL_PASSWORD=${TEST_DATABASE_PASSWORD}" \
-p 3306:${TEST_DATABASE_PORT_MYSQL} \
-d --rm mysql:latest
endef
define start_postgres
@docker run --name postgres_${TEST_DATABASE_NAME} \
-e "POSTGRES_DB=${TEST_DATABASE_NAME}" \
-e "POSTGRES_USER=${TEST_DATABASE_USER}" \
-e "POSTGRES_PASSWORD=${TEST_DATABASE_PASSWORD}" \
-p 5432:${TEST_DATABASE_PORT_POSTGRES} \
-d --rm postgres:latest
endef
define start_sqlserver
@docker run --name sqlserver_${TEST_DATABASE_NAME} \
-e "ACCEPT_EULA=Y" \
-e "MSSQL_DB=${TEST_DATABASE_NAME}" \
-e "SA_PASSWORD=${TEST_DATABASE_PASSWORD}" \
-e "MSSQL_USER=${TEST_DATABASE_USER}" \
-e "MSSQL_PASSWORD=${TEST_DATABASE_PASSWORD}" \
-p 1433:${TEST_DATABASE_PORT_SQLSERVER} \
-d --rm mcr.microsoft.com/mssql/server:2022-CU15-GDR1-ubuntu-22.04
@sleep 5
@docker exec -i sqlserver_${TEST_DATABASE_NAME} /bin/bash < test/init.sqlserver.sh
endef
run-unit-test:
${call run_unit_test}
run-e2e-test:
${call run_e2e_test}
test-all:
${call run_unit_test}
${call start_sqlserver}
${call start_mysql}
${call start_postgres}
@sleep 10
${call run_e2e_test}
@docker stop mysql_${TEST_DATABASE_NAME}
@docker stop postgres_${TEST_DATABASE_NAME}
@docker stop sqlserver_${TEST_DATABASE_NAME}
test-sqlite:
${call run_e2e_test,sqlite}
test-mysql:
${call start_mysql}
@sleep 10
${call run_e2e_test,mysql}
@docker stop mysql_${TEST_DATABASE_NAME}
test-postgres:
${call start_postgres}
@sleep 10
${call run_e2e_test,postgres}
@docker stop postgres_${TEST_DATABASE_NAME}
test-sqlserver:
${call start_sqlserver}
@sleep 5
${call run_e2e_test,sqlserver}
@docker stop sqlserver_${TEST_DATABASE_NAME}
test-examples:
${call start_mysql}
@sleep 10
@cd examples/database_sql && go run *.go
@cd examples/sqlx && go run *.go
@cd examples/gorm && go run *.go
@cd examples/xorm && go run *.go
lint:
golangci-lint run -v ./...
fmt:
goimports -l -w -d -e .
build:
go build -v .