mirror of
https://github.com/bensuperpc/dockcross.git
synced 2024-12-22 16:24:27 +01:00
build-deploy: Tag images by date and Git SHA
Tag with the pattern: <imagename>:YYYYMMDD-SHA{N} where YYYYMMDD is the date of the build and SHA{N} the output of `git rev-parse --short HEAD` along with `latest` as discussed in Issue #223. This helps clients use a fixed, reproducible image that will be available for a long period of time.
This commit is contained in:
parent
0bb3b65ebf
commit
fce48bcfe3
@ -360,7 +360,10 @@ jobs:
|
||||
docker load -i ~/docker/base.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/base:latest
|
||||
docker tag dockcross/base:latest dockcross/base:${TAG}
|
||||
docker push dockcross/base:${TAG}
|
||||
fi
|
||||
- restore_cache:
|
||||
key: android-arm-assets-{{ .Revision }}
|
||||
@ -370,7 +373,10 @@ jobs:
|
||||
docker load -i ~/docker/android-arm.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/android-arm:latest
|
||||
docker tag dockcross/android-arm:latest dockcross/android-arm:${TAG}
|
||||
docker push dockcross/android-arm:${TAG}
|
||||
fi
|
||||
- restore_cache:
|
||||
key: android-arm64-assets-{{ .Revision }}
|
||||
@ -380,7 +386,10 @@ jobs:
|
||||
docker load -i ~/docker/android-arm64.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/android-arm64:latest
|
||||
docker tag dockcross/android-arm64:latest dockcross/android-arm64:${TAG}
|
||||
docker push dockcross/android-arm64:${TAG}
|
||||
fi
|
||||
- restore_cache:
|
||||
key: browser-asmjs-assets-{{ .Revision }}
|
||||
@ -390,7 +399,10 @@ jobs:
|
||||
docker load -i ~/docker/browser-asmjs.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/browser-asmjs:latest
|
||||
docker tag dockcross/browser-asmjs:latest dockcross/browser-asmjs:${TAG}
|
||||
docker push dockcross/browser-asmjs:${TAG}
|
||||
fi
|
||||
- restore_cache:
|
||||
key: linux-arm64-assets-{{ .Revision }}
|
||||
@ -400,7 +412,10 @@ jobs:
|
||||
docker load -i ~/docker/linux-arm64.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/linux-arm64:latest
|
||||
docker tag dockcross/linux-arm64:latest dockcross/linux-arm64:${TAG}
|
||||
docker push dockcross/linux-arm64:${TAG}
|
||||
fi
|
||||
- restore_cache:
|
||||
key: linux-armv5-assets-{{ .Revision }}
|
||||
@ -410,7 +425,10 @@ jobs:
|
||||
docker load -i ~/docker/linux-armv5.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/linux-armv5:latest
|
||||
docker tag dockcross/linux-armv5:latest dockcross/linux-armv5:${TAG}
|
||||
docker push dockcross/linux-armv5:${TAG}
|
||||
fi
|
||||
- restore_cache:
|
||||
key: linux-armv6-assets-{{ .Revision }}
|
||||
@ -420,7 +438,10 @@ jobs:
|
||||
docker load -i ~/docker/linux-armv6.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/linux-armv6:latest
|
||||
docker tag dockcross/linux-armv6:latest dockcross/linux-armv6:${TAG}
|
||||
docker push dockcross/linux-armv6:${TAG}
|
||||
fi
|
||||
- restore_cache:
|
||||
key: linux-armv7-assets-{{ .Revision }}
|
||||
@ -430,7 +451,10 @@ jobs:
|
||||
docker load -i ~/docker/linux-armv7.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/linux-armv7:latest
|
||||
docker tag dockcross/linux-armv7:latest dockcross/linux-armv7:${TAG}
|
||||
docker push dockcross/linux-armv7:${TAG}
|
||||
fi
|
||||
# Image build currently broken. See #209
|
||||
#- restore_cache:
|
||||
@ -441,7 +465,10 @@ jobs:
|
||||
#docker load -i ~/docker/linux-mipsel.tar
|
||||
#if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
#docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
#TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
#docker push dockcross/linux-mipsel:latest
|
||||
#docker tag dockcross/linux-mipsel:latest dockcross/linux-mipsel:${TAG}
|
||||
#docker push dockcross/linux-mipsel:${TAG}
|
||||
#fi
|
||||
- restore_cache:
|
||||
key: linux-s390x-assets-{{ .Revision }}
|
||||
@ -451,7 +478,10 @@ jobs:
|
||||
docker load -i ~/docker/linux-s390x.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/linux-s390x:latest
|
||||
docker tag dockcross/linux-s390x:latest dockcross/linux-s390x:${TAG}
|
||||
docker push dockcross/linux-s390x:${TAG}
|
||||
fi
|
||||
# Image build currently broken. See #209
|
||||
#- restore_cache:
|
||||
@ -462,7 +492,10 @@ jobs:
|
||||
#docker load -i ~/docker/linux-ppc64le.tar
|
||||
#if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
#docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
#TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
#docker push dockcross/linux-ppc64le:latest
|
||||
#docker tag dockcross/linux-ppc64le:latest dockcross/linux-ppc64le:${TAG}
|
||||
#docker push dockcross/linux-ppc64le:${TAG}
|
||||
#fi
|
||||
- restore_cache:
|
||||
key: linux-x64-assets-{{ .Revision }}
|
||||
@ -472,7 +505,10 @@ jobs:
|
||||
docker load -i ~/docker/linux-x64.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/linux-x64:latest
|
||||
docker tag dockcross/linux-x64:latest dockcross/linux-x64:${TAG}
|
||||
docker push dockcross/linux-x64:${TAG}
|
||||
fi
|
||||
- restore_cache:
|
||||
key: linux-x86-assets-{{ .Revision }}
|
||||
@ -482,7 +518,10 @@ jobs:
|
||||
docker load -i ~/docker/linux-x86.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/linux-x86:latest
|
||||
docker tag dockcross/linux-x86:latest dockcross/linux-x86:${TAG}
|
||||
docker push dockcross/linux-x86:${TAG}
|
||||
fi
|
||||
- restore_cache:
|
||||
key: manylinux-x64-assets-{{ .Revision }}
|
||||
@ -492,7 +531,10 @@ jobs:
|
||||
docker load -i ~/docker/manylinux-x64.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/manylinux-x64:latest
|
||||
docker tag dockcross/manylinux-x64:latest dockcross/manylinux-x64:${TAG}
|
||||
docker push dockcross/manylinux-x64:${TAG}
|
||||
fi
|
||||
- restore_cache:
|
||||
key: manylinux-x86-assets-{{ .Revision }}
|
||||
@ -502,7 +544,10 @@ jobs:
|
||||
docker load -i ~/docker/manylinux-x86.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/manylinux-x86:latest
|
||||
docker tag dockcross/manylinux-x86:latest dockcross/manylinux-x86:${TAG}
|
||||
docker push dockcross/manylinux-x86:${TAG}
|
||||
fi
|
||||
- restore_cache:
|
||||
key: windows-x64-assets-{{ .Revision }}
|
||||
@ -512,7 +557,10 @@ jobs:
|
||||
docker load -i ~/docker/windows-x64.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/windows-x64:latest
|
||||
docker tag dockcross/windows-x64:latest dockcross/windows-x64:${TAG}
|
||||
docker push dockcross/windows-x64:${TAG}
|
||||
fi
|
||||
- restore_cache:
|
||||
key: windows-x64-posix-assets-{{ .Revision }}
|
||||
@ -522,7 +570,10 @@ jobs:
|
||||
docker load -i ~/docker/windows-x64-posix.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/windows-x64-posix:latest
|
||||
docker tag dockcross/windows-x64-posix:latest dockcross/windows-x64-posix:${TAG}
|
||||
docker push dockcross/windows-x64-posix:${TAG}
|
||||
fi
|
||||
- restore_cache:
|
||||
key: windows-x86-assets-{{ .Revision }}
|
||||
@ -532,7 +583,10 @@ jobs:
|
||||
docker load -i ~/docker/windows-x86.tar
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||
TAG=$(date '+%Y%m%d')-$(git rev-parse --short HEAD)
|
||||
docker push dockcross/windows-x86:latest
|
||||
docker tag dockcross/windows-x86:latest dockcross/windows-x86:${TAG}
|
||||
docker push dockcross/windows-x86:${TAG}
|
||||
fi
|
||||
|
||||
workflows:
|
||||
|
7
Makefile
7
Makefile
@ -40,6 +40,9 @@ ifeq ("$(CIRCLECI)", "true")
|
||||
RM =
|
||||
endif
|
||||
|
||||
# Tag images with date and Git short hash in addition to revision
|
||||
TAG = $(shell date '+%Y%m%d')-$(shell git rev-parse --short HEAD)
|
||||
|
||||
#
|
||||
# images: This target builds all IMAGES (because it is the first one, it is built by default)
|
||||
#
|
||||
@ -75,6 +78,7 @@ browser-asmjs: browser-asmjs/Dockerfile
|
||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||
browser-asmjs
|
||||
$(DOCKER) tag $(ORG)/browser-asmjs:latest $(ORG)/browser-asmjs:$(TAG)
|
||||
rm -rf browser-asmjs/test
|
||||
rm -rf $@/imagefiles
|
||||
|
||||
@ -95,6 +99,7 @@ manylinux-x64: manylinux-x64/Dockerfile
|
||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||
-f manylinux-x64/Dockerfile .
|
||||
$(DOCKER) tag $(ORG)/manylinux-x64:latest $(ORG)/manylinux-x64:$(TAG)
|
||||
rm -rf $@/imagefiles
|
||||
|
||||
manylinux-x64.test: manylinux-x64
|
||||
@ -113,6 +118,7 @@ manylinux-x86: manylinux-x86/Dockerfile
|
||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||
-f manylinux-x86/Dockerfile .
|
||||
$(DOCKER) tag $(ORG)/manylinux-x86:latest $(ORG)/manylinux-x86:$(TAG)
|
||||
rm -rf $@/imagefiles
|
||||
|
||||
manylinux-x86.test: manylinux-x86
|
||||
@ -152,6 +158,7 @@ $(STANDARD_IMAGES): %: %/Dockerfile base
|
||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||
$@
|
||||
$(DOCKER) tag $(ORG)/$@:latest $(ORG)/$@:$(TAG)
|
||||
rm -rf $@/imagefiles
|
||||
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user