diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a068c9c7ff25ed4cd5c18788914ace8aa6d3ff90..4905b8767d347b19dca3a247a253b85a17b8e0b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,61 +2,55 @@ image: registry.vereign.com/docker/docker:master services: - 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 + stages: - build - manifest -- 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 +#- deploy 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 - -after_script: - - "docker rmi $MANIFEST $IMAGE_amd64 $IMAGE_ppc64le || true" - - "rm -vRf $DOCKER_CONFIG" +.build: + script: + - 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 . + - docker push $JOB_IMAGE ppc64le: + extends: .build stage: build tags: - ppc64le-docker - 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 GITLAB_LOGIN=gitlab-ci-token --build-arg GITLAB_PASSWORD=$CI_JOB_TOKEN --pull -t $IMAGE_ppc64le -f Dockerfile . - - docker push $IMAGE_ppc64le + - docker amd64: - variables: + extends: .build stage: build tags: - amd64-docker - 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 GITLAB_LOGIN=gitlab-ci-token --build-arg GITLAB_PASSWORD=$CI_JOB_TOKEN --pull -t $IMAGE_amd64 -f Dockerfile . - - docker push $IMAGE_amd64 + - docker 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: - - amd64-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 + - ppc64le-docker 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