Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 85bbfa87 authored by Romain Hunault's avatar Romain Hunault 💻
Browse files

Refactor CI process

parent 618c120f
Loading
Loading
Loading
Loading
+22 −11
Original line number Diff line number Diff line
@@ -4,24 +4,35 @@ image: docker:stable
# improved performance.
variables:
  DOCKER_DRIVER: overlay2
  CONTAINER_IMAGE: registry.gitlab.e.foundation:5000/e/os/lineageota
  PUBLISH_USER: root
  PUBLISH_URL: ota.ecloud.global

services:
- docker:dind

before_script:
- apk --update add openssh-client
- 'which ssh-agent || ( apk --update add openssh-client )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts

build:
  only:
  - /^master/
  stage: build
  script:
  - docker build -t registry.gitlab.e.foundation:5000/e/os/lineageota .
  - docker pull $CONTAINER_IMAGE:$CI_COMMIT_REF_NAME || true
  - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.e.foundation:5000
  - docker push registry.gitlab.e.foundation:5000/e/os/lineageota
  - mkdir ~/.ssh && echo "${SSHPRIVKEY_TEST}" > ~/.ssh/id_rsa && chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
  - ssh -2 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@ota.ecloud.global 'docker login registry.gitlab.e.foundation:5000'
  - ssh -2 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@ota.ecloud.global 'docker pull registry.gitlab.e.foundation:5000/e/os/lineageota'
  - ssh -2 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@ota.ecloud.global 'cd /mnt/docker/compose/ && docker-compose up -d'
  - ssh -2 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@ota.ecloud.global 'docker restart nginx'
  - rm -rf ~/.ssh
  - docker build --cache-from $CONTAINER_IMAGE:latest -t $CONTAINER_IMAGE -t $CONTAINER_IMAGE:$CI_COMMIT_REF_NAME .
  - docker push $CONTAINER_IMAGE:$CI_COMMIT_REF_NAME
  - if [ "${CI_COMMIT_REF_NAME}" = master ] ; then docker push $CONTAINER_IMAGE:latest ; fi

publish:
  only:
  - /^master/
  script:
  - ssh -2 $PUBLISH_USER@$PUBLISH_URL 'docker pull $CONTAINER_IMAGE:latest'
  - ssh -2 $PUBLISH_USER@$PUBLISH_URL 'cd /mnt/docker/compose-ota-images-apk/ && docker-compose up -d'
  - ssh -2 $PUBLISH_USER@$PUBLISH_URL 'docker restart nginx'