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
|
PWD := $(shell pwd)
SOURCEDEPS_DIR ?= $(shell dirname $(PWD))/.sourcecode
HOOKS_DIR := $(PWD)/hooks
CHARM_DIR := $(PWD)
FILES_DIR := $(PWD)/files
CONFIGS_DIR := $(PWD)/ci-config-repo
PYTHON := /usr/bin/env python
GIT := /usr/bin/git
TAR := /bin/tar
CP := /bin/cp
RM := /bin/rm
UNZIP := /usr/bin/unzip
CURL := /usr/bin/curl
CAT := /bin/cat
SED := /bin/sed
JBB_GIT := "https://github.com/openstack-infra/jenkins-job-builder.git"
build: configrepo installdeps proof
revision:
@test -f revision || echo 0 > revision
proof: revision
@echo Proofing charm...
@(charm proof $(PWD) || [ $$? -eq 100 ]) && echo OK
@test `cat revision` = 0 && rm revision
define update_with_branch
@echo Updating source dependencies from branch...
@mkdir -p $(SOURCEDEPS_DIR)
@$(RM) -rf $(SOURCEDEPS_DIR)/ci-configurator/*
@bzr branch $(CI_CONFIGURATOR_SOURCEDEPS_BRANCH) $(SOURCEDEPS_DIR)/ci-configurator
@$(CP) -R $(SOURCEDEPS_DIR)/ci-configurator/jenkins-job-builder/jenkins-job-builder_reqs $(FILES_DIR)/jenkins-job-builder_reqs
@$(CP) $(SOURCEDEPS_DIR)/ci-configurator/jenkins-job-builder/jenkins-job-builder.tar.gz $(FILES_DIR)/
@$(CP) $(SOURCEDEPS_DIR)/ci-configurator/jenkins-job-builder/pip-requires $(FILES_DIR)/pip-requires
endef
define update_without_branch
@mkdir -p $(SOURCEDEPS_DIR)/jenkins-job-builder_reqs
@echo Updating source dependencies...
@$(GIT) clone $(JBB_GIT) $(SOURCEDEPS_DIR)/jenkins-job-builder
@cd $(SOURCEDEPS_DIR) && $(CP) $(SOURCEDEPS_DIR)/jenkins-job-builder/tools/pip-requires $(FILES_DIR)/
@cd $(SOURCEDEPS_DIR) && $(TAR) cfz $(FILES_DIR)/jenkins-job-builder.tar.gz jenkins-job-builder/
@pip install --download $(SOURCEDEPS_DIR)/jenkins-job-builder_reqs/ -r $(FILES_DIR)/pip-requires && $(CP) -R $(SOURCEDEPS_DIR)/jenkins-job-builder_reqs $(FILES_DIR)/jenkins-job-builder_reqs
endef
installdeps: clean
@mkdir -p $(SOURCEDEPS_DIR) $(FILES_DIR)
ifndef CI_CONFIGURATOR_SOURCEDEPS_BRANCH
$(call update_without_branch)
else
ifeq ($(CI_CONFIGURATOR_SOURCEDEPS_BRANCH), '')
$(call_update_without_branch)
else
$(call update_with_branch)
endif
endif
configrepo:
@$(RM) -rf $(CONFIGS_DIR)
@bzr branch $(CONFIG_BZR_REPO) $(CONFIGS_DIR)
clean:
@$(RM) -rf $(FILES_DIR)/*
@$(RM) -rf $(SOURCEDEPS_DIR)/*
lint:
@flake8 --exclude hooks/charmhelpers,hooks/lib/ hooks tests
sync:
@charm-helper-sync -c charm-helpers.yaml
test:
@(export PYTHONPATH=hooks; nosetests -v tests)
.PHONY: revision proof installdeps
|