Skip to content
Snippets Groups Projects

Devops change builder

Merged Ivan Vasilev requested to merge devops-change-builder into master
1 file
+ 34
39
Compare changes
  • Side-by-side
  • Inline
+ 34
39
image: docker:latest
image: registry.vereign.com/docker/docker:master
services:
services:
- docker:dind
- registry.vereign.com/docker/docker:dind-master
 
 
variables:
 
DOCKER_CLI_EXPERIMENTAL: 'enabled'
 
JOB_IMAGE: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_JOB_NAME:$CI_COMMIT_REF_NAME
 
MANIFEST_IMAGE: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME
 
CI_DEBUG_TRACE: "true"
stages:
stages:
- build
- build
- manifest
- manifest
- deploy
#- deploy
variables:
DOCKER_TLS_CERTDIR: "/certs"
DOCKER_CONFIG: ~/.docker/$CI_JOB_ID
IMAGE_amd64: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/amd64:$CI_COMMIT_REF_NAME
IMAGE_ppc64le: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/ppc64le:$CI_COMMIT_REF_NAME
MANIFEST: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME
before_script:
before_script:
- "[ -d $DOCKER_CONFIG ] || mkdir -p $DOCKER_CONFIG"
- "echo '{ \"experimental\": \"enabled\" }' > $DOCKER_CONFIG/config.json"
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
.build:
after_script:
script:
- "docker rmi $MANIFEST $IMAGE_amd64 $IMAGE_ppc64le || true"
- docker build --build-arg CI_PROJECT_NAME=$CI_PROJECT_NAME --build-arg GITLAB_LOGIN=gitlab-ci-token --build-arg GITLAB_PASSWORD=$CI_JOB_TOKEN --pull -t $JOB_IMAGE -f Dockerfile .
- "rm -vRf $DOCKER_CONFIG"
- docker push $JOB_IMAGE
ppc64le:
ppc64le:
 
extends: .build
stage: build
stage: build
tags:
tags:
- ppc64le
- ppc64le-docker
script:
- docker
- docker build --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA --build-arg CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME --build-arg CI_PROJECT_NAME=$CI_PROJECT_NAME --build-arg GITLAB_LOGIN=gitlab-ci-token --build-arg GITLAB_PASSWORD=$CI_JOB_TOKEN --pull -t $IMAGE_ppc64le -f Dockerfile .
- docker push $IMAGE_ppc64le
amd64:
amd64:
variables:
extends: .build
stage: build
stage: build
tags:
tags:
- amd64
- amd64-docker
script:
- docker
- docker build --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA --build-arg CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME --build-arg CI_PROJECT_NAME=$CI_PROJECT_NAME --build-arg GITLAB_LOGIN=gitlab-ci-token --build-arg GITLAB_PASSWORD=$CI_JOB_TOKEN --pull -t $IMAGE_amd64 -f Dockerfile .
- docker push $IMAGE_amd64
manifest:
manifest:
stage: manifest
stage: manifest
 
variables:
 
IMAGE_amd64: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/amd64:$CI_COMMIT_REF_NAME
 
IMAGE_ppc64le: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/ppc64le:$CI_COMMIT_REF_NAME
tags:
tags:
- amd64
- ppc64le-docker
script:
- docker manifest create $MANIFEST $IMAGE_amd64 $IMAGE_ppc64le
- docker manifest annotate $MANIFEST $IMAGE_amd64 --os linux --arch amd64
- docker manifest annotate $MANIFEST $IMAGE_ppc64le --os linux --arch ppc64le
- docker manifest push $MANIFEST
deploy:
stage: deploy
tags:
- ppc64le
only:
- master
script:
script:
- for ref in $DEPLOYENVS; do curl -X POST -F token=$TRIGGER_TOKEN -F ref=$ref -F variables[branch]=$CI_COMMIT_REF_NAME $TRIGGER_CODE_BUILD; done
- docker manifest create $MANIFEST_IMAGE $IMAGE_amd64 $IMAGE_ppc64le
 
- docker manifest push $MANIFEST_IMAGE
 
 
# deploy:
 
# stage: deploy
 
# tags:
 
# - ppc64le
 
# only:
 
# - master
 
# script:
 
# - for ref in $DEPLOYENVS; do curl -X POST -F token=$TRIGGER_TOKEN -F ref=$ref -F variables[branch]=$CI_COMMIT_REF_NAME $TRIGGER_CODE_BUILD; done
Loading