Skip to content
Snippets Groups Projects
Commit 0e0138a5 authored by Alexander Kulikov's avatar Alexander Kulikov
Browse files

Update .gitlab-ci.yml

parent 892a68a5
No related branches found
No related tags found
1 merge request!45devops#196
...@@ -6,61 +6,81 @@ stages: ...@@ -6,61 +6,81 @@ stages:
- build - build
- manifest - manifest
- deploy - deploy
- tech_registry
variables: variables:
DOCKER_CONFIG: ~/.docker/$CI_JOB_ID 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
TECH_IMAGE_amd64: $REGISTRY_TECH_URL/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/amd64:$CI_COMMIT_REF_NAME
TECH_IMAGE_ppc64le: $REGISTRY_TECH_URL/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/ppc64le:$CI_COMMIT_REF_NAME
TECH_MANIFEST: $REGISTRY_TECH_URL/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME
before_script: before_script:
- "[ -d $DOCKER_CONFIG ] || mkdir -p $DOCKER_CONFIG" - "[ -d $DOCKER_CONFIG ] || mkdir -p $DOCKER_CONFIG"
- "echo '{ \"experimental\": \"enabled\" }' > $DOCKER_CONFIG/config.json" - "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
- docker login $REGISTRY_TECH_URL --username $REGISTRY_TECH_USER --password $REGISTRY_TECH_PASS
after_script: after_script:
- "rm -vRf $DOCKER_CONFIG" - "rm -vRf $DOCKER_CONFIG"
ppc64le: ppc64le:
variables:
IMAGE: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_JOB_NAME:$CI_COMMIT_REF_NAME
IMAGE_SHA: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_JOB_NAME:$CI_COMMIT_SHA
stage: build stage: build
tags: tags:
- ppc64le - ppc64le
script: script:
- 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 CI_JOB_TOKEN=$CI_JOB_TOKEN --pull -t $IMAGE -f Dockerfile . - 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 CI_JOB_TOKEN=$CI_JOB_TOKEN --pull -t $IMAGE_ppc64le -f Dockerfile .
- docker push $IMAGE - docker push $IMAGE_ppc64le
amd64: amd64:
variables: variables:
IMAGE: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_JOB_NAME:$CI_COMMIT_REF_NAME
IMAGE_SHA: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_JOB_NAME:$CI_COMMIT_SHA
stage: build stage: build
tags: tags:
- amd64 - amd64
script: script:
- 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 CI_JOB_TOKEN=$CI_JOB_TOKEN --pull -t $IMAGE -f Dockerfile . - 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 CI_JOB_TOKEN=$CI_JOB_TOKEN --pull -t $IMAGE_amd64 -f Dockerfile .
- docker push $IMAGE - docker push $IMAGE_amd64
manifest: manifest:
variables:
IMAGE: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME
IMAGE_SHA: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME:$CI_COMMIT_SHA
IMAGE_amd64: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/amd64:$CI_COMMIT_REF_NAME
IMAGE_SHA_amd64: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/amd64:$CI_COMMIT_SHA
IMAGE_ppc64le: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/ppc64le:$CI_COMMIT_REF_NAME
IMAGE_SHA_ppc64le: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/ppc64le:$CI_COMMIT_SHA
stage: manifest stage: manifest
tags: tags:
- amd64 - amd64
script: script:
- docker manifest create $IMAGE $IMAGE_amd64 $IMAGE_ppc64le - docker manifest create $MANIFEST $IMAGE_amd64 $IMAGE_ppc64le
- docker manifest push $IMAGE - 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: deploy:
stage: deploy stage: deploy
tags: tags:
- hv2 - hv2
only: only:
- master - master
script: script:
- apk add curl - apk add curl
- for ref in $DEPLOYENVS; do curl -X POST -F token=$TRIGGER_TOKEN -F ref=$ref -F variables[branch]=master https://code.vereign.com/api/v4/projects/59/trigger/pipeline; done - 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
duplicate:
stage: tech_registry
tags:
- amd64
only:
refs:
- tags
- master
script:
- docker pull $IMAGE_amd64
- docker tag $IMAGE_amd64 $TECH_IMAGE_amd64
- docker pull $IMAGE_ppc64le
- docker tag $IMAGE_ppc64le $TECH_IMAGE_ppc64le
- docker push $TECH_IMAGE_amd64
- docker push $TECH_IMAGE_ppc64le
- docker manifest create $TECH_MANIFEST $TECH_IMAGE_amd64 $TECH_IMAGE_ppc64le
- docker manifest annotate $TECH_MANIFEST $TECH_IMAGE_amd64 --os linux --arch amd64
- docker manifest annotate $TECH_MANIFEST $TECH_IMAGE_ppc64le --os linux --arch ppc64le
- docker manifest push $TECH_MANIFEST
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment