mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-09-23 18:58:09 +00:00
It was an inlined `go test` in the workflow, and the only thing in the build that runs it. Every other gate there goes through make - make test, make build, make checksilent - and `make test` is `go test ./...` in this module, which cannot reach test/e2e-apporder because that is a module of its own. So the one check that exercises installing an application was the one check a developer had no command for, and the only place it could turn red was after pushing.
94 lines
3.4 KiB
Makefile
94 lines
3.4 KiB
Makefile
PROJECT:=go-admin
|
|
|
|
.PHONY: build
|
|
build:
|
|
CGO_ENABLED=0 go build -ldflags="-w -s" -a -installsuffix "" -o go-admin .
|
|
|
|
# make build-linux
|
|
build-linux:
|
|
@docker build -t go-admin:latest .
|
|
@echo "build successful"
|
|
|
|
build-sqlite:
|
|
go build -tags sqlite3 -ldflags="-w -s" -a -installsuffix -o go-admin .
|
|
|
|
# make run
|
|
run:
|
|
# delete go-admin-api container
|
|
#
|
|
# stop then rm, rather than `rm -f`. The force flag kills a running
|
|
# container with SIGKILL and no grace at all, so restarting locally cut
|
|
# short every shutdown this application does - the drain window was never
|
|
# once reached on a developer's machine. --timeout has to cover
|
|
# extend.shutdown's drain + server + cleanup; checksilent's
|
|
# docker-stop-cuts-shutdown-short check compares it against
|
|
# config/settings.yml. On a container that has already stopped, stop is a
|
|
# no-op and the removal is unchanged.
|
|
@if [ $(shell docker ps -aq --filter name=go-admin --filter publish=8000) ]; then docker stop --timeout 30 go-admin && docker rm go-admin; fi
|
|
|
|
# 启动方法一 run go-admin-api container docker-compose 启动方式
|
|
# 进入到项目根目录 执行 make run 命令
|
|
@docker-compose up -d
|
|
|
|
# 启动方式二 docker run 这里注意-v挂载的宿主机的地址改为部署时的实际绝对路径
|
|
#@docker run --name=go-admin -p 8000:8000 -v /home/code/go/src/go-admin/go-admin/config:/go-admin-api/config -v /home/code/go/src/go-admin/go-admin-api/static:/go-admin/static -v /home/code/go/src/go-admin/go-admin/temp:/go-admin-api/temp -d --restart=always go-admin:latest
|
|
|
|
@echo "go-admin service is running..."
|
|
|
|
# delete Tag=<none> 的镜像
|
|
@docker image prune -f
|
|
@docker ps -a | grep "go-admin"
|
|
|
|
stop:
|
|
# delete go-admin-api container
|
|
@if [ $(shell docker ps -aq --filter name=go-admin --filter publish=8000) ]; then docker-compose down; fi
|
|
#@if [ $(shell docker ps -aq --filter name=go-admin --filter publish=8000) ]; then docker rm -f go-admin; fi
|
|
#@echo "go-admin stop success"
|
|
|
|
|
|
# -race is worth the extra minute here: common/actions reuses model instances
|
|
# across concurrent requests, so a Generate() that returns in place instead of
|
|
# a copy leaks data between them - and that is invisible to a single-threaded
|
|
# test run.
|
|
.PHONY: test
|
|
test:
|
|
go test -race -cover ./...
|
|
|
|
# The end-to-end install, which `test` above cannot reach: test/e2e-apporder
|
|
# is its own module, so `./...` in this one does not include it. It builds a
|
|
# go-admin binary with the example application linked in and drives
|
|
# `migrate install` / `migrate uninstall` against a real database.
|
|
#
|
|
# Its own target rather than a line in the CI workflow, so the one thing in
|
|
# the build that exercises installing an application is also the one thing
|
|
# somebody can run before pushing.
|
|
.PHONY: test-e2e
|
|
test-e2e:
|
|
cd test/e2e-apporder && go test ./... -count=1
|
|
|
|
# Reports the failures that do not announce themselves - see
|
|
# tools/checksilent. Exits non-zero on an ERROR; the one WARN-level check
|
|
# prints and does not fail the build.
|
|
#
|
|
# Pass UI_DIR to enable the cross-repository menu-name check, which is skipped
|
|
# without it: make checksilent UI_DIR=../go-admin-ui/src
|
|
.PHONY: checksilent
|
|
checksilent:
|
|
ifdef UI_DIR
|
|
go run ./tools/checksilent -ui-dir $(UI_DIR)
|
|
else
|
|
go run ./tools/checksilent
|
|
endif
|
|
|
|
#.PHONY: docker
|
|
#docker:
|
|
# docker build . -t go-admin:latest
|
|
|
|
# make deploy
|
|
deploy:
|
|
|
|
#@git checkout master
|
|
#@git pull origin master
|
|
make build-linux
|
|
make run
|