-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathMakefile.common
66 lines (52 loc) · 2.91 KB
/
Makefile.common
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
TOPDIR=$(dir $(lastword $(MAKEFILE_LIST)))
IMAGE_FILE?=image.yaml
IMAGE_VERSION?=dev
REPO?=$(shell cat $(IMAGE_FILE) | grep "^name:" | cut -d' ' -f2)
VERSION?=$(shell cat $(IMAGE_FILE) | grep "^version:" | cut -d ' ' -f2)
DOCKER_BUILD_OPTS?=
DOCKER?=docker
PRODUCT_DIR?=../../enmasse
CEKIT_LOG := ./build_output.txt
BREW_TAG?=rhaos-middleware-rhel-7-container-candidate
CEKIT_BUILD_ENGINE?=docker --no-squash
ifeq ($(TECH_PREVIEW),true)
CEKIT_TECH_PREVIEW_ARGS=--overrides "{'name': '$(REPO)'}"
endif
NEW_ARTIFACT= $(shell echo $(LOCAL_ARTIFACT_DIR) | rev| cut -d '/' -f 1 |sed 's/\([^0-9]*[\.]\).*[0-9][-]\(.*\)/\1\2/' |rev)
ARTIFACT_CACHE_DIR?="target/image"
ABSOLUTE_LOCAL_ARTIFACT_DIR?=$(CURDIR)/$(PRODUCT_DIR)/$(LOCAL_ARTIFACT_DIR)
NEW_ABSOLUTE_LOCAL_ARTIFACT?=$(ARTIFACT_CACHE_DIR)/$(NEW_ARTIFACT)
all: build
@echo "Running docker rhel build $(REPO) using $(IMAGE_FILE):"
@cat $(IMAGE_FILE)
cekit --descriptor $(IMAGE_FILE) build $(CEKIT_BUILD_ARGS) $(CEKIT_TECH_PREVIEW_ARGS) $(CEKIT_BUILD_ENGINE) $(CEKIT_ENGINE_ARGS) 2>&1 | tee ${CEKIT_LOG}
generate:
if [ -f modules/install-artifact/module-template.yaml ]; then ARTIFACT_MD5=$(ARTIFACT_MD5) envsubst < modules/install-artifact/module-template.yaml > modules/install-artifact/module.yaml; fi
if [ -f image-template.yaml ]; then RELEASE_VERSION=$(RELEASE_VERSION) ARTIFACT=$(ARTIFACT) ARTIFACT_MD5=$(ARTIFACT_MD5) envsubst < image-template.yaml > image.yaml; fi
tag:
$(DOCKER) tag $(REPO):$(VERSION) $(REPO):$(IMAGE_VERSION)
$(DOCKER) tag $(REPO):$(VERSION) $(DOCKER_REGISTRY)/$(REPO):$(IMAGE_VERSION)
push:
bash $(TOPDIR)/scripts/retry.sh "$(DOCKER) push $(DOCKER_REGISTRY)/$(REPO):$(IMAGE_VERSION)" 10 10
copyartifact:
echo "Copying local artifacts from $(ABSOLUTE_LOCAL_ARTIFACT_DIR) TO $(NEW_ABSOLUTE_LOCAL_ARTIFACT)"
mkdir -p $(ARTIFACT_CACHE_DIR)
cp $(ABSOLUTE_LOCAL_ARTIFACT_DIR) $(NEW_ABSOLUTE_LOCAL_ARTIFACT)
listbuilds:
$(eval BUILD_TAG=$(shell grep -A1 "com.redhat.component" image.yaml | tail -1 | cut -d'"' -f 2))
brew latest-build $(BREW_TAG) ${BUILD_TAG} | grep $(VERSION) | tail -1 | cut -d ' ' -f 1
listbuildid:
$(eval BUILD_TAG=$(shell grep -A1 "com.redhat.component" image.yaml | tail -1 | cut -d'"' -f 2))
$(eval BUILD=$(shell brew latest-build $(BREW_TAG) ${BUILD_TAG} | tail -1 | cut -d ' ' -f 1))
brew buildinfo ${BUILD} | head -1 | cut -d '[' -f 2 | cut -d ']' -f 1
cacheartifact:
$(eval MD5SUM=$(shell md5sum ${ABSOLUTE_LOCAL_ARTIFACT_DIR} | cut -f 1 -d ' '))
cekit-cache add ${ABSOLUTE_LOCAL_ARTIFACT_DIR} --md5 ${MD5SUM}
sed -i 's/- md5:.*/- md5: ${MD5SUM}/' modules/install-artifact/module.yaml
pushfrombrew:
DOCKER=$(DOCKER) DOCKER_IMAGE=$(DOCKER_REGISTRY)/$(REPO):$(IMAGE_VERSION) OSBS_URL=$(OSBS_URL) CEKIT_LOG=$(CEKIT_LOG) ../scripts/push-image-from-brew.sh
watchtask:
if [ -s "$(CEKIT_LOG)" ]; then ../scripts/extract-task-id-from-cekit-log < $(CEKIT_LOG) | xargs brew watch-task ; fi
clean:
rm -rf build target
.PHONY: all push tag clean generate