diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 59644394f4fc22278ff4f37cd98ce465472c3f52..5633081cdc68fcb91ec5adaa6fecdae6ab7aeb81 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,6 @@ # To use the Docker Hub docker image -#image: docker:latest -image: $CI_REGISTRY/mouse-informatics/docker:latest +image: docker:latest +#image: $CI_REGISTRY/mouse-informatics/docker:latest variables: # When using dind service we need to instruct docker, to talk with the @@ -29,7 +29,7 @@ variables: MOUNT_POINT: /builds/$CI_PROJECT_PATH/mnt # For EBI you need to override the definition of CI_REGISTRY to remove the port number - CI_REGISTRY: dockerhub.ebi.ac.uk + #CI_REGISTRY: dockerhub.ebi.ac.uk CI_REGISTRY_IMAGE: $CI_REGISTRY/$CI_PROJECT_PATH #NOW: $(date '+%Y-%m-%d-%H-%M-%S') @@ -41,70 +41,34 @@ variables: DOCKER_TLS_CERTDIR: "" stages: - - build-dev - - deploy-dev - build-prod - - deploy-prod - -build_dev_image: - stage: build-dev - services: - - name: $CI_REGISTRY/mouse-informatics/dind:latest - alias: docker - except: - - schedules - before_script: - - sed -i "s|FROM node|FROM ${LOCAL_GITLAB_NODE_IMAGE}|g" Dockerfile - - sed -i "s|FROM nginx|FROM ${LOCAL_GITLAB_NGINX_IMAGE}|g" Dockerfile - - mkdir -p "$MOUNT_POINT" - - echo "${CI_REGISTRY_PASSWORD}" | docker login -u "${CI_REGISTRY_USER}" --password-stdin ${CI_REGISTRY} - - rm .env.production && cp .env.development .env.production - script: - - | - if [[ "${REQUIRES_REBUILD_IMAGE}" == "true" ]]; then - echo "Building prod image" - docker build -t "${CI_REGISTRY_IMAGE}":dev -f Dockerfile . | tee ${MOUNT_POINT}/build.log - docker push "${CI_REGISTRY_IMAGE}":dev | tee ${MOUNT_POINT}/push.log - docker logout ${CI_REGISTRY} - echo "Pushing to docker hub" - echo "${DOCKER_HUB_PWD}" | docker login --username "${DOCKER_HUB_USER}" --password-stdin - docker tag "${CI_REGISTRY_IMAGE}":dev "${DOCKER_HUB_USER}"/"${DOCKER_HUB_REPO}":dev - docker push "${DOCKER_HUB_USER}"/"${DOCKER_HUB_REPO}":dev | tee ${MOUNT_POINT}/dockerhub-push-latest.log - fi - - docker logout - - artifacts: - paths: - - "$MOUNT_POINT/" - only: - refs: - - main build_prod_image: stage: build-prod - services: - - name: $CI_REGISTRY/mouse-informatics/dind:latest - alias: docker +# services: +# - name: $CI_REGISTRY/mouse-informatics/dind:latest +# alias: docker except: - schedules before_script: - mkdir -p "$MOUNT_POINT" - - echo "${CI_REGISTRY_PASSWORD}" | docker login -u "${CI_REGISTRY_USER}" --password-stdin ${CI_REGISTRY} +# - echo "${CI_REGISTRY_PASSWORD}" | docker login -u "${CI_REGISTRY_USER}" --password-stdin ${CI_REGISTRY} + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - sed -i "s|FROM node|FROM ${LOCAL_GITLAB_NODE_IMAGE}|g" Dockerfile - - sed -i "s|FROM nginx|FROM ${LOCAL_GITLAB_NGINX_IMAGE}|g" Dockerfile - - | - if [[ "${REQUIRES_REBUILD_IMAGE}" == "true" ]]; then - echo "Building prod image" - docker build -t "${CI_REGISTRY_IMAGE}":prod -f Dockerfile . | tee ${MOUNT_POINT}/build.log - docker push "${CI_REGISTRY_IMAGE}":prod | tee ${MOUNT_POINT}/push.log - docker logout ${CI_REGISTRY} - echo "Pushing to docker hub" - echo "${DOCKER_HUB_PWD}" | docker login --username "${DOCKER_HUB_USER}" --password-stdin - docker tag "${CI_REGISTRY_IMAGE}":prod "${DOCKER_HUB_USER}"/"${DOCKER_HUB_REPO}":prod - docker push "${DOCKER_HUB_USER}"/"${DOCKER_HUB_REPO}":prod | tee ${MOUNT_POINT}/dockerhub-push-latest.log - fi - - docker logout + # - sed -i "s|FROM node|FROM ${LOCAL_GITLAB_NODE_IMAGE}|g" Dockerfile + # - sed -i "s|FROM nginx|FROM ${LOCAL_GITLAB_NGINX_IMAGE}|g" Dockerfile +# - | +# if [[ "${REQUIRES_REBUILD_IMAGE}" == "true" ]]; then + - echo "Building prod image" + - docker build -t "${CI_REGISTRY_IMAGE}":prod -f Dockerfile . | tee ${MOUNT_POINT}/build.log + - docker push "${CI_REGISTRY_IMAGE}":prod | tee ${MOUNT_POINT}/push.log + - docker logout ${CI_REGISTRY} +# echo "Pushing to docker hub" +# echo "${DOCKER_HUB_PWD}" | docker login --username "${DOCKER_HUB_USER}" --password-stdin +# docker tag "${CI_REGISTRY_IMAGE}":prod "${DOCKER_HUB_USER}"/"${DOCKER_HUB_REPO}":prod +# docker push "${DOCKER_HUB_USER}"/"${DOCKER_HUB_REPO}":prod | tee ${MOUNT_POINT}/dockerhub-push-latest.log +# fi +# - docker logout artifacts: paths: @@ -112,72 +76,3 @@ build_prod_image: only: refs: - main - -deploy-HH-WP-WEBADMIN-dev: - stage: deploy-dev - image: dtzar/helm-kubectl:2.13.0 - script: - - kubectl config set-cluster local --server="${HH_WP_WEBADMIN_ENDPOINT}" - - kubectl config set clusters.local.certificate-authority-data "${HH_WP_WEBADMIN_CERTIFICATE_AUTHORITY}" - - kubectl config set-credentials ${HH_WP_WEBADMIN_DEV_USER} --token="${HH_WP_WEBADMIN_DEV_USER_TOKEN}" - - kubectl config set-context "${HH_WP_WEBADMIN_DEV_NAMESPACE}" --cluster=local --user=${HH_WP_WEBADMIN_DEV_USER} --namespace="${HH_WP_WEBADMIN_DEV_NAMESPACE}" - - kubectl config use-context "${HH_WP_WEBADMIN_DEV_NAMESPACE}" - - kubectl version - - - | - if kubectl apply -f k8-deploy/nodeport_deploy/dev/deployment-dev.yml --record | grep -q unchanged; then - echo "=> Patching deployment to force image update." - kubectl patch -f k8-deploy/nodeport_deploy/dev/deployment-dev.yml --record -p "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"ci-last-updated\":\"$(date +'%s')\"}}}}}" - else - echo "=> Deployment apply has changed the object, no need to force image update." - fi - - kubectl get pods,service,deploy,replicaset,ing - only: - refs: - - main - -deploy-HH-WP-WEBADMIN-prod: - stage: deploy-prod - image: dtzar/helm-kubectl:2.13.0 - script: - - kubectl config set-cluster local --server="${HH_WP_WEBADMIN_ENDPOINT}" - - kubectl config set clusters.local.certificate-authority-data "${HH_WP_WEBADMIN_CERTIFICATE_AUTHORITY}" - - kubectl config set-credentials ${HH_WP_WEBADMIN_PROD_USER} --token="${HH_WP_WEBADMIN_PROD_USER_TOKEN}" - - kubectl config set-context "${HH_WP_WEBADMIN_PROD_NAMESPACE}" --cluster=local --user=${HH_WP_WEBADMIN_PROD_USER} --namespace="${HH_WP_WEBADMIN_PROD_NAMESPACE}" - - kubectl config use-context "${HH_WP_WEBADMIN_PROD_NAMESPACE}" - - kubectl version - - - | - if kubectl apply -f k8-deploy/nodeport_deploy/prod/deployment-prod.yml --record | grep -q unchanged; then - echo "=> Patching deployment to force image update." - kubectl patch -f k8-deploy/nodeport_deploy/prod/deployment-prod.yml --record -p "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"ci-last-updated\":\"$(date +'%s')\"}}}}}" - else - echo "=> Deployment apply has changed the object, no need to force image update." - fi - - kubectl get pods,service,deploy,replicaset,ing - only: - refs: - - main - -deploy-HX-WP-WEBADMIN-prod: - stage: deploy-prod - image: dtzar/helm-kubectl:2.13.0 - script: - - kubectl config set-cluster local --server="${HX_WP_WEBADMIN_ENDPOINT}" - - kubectl config set clusters.local.certificate-authority-data "${HX_WP_WEBADMIN_CERTIFICATE_AUTHORITY}" - - kubectl config set-credentials ${HX_WP_WEBADMIN_PROD_USER} --token="${HX_WP_WEBADMIN_PROD_USER_TOKEN}" - - kubectl config set-context "${HX_WP_WEBADMIN_PROD_NAMESPACE}" --cluster=local --user=${HX_WP_WEBADMIN_PROD_USER} --namespace="${HX_WP_WEBADMIN_PROD_NAMESPACE}" - - kubectl config use-context "${HX_WP_WEBADMIN_PROD_NAMESPACE}" - - kubectl version - - - | - if kubectl apply -f k8-deploy/nodeport_deploy/prod/deployment-prod.yml --record | grep -q unchanged; then - echo "=> Patching deployment to force image update." - kubectl patch -f k8-deploy/nodeport_deploy/prod/deployment-prod.yml --record -p "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"ci-last-updated\":\"$(date +'%s')\"}}}}}" - else - echo "=> Deployment apply has changed the object, no need to force image update." - fi - - kubectl get pods,service,deploy,replicaset,ing - only: - refs: - - main