forked from buildbot/buildbot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
117 lines (94 loc) · 3.86 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
# developer utilities
DOCKERBUILD := docker build --build-arg http_proxy=$$http_proxy --build-arg https_proxy=$$https_proxy
.PHONY: docs pylint flake8 virtualenv
VENV_NAME:=.venv$(VENV_PY_VERSION)
PIP?=$(VENV_NAME)/bin/pip
VENV_PY_VERSION?=python
WWW_PKGS := pkg www/base www/console_view www/grid_view www/waterfall_view www/wsgi_dashboards www/badges
WWW_EX_PKGS := nestedexample codeparameter
ALL_PKGS := master worker $(WWW_PKGS)
ALL_PKGS_TARGETS := $(addsuffix _pkg,$(ALL_PKGS))
.PHONY: $(ALL_PKGS_TARGETS)
# build rst documentation
docs:
$(MAKE) -C master/docs
# check rst documentation
docschecks:
$(MAKE) -C master/docs SPHINXOPTS=-W spelling
$(MAKE) -C master/docs SPHINXOPTS=-q linkcheck
# pylint the whole sourcecode (validate.sh will do that as well, but only process the modified files)
pylint:
$(MAKE) -C master pylint; master_res=$$?; \
$(MAKE) -C worker pylint; worker_res=$$?; \
if [ $$master_res != 0 ] || [ $$worker_res != 0 ]; then exit 1; fi
# flake8 the whole sourcecode (validate.sh will do that as well, but only process the modified files)
flake8:
$(MAKE) -C master flake8
$(MAKE) -C worker flake8
flake8 --config=common/flake8rc www/*/buildbot_*/
flake8 --config=common/flake8rc www/*/setup.py
frontend_deps: $(VENV_NAME)
$(PIP) install -e pkg
$(PIP) install mock wheel buildbot
# rebuild front-end from source
frontend: frontend_deps
for i in $(WWW_PKGS) $(WWW_EX_PKG); do $(PIP) install -e $$i || exit 1; done
# do installation tests. Test front-end can build and install for all install methods
frontend_install_tests: frontend_deps
trial pkg/test_buildbot_pkg.py
# install git hooks for validating patches at commit time
hooks:
cp common/hooks/* `git rev-parse --git-dir`/hooks
rmpyc:
find . \( -name '*.pyc' -o -name '*.pyo' \) -exec rm -v {} \;
isort:
isort -rc worker master
git diff --name-only --stat "HEAD" | grep '.py$$' | xargs autopep8 -i
git commit -a -m "isort+autopep8 run"
docker: docker-buildbot-worker docker-buildbot-worker-node docker-buildbot-master docker-buildbot-master-ubuntu
echo done
docker-buildbot-worker:
$(DOCKERBUILD) -t buildbot/buildbot-worker:master worker
docker-buildbot-master:
$(DOCKERBUILD) -t buildbot/buildbot-master:master master
docker-buildbot-master-ubuntu:
$(DOCKERBUILD) -t buildbot/buildbot-master-ubuntu:master -f master/Dockerfile.ubuntu master
$(VENV_NAME):
virtualenv -p $(VENV_PY_VERSION) $(VENV_NAME)
$(PIP) install -U pip setuptools
# helper for virtualenv creation
virtualenv: $(VENV_NAME) # usage: make virtualenv VENV_PY_VERSION=python3.4
@echo now you can type following command to activate your virtualenv
@echo . $(VENV_NAME)/bin/activate
$(PIP) install -e pkg \
-e 'master[tls,test,docs]' \
-e 'worker[test]' \
buildbot_www packaging \
'towncrier>=17.8.0'
release_notes: $(VENV_NAME)
test ! -z "$(VERSION)" # usage: make release_notes VERSION=0.9.2
yes | towncrier --version $(VERSION) --date `date -u +%F`
git commit -m "relnotes for $(VERSION)"
$(ALL_PKGS_TARGETS): cleanup_for_tarballs frontend_deps
. .venv/bin/activate && ./common/maketarball.sh $(patsubst %_pkg,%,$@)
cleanup_for_tarballs:
find . -name VERSION -exec rm {} \;
rm -rf dist
mkdir dist
.PHONY: cleanup_for_tarballs
tarballs: $(ALL_PKGS_TARGETS)
.PHONY: tarballs
clean:
git clean -xdf
# helper for release creation
release: virtualenv
test ! -z "$(VERSION)" # usage: make release VERSION=0.9.2
test -d "../bbdocs/.git" # make release should be done with bbdocs populated at the same level as buildbot dir
GPG_TTY=`tty` git tag -a -sf v$(VERSION) -m "TAG $(VERSION)"
make -j4 tarballs
./common/smokedist.sh
export VERSION=$(VERSION) ; . .venv/bin/activate && make docs
rm -rf ../bbdocs/docs/$(VERSION) # in case of re-run
cp -r master/docs/_build/html ../bbdocs/docs/$(VERSION)
. .venv/bin/activate && cd ../bbdocs && make && git add . && git commit -m $(VERSION) && git push
echo twine upload --sign dist/*