forked from travis-ci/travis-yml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
57 lines (45 loc) · 1.39 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
SHELL := bash
VERSION_VALUE ?= $(shell git rev-parse --short HEAD 2>/dev/null)
DOCKER_IMAGE_REPO ?= travisci/travis-yml
DOCKER_DEST ?= $(DOCKER_IMAGE_REPO):$(VERSION_VALUE)
QUAY ?= quay.io
QUAY_IMAGE ?= $(QUAY)/$(DOCKER_IMAGE_REPO)
ifdef $$QUAY_ROBOT_HANDLE
QUAY_ROBOT_HANDLE := $$QUAY_ROBOT_HANDLE
endif
ifdef $$QUAY_ROBOT_TOKEN
QUAY_ROBOT_TOKEN := $$QUAY_ROBOT_TOKEN
endif
ifndef $$TRAVIS_BRANCH
TRAVIS_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)
endif
BRANCH = $(shell echo "$(TRAVIS_BRANCH)" | sed 's/\//_/')
ifdef $$TRAVIS_PULL_REQUEST
TRAVIS_PULL_REQUEST := $$TRAVIS_PULL_REQUEST
endif
DOCKER ?= docker
.PHONY: docker-build
docker-build:
$(DOCKER) build -t $(DOCKER_DEST) .
.PHONY: docker-login
docker-login:
$(DOCKER) login -u=$(QUAY_ROBOT_HANDLE) -p=$(QUAY_ROBOT_TOKEN) $(QUAY)
.PHONY: docker-push-latest-master
docker-push-latest-master:
$(DOCKER) tag $(DOCKER_DEST) $(QUAY_IMAGE):$(VERSION_VALUE)
$(DOCKER) push $(QUAY_IMAGE):$(VERSION_VALUE)
$(DOCKER) tag $(DOCKER_DEST) $(QUAY_IMAGE):latest
$(DOCKER) push $(QUAY_IMAGE):latest
.PHONY: docker-push-branch
docker-push-branch:
$(DOCKER) tag $(DOCKER_DEST) $(QUAY_IMAGE):$(VERSION_VALUE)-$(BRANCH)
$(DOCKER) push $(QUAY_IMAGE):$(VERSION_VALUE)-$(BRANCH)
.PHONY: ship
ship: docker-build docker-login
ifeq ($(TRAVIS_BRANCH),master)
ifeq ($(TRAVIS_PULL_REQUEST),false)
ship: docker-push-latest-master
endif
else
ship: docker-push-branch
endif