From f7ee7db6030cc60c12d495013dbc31f1278c4ff7 Mon Sep 17 00:00:00 2001 From: Eli Uriegas Date: Wed, 24 Jan 2018 00:30:42 +0000 Subject: [PATCH] Static Dev builds should include date and sha Adds git date plus git commit sha to static builds if the version being built for is a development version Output is similar to: `docker-18.02.0-ce-dev-20180120.170357-fa4fb35.tgz` Signed-off-by: Eli Uriegas Upstream-commit: 8a86c3a6a54760b19cd67854bf68e408bd2a17fb Component: packaging --- components/packaging/static/Makefile | 9 ++++---- components/packaging/static/gen-static-ver | 25 ++++++++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100755 components/packaging/static/gen-static-ver diff --git a/components/packaging/static/Makefile b/components/packaging/static/Makefile index f3bf2a60ed..4c0cb32d91 100644 --- a/components/packaging/static/Makefile +++ b/components/packaging/static/Makefile @@ -2,6 +2,7 @@ SHELL:=/bin/bash ENGINE_DIR:=$(CURDIR)/../../engine CLI_DIR:=$(CURDIR)/../../cli VERSION?=0.0.0-dev +STATIC_VERSION=$(shell ./gen-static-ver $(ENGINE_DIR) $(VERSION)) CHOWN=docker run --rm -v $(CURDIR):/v -w /v alpine chown HASH_CMD=docker run -v $(CURDIR):/sum -w /sum debian:jessie bash hash_files DIR_TO_HASH:=build/linux @@ -25,7 +26,7 @@ static-linux: static-cli static-engine ## create tgz with linux x86_64 client an for f in dockerd docker-containerd docker-containerd-ctr docker-containerd-shim docker-init docker-proxy docker-runc; do \ cp -L $(ENGINE_DIR)/bundles/binary-daemon/$$f build/linux/docker/$$f; \ done - tar -C build/linux -c -z -f build/linux/docker-$(VERSION).tgz docker + tar -C build/linux -c -z -f build/linux/docker-$(STATIC_VERSION).tgz docker .PHONY: hash_files hash_files: @@ -36,21 +37,21 @@ hash_files: cross-mac: cross-all-cli ## create tgz with darwin x86_64 client only mkdir -p build/mac/docker cp $(CLI_DIR)/build/docker-darwin-amd64 build/mac/docker/docker - tar -C build/mac -c -z -f build/mac/docker-$(VERSION).tgz docker + tar -C build/mac -c -z -f build/mac/docker-$(STATIC_VERSION).tgz docker .PHONY: cross-win cross-win: cross-all-cli cross-win-engine ## create zip file with windows x86_64 client and server mkdir -p build/win/docker cp $(CLI_DIR)/build/docker-windows-amd64 build/win/docker/docker.exe cp $(ENGINE_DIR)/bundles/cross/windows/amd64/dockerd-$(VERSION).exe build/win/docker/dockerd.exe - docker run --rm -v $(CURDIR)/build/win:/v -w /v alpine sh -c 'apk update&&apk add zip&&zip -r docker-$(VERSION).zip docker' + docker run --rm -v $(CURDIR)/build/win:/v -w /v alpine sh -c 'apk update&&apk add zip&&zip -r docker-$(STATIC_VERSION).zip docker' $(CHOWN) -R $(shell id -u):$(shell id -g) build .PHONY: cross-arm cross-arm: cross-all-cli ## create tgz with linux armhf client only mkdir -p build/arm/docker cp $(CLI_DIR)/build/docker-linux-arm build/arm/docker/docker - tar -C build/arm -c -z -f build/arm/docker-$(VERSION).tgz docker + tar -C build/arm -c -z -f build/arm/docker-$(STATIC_VERSION).tgz docker .PHONY: static-cli static-cli: diff --git a/components/packaging/static/gen-static-ver b/components/packaging/static/gen-static-ver new file mode 100755 index 0000000000..4fd3d82ab5 --- /dev/null +++ b/components/packaging/static/gen-static-ver @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +ENGINE_DIR=$1 +VERSION=$2 + +if [ -z "$ENGINE_DIR" ] || [ -z "$VERSION" ]; then + echo 'usage: ./gen-static-ver ${ENGINE_DIR} ${VERSION}' + exit 1 +fi + +DATE_COMMAND="date" +if [[ $(uname) -eq "Darwin" ]]; then + DATE_COMMAND="docker run --rm alpine date" +fi +GIT_COMMAND="git -C $ENGINE_DIR" + +staticVersion="$VERSION" +if [[ "$VERSION" == *-dev ]]; then + gitUnix="$($GIT_COMMAND log -1 --pretty='%at')" + gitDate="$($DATE_COMMAND --date "@$gitUnix" +'%Y%m%d.%H%M%S')" + gitCommit="$($GIT_COMMAND log -1 --pretty='%h')" + staticVersion="${VERSION}-${gitDate}-${gitCommit}" +fi + +echo "$staticVersion"