Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.25 KiB
image: docker:latest
services:
- docker:dind

stages:
- build
- manifest
- deploy

before_script:
  - "[ -d ~/.docker ] || mkdir ~/.docker"
  - "echo '{ \"experimental\": \"enabled\" }' > ~/.docker/config.json"
  - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
  
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
  tags:
    - ppc64le
  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 push $IMAGE

amd64:
  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
  tags:
    - amd64
  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 push $IMAGE

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
  tags:
    - amd64
  script:
    - docker manifest create $IMAGE $IMAGE_amd64 $IMAGE_ppc64le 
    - docker manifest push $IMAGE
 
deploy:
  stage: deploy
  tags:
    - hv2
  only:
    - master 
  script:
    - 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