# Makefile for releasing CoreDNS # # The release is controlled from coremain/version.go. The version found there is # used to tag the git repo and to build the assets that are uploaded to github # (after some sanity checks). # # The release should be accompanied by release notes published on coredns.io. # For example: https://coredns.io/2016/09/18/coredns-001-release/ Also send an # email to coredns-discuss@ to announce the new version. # # We use https://github.com/progrium/gh-release to automate github stuff be sure # to have that binary in your path. # # Get a list of authors for this release with: # # git log --pretty=format:'%an' v001..master | sort -u (where v001 is the # previous release, obviously you'll need to adjust this) # # Steps: # # * Get an access token: https://help.github.com/articles/creating-an-access-token-for-command-line-use/ # * export GITHUB_ACCESS_TOKEN= # * Up the version in coremain/version.go # * Run: make DOCKER=coredns -f Makefile.release release # * runs make -f Makefile.doc # * this is a noop if ronn can't be found # * perform a go generate # * will *commit* your change(s) with 'Release $VERSION' # * push to github # * build the release and do all that fluff. # # Steps for docker: # # * Login into docker: docker login (should have push creds for coredns registry) # * We use the manifest-tool from https://github.com/estesp/manifest-tool to build the manifest list # * Make sure you have the binary in your path. # # * Run: make DOCKER=coredns -f Makefile.release docker # # Docker push should happen after you make the new release and uploaded it to Github. # # If you want to push to a personal registry, point DOCKER to something else, i.e. # # * make DOCKER=miek -f Makefile.release docker EMPTY:= SPACE:=$(EMPTY) $(EMPTY) COMMA:=$(EMPTY),$(EMPTY) ifeq (, $(shell which gh-release)) $(error "No gh-release in $$PATH, install with: go get github.com/progrium/gh-release") endif ifeq (, $(shell which manifest-tool)) $(error "No manifest-tool in $$PATH, install with: go get github.com/estesp/manifest-tool") endif DOCKER:= NAME:=coredns VERSION:=$(shell grep 'CoreVersion' coremain/version.go | awk '{ print $$3 }' | tr -d '"') GITHUB:=coredns DOCKER_IMAGE_NAME:=$(DOCKER)/$(NAME) GITCOMMIT:=$(shell git describe --dirty --always) LINUX_ARCH:=amd64 arm arm64 ppc64le s390x PLATFORMS:=$(subst $(SPACE),$(COMMA),$(foreach arch,$(LINUX_ARCH),linux/$(arch))) ifeq ($(DOCKER),) $(error "Please specify Docker registry to use. Use DOCKER=coredns for releases") endif all: @echo Use the 'release' target to start a release release: pre commit push build tar upload docker: docker-build docker-push .PHONY: pre pre: go generate $(MAKE) -f Makefile.doc .PHONY: push push: @echo Pushing release to master git push .PHONY: commit commit: @echo Committing git commit -am"Release $(VERSION)" .PHONY: build build: @echo Cleaning old builds @rm -rf build && mkdir build @echo Building: darwin $(VERSION) mkdir -p build/darwin/amd64 && $(MAKE) coredns BINARY=build/darwin/amd64/$(NAME) SYSTEM="GOOS=darwin GOARCH=amd64" CHECKS="godeps" VERBOSE="" @echo Building: windows $(VERSION) mkdir -p build/windows/amd64 && $(MAKE) coredns BINARY=build/windows/amd64/$(NAME) SYSTEM="GOOS=windows GOARCH=amd64" CHECKS="godeps" VERBOSE="" @echo Building: linux/$(LINUX_ARCH) $(VERSION) ;\ for arch in $(LINUX_ARCH); do \ mkdir -p build/linux/$$arch && $(MAKE) coredns BINARY=build/linux/$$arch/$(NAME) SYSTEM="GOOS=linux GOARCH=$$arch" CHECKS="godeps" VERBOSE="" ;\ done .PHONY: tar tar: @echo Cleaning old releases @rm -rf release && mkdir release tar -zcf release/$(NAME)_$(VERSION)_darwin_amd64.tgz -C build/darwin/amd64 $(NAME) tar -zcf release/$(NAME)_$(VERSION)_windows_amd64.tgz -C build/windows/amd64 $(NAME) for arch in $(LINUX_ARCH); do \ tar -zcf release/$(NAME)_$(VERSION)_linux_$$arch.tgz -C build/linux/$$arch $(NAME) ;\ done .PHONY: upload upload: @echo Releasing: $(VERSION) gh-release create $(GITHUB)/$(NAME) $(VERSION) .PHONY: docker-build docker-build: tar # Steps: # 1. Copy appropriate coredns binary to build/docker/linux/ # 2. Copy Dockerfile to build/docker/linux/ # 3. Replace base image from alpine:latest to /alpine:latest # 4. Comment RUN in Dockerfile # : # arm: arm32v6 # arm64: arm64v8 rm -rf build/docker for arch in $(LINUX_ARCH); do \ mkdir -p build/docker/linux/$$arch ;\ tar -xzf release/$(NAME)_$(VERSION)_linux_$$arch.tgz -C build/docker/linux/$$arch ;\ cp Dockerfile build/docker/linux/$$arch ;\ if [ $$arch != amd64 ]; then \ case $$arch in \ arm) \ BASEIMAGE=arm32v6 ;\ ;; \ arm64) \ BASEIMAGE=arm64v8 ;\ ;; \ *) \ BASEIMAGE=$$arch ;\ ;; \ esac ;\ sed -e "s/alpine:latest/$$BASEIMAGE\\/alpine:latest/" -i build/docker/linux/$$arch/Dockerfile ;\ sed -e "s/^\\s*RUN/#RUN/" -i build/docker/linux/$$arch/Dockerfile ;\ fi ;\ docker build -t coredns build/docker/linux/$$arch ;\ docker tag coredns $(DOCKER_IMAGE_NAME):coredns-$$arch ;\ done .PHONY: docker-push docker-push: @echo Pushing: $(VERSION) to $(DOCKER_IMAGE_NAME) for arch in $(LINUX_ARCH); do \ docker push $(DOCKER_IMAGE_NAME):coredns-$$arch ;\ done manifest-tool push from-args --platforms $(PLATFORMS) --template $(DOCKER_IMAGE_NAME):coredns-ARCH --target $(DOCKER_IMAGE_NAME):$(VERSION) manifest-tool push from-args --platforms $(PLATFORMS) --template $(DOCKER_IMAGE_NAME):coredns-ARCH --target $(DOCKER_IMAGE_NAME):latest .PHONY: clean clean: rm -rf release rm -rf build stro-v-config'>feat/astro-v-config Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)AuthorFilesLines
2022-01-10Use smooth scrolling with reduced motion has no preference (#2355)Gravatar Jonathan Neal 1-3/+7
2022-01-10move changeset to run after build, no test required (#2341)Gravatar Fred K. Schott 1-2/+2
2022-01-10Note that Astro also supports `<Fragment>` syntax (#2354)Gravatar Zade Viggers 1-16/+18
2022-01-10smooth scroll behavior property added (#2256)Gravatar Divyamrit 1-1/+3
2022-01-10Add Astro Blog RSS feed (#2301)Gravatar Rafael Bardini 2-3/+20
2022-01-10Update Cloudflare Pages guide (#2345)Gravatar Jacob Rask 1-2/+2
2022-01-10[ci] update lockfile (#2351)Gravatar Fred K. Schott 1-116/+116
2022-01-10Update instructions for the monorepo (#2274)Gravatar Caleb Jasik 1-5/+12
2022-01-10Fix Astro Preview Pathing Issues (#2338)Gravatar Jonathan Neal 5-144/+150
2022-01-10[ci] collect statsGravatar FredKSchott 1-0/+1
2022-01-09[ci] collect statsGravatar FredKSchott 1-0/+1
2022-01-08[ci] update lockfile (#2344)Gravatar Fred K. Schott 1-33/+33
2022-01-08Fix sitemap.xml page urls (#2335)Gravatar Jonathan Neal 4-4/+8
2022-01-08[ci] collect statsGravatar FredKSchott 1-0/+1
2022-01-07Create .git-blame-ignore-revs (#2254)Gravatar Jonathan Neal 2-0/+8
2022-01-07Fix issue with plugins running twice in dev and build (#2323)Gravatar Jonathan Neal 2-2/+5
2022-01-07[ci] yarn formatGravatar matthewp 1-8/+8
2022-01-07[ci] release (#2339)astro@0.22.9Gravatar github-actions[bot] 28-39/+40
2022-01-07[ci] yarn formatGravatar matthewp 3-7/+8
2022-01-07Handle loading the Code package in the static build (#2337)Gravatar Matthew Phillips 8-4/+87
2022-01-07[ci] update lockfile (#2334)Gravatar Fred K. Schott 1-154/+154
2022-01-07[ci] yarn formatGravatar matthewp 1-8/+8
2022-01-07[ci] release (#2333)astro@0.22.8Gravatar github-actions[bot] 28-39/+40
2022-01-07[ci] collect statsGravatar FredKSchott 1-0/+1
2022-01-06[ci] yarn formatGravatar matthewp 4-54/+54
2022-01-06[ci] update lockfile (#2327)Gravatar Fred K. Schott 1-58/+64
2022-01-06Fix subpath support regressions (#2330)Gravatar Matthew Phillips 12-22/+566
2022-01-06[ci] yarn formatGravatar natemoo-re 1-2/+2
2022-01-06Added "IntelliSense for TypeScript" (#2326)astro@0.22.7Gravatar Morritz 1-0/+17
2022-01-06[ci] collect statsGravatar FredKSchott 1-0/+1
2022-01-06[ci] yarn formatGravatar FredKSchott 1-8/+8
2022-01-05[ci] release (#2320)Gravatar github-actions[bot] 31-54/+46
2022-01-05chore: update compiler (#2324)Gravatar Nate Moore 3-5/+10