GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — gotools/Makefile at master · flexconstructor/gotools Expand file tree/ Copy pathMakefileMore file actions 159 lines (116 loc) · 3.85 KB / Copy pathMakefileFile metadata and controls159 lines (116 loc) · 3.85 KB 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 # This Makefile automates possible operations of this project. # # Images and description on Docker Hub will be automatically rebuilt on # pushes to `master` branch of this repo and on updates of parent image. # # Note! Docker Hub `post_push` hook must be always up-to-date with default # values of current Makefile. To update it just use: # make post-push-hook # # It's still possible to build, tag and push images manually. Just use: # make release IMAGE_NAME := flexconstructor/gotools VERSION ?= 1.11.5-r1 TAGS ?= 1.11.5-r1,1.11.5,1.11,1,latest comma := , eq = $(if $(or $(1),$(2)),$(and $(findstring $(1),$(2)),\ $(findstring $(2),$(1))),1) MAINLINE_BRANCH := master CURRENT_BRANCH := $(shell git branch | grep \* | cut -d ' ' -f2) ########### # Aliases # ########### squash: git.squash # Build Docker image. # # Usage: # make image [VERSION=<image-version>] [no-cache=(no|yes)] image: docker build --network=host --force-rm \ $(if $(call eq,$(no-cache),yes),--no-cache --pull,) \ -t $(IMAGE_NAME):$(VERSION) . # Tag Docker image with given tags. # # Usage: # make tags [VERSION=<image-version>] # [TAGS=<docker-tag-1>[,<docker-tag-2>...]] tags: $(foreach tag, $(subst $(comma), ,$(TAGS)),\ $(call docker.tag.do,$(VERSION),$(tag))) define tags.do $(eval from := $(strip $(1))) $(eval to := $(strip $(2))) docker tag $(IMAGE_NAME):$(from) $(IMAGE_NAME):$(to) endef # Manually push Docker images to Docker Hub. # # Usage: # make push [TAGS=<docker-tag-1>[,<docker-tag-2>...]] push: $(foreach tag, $(subst $(comma), ,$(TAGS)),\ $(call docker.push.do, $(tag))) define push.do $(eval tag := $(strip $(1))) docker push $(IMAGE_NAME):$(tag) endef # Make manual release of Docker images to Docker Hub. # # Usage: # make release [VERSION=<image-version>] [no-cache=(no|yes)] # [TAGS=<docker-tag-1>[,<docker-tag-2>...]] release: | image tags push # Create `post_push` Docker Hub hook. # # When Docker Hub triggers automated build all the tags defined in `post_push` # hook will be assigned to built image. It allows to link the same image with # different tags, and not to build identical image for each tag separately. # See details: # http://windsock.io/automated-docker-image-builds-with-multiple-tags # # Usage: # make post-push-hook [TAGS=<docker-tag-1>[,<docker-tag-2>...]] post-push-hook: @mkdir -p hooks/ docker run --rm -v "$(PWD)/post_push.tmpl.php":/post_push.php:ro \ php:alpine php -f /post_push.php -- \ --image_tags='$(TAGS)' \ > hooks/post_push # Test Docker image with goss tool. # # Manual: # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#usage # # Usage: # make test [VERSION=<image-version>] test-container-name ?= goss-test test: docker run --name $(test-container-name) aelsabbahy/goss goss docker run --rm -it --volumes-from $(test-container-name) -v $(PWD)/goss.yml:/goss/goss.yml:ro $(IMAGE_NAME):$(VERSION) /goss/goss --gossfile=/goss/goss.yml validate --format=tap docker stop $(test-container-name) docker rm $(test-container-name) ################ # Git commands # ################ # Squash changes of the current Git branch onto another Git branch. # # WARNING: You must merge `onto` branch in the current branch before squash! # # Usage: # make git.squash [onto=(<mainline-git-branch>|<git-branch>)] # [del=(no|yes)] # [upstream=(origin|<git-remote>)] onto ?= $(MAINLINE_BRANCH) upstream ?= origin git.squash: ifeq ($(CURRENT_BRANCH),$(onto)) echo "--> Current branch is '$(onto)' already" && false endif git checkout $(onto) git branch -m $(CURRENT_BRANCH) orig-$(CURRENT_BRANCH) git checkout -b $(CURRENT_BRANCH) git branch --set-upstream-to $(upstream)/$(CURRENT_BRANCH) git merge --squash orig-$(CURRENT_BRANCH) ifeq ($(del),yes) git branch -d orig-$(CURRENT_BRANCH) endif .PHONY: image tags push release post-push-hook test |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |