diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index afea2d6..f174de0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -106,101 +106,6 @@ test-frontend: - npm run test dependencies: - lint-frontend -deploy-dev: - stage: deploy - image: alpine:latest - before_script: - - apk add --no-cache openssh-client sed - - eval $(ssh-agent -s) - - ssh-add <(echo "$CI_SSH_KEY" | tr -d '\r') - script: - - sed -i -e "s|DOCKER_REGISTRY_REPO|$CI_REGISTRY_IMAGE|" docker-compose.dev.yml - - sed -i -e "s|DEV_TAG|dev|" docker-compose.dev.yml - - 'scp -P $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR ./docker-compose.dev.yml - ./reverseproxy.dev.conf $CI_SSH_USER@$CI_SSH_DEV_HOST:/home/$CI_SSH_USER/docker/htwkalender/ - - ' - - 'ssh -p $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR $CI_SSH_USER@$CI_SSH_DEV_HOST - "cd /home/$CI_SSH_USER/docker/htwkalender/ && docker login -u $CI_REGISTRY_USER - -p $CI_REGISTRY_PASSWORD $CI_REGISTRY && docker compose -f ./docker-compose.dev.yml - down && docker compose -f ./docker-compose.dev.yml up -d --remove-orphans && docker - logout" - - ' - rules: - - if: $CI_COMMIT_BRANCH == "development" -deploy-all: - stage: deploy - image: alpine:latest - before_script: - - apk add --no-cache openssh-client sed # install dependencies - - eval $(ssh-agent -s) # set some ssh variables - - ssh-add <(echo "$CI_SSH_KEY" | tr -d '\r') - script: - # replace some placeholders - - sed -i -e "s|DOCKER_REGISTRY_REPO|$CI_REGISTRY_IMAGE|" docker-compose.prod.yml - - sed -i -e "s|PROD_TAG|latest|" docker-compose.prod.yml - # upload necessary files to the server - - > - scp -P $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR ./docker-compose.prod.yml ./reverseproxy.conf - $CI_SSH_USER@$CI_SSH_HOST:/home/$CI_SSH_USER/docker/htwkalender/ - # ssh to the server and start the service - - > - ssh -p $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR $CI_SSH_USER@$CI_SSH_HOST - "cd /home/$CI_SSH_USER/docker/htwkalender/ && - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY && - docker compose -f ./docker-compose.prod.yml down && docker compose -f ./docker-compose.prod.yml up -d --remove-orphans && docker logout && - docker exec --user root htwkalender-htwkalender-frontend-1 /bin/sh -c \"echo 'google-site-verification: $GOOGLE_VERIFICATION.html' > ./$GOOGLE_VERIFICATION.html\" " - rules: - - if: $CI_COMMIT_BRANCH == "main" - -deploy-dev: - stage: deploy - image: alpine:latest - before_script: - - apk add --no-cache openssh-client sed - - eval $(ssh-agent -s) - - ssh-add <(echo "$CI_SSH_KEY" | tr -d '\r') - script: - - sed -i -e "s|DOCKER_REGISTRY_REPO|$CI_REGISTRY_IMAGE|" docker-compose.dev.yml - - sed -i -e "s|DEV_TAG|dev|" docker-compose.dev.yml - - 'scp -P $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR ./docker-compose.dev.yml - ./reverseproxy.dev.conf $CI_SSH_USER@$CI_SSH_DEV_HOST:/home/$CI_SSH_USER/docker/htwkalender/ - - ' - - 'ssh -p $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR $CI_SSH_USER@$CI_SSH_DEV_HOST - "cd /home/$CI_SSH_USER/docker/htwkalender/ && docker login -u $CI_REGISTRY_USER - -p $CI_REGISTRY_PASSWORD $CI_REGISTRY && docker compose -f ./docker-compose.dev.yml - down && docker compose -f ./docker-compose.dev.yml up -d --remove-orphans && docker - logout" - - ' - rules: - - if: $CI_COMMIT_BRANCH == "development" -deploy-all: - stage: deploy - image: alpine:latest - before_script: - - apk add --no-cache openssh-client sed # install dependencies - - eval $(ssh-agent -s) # set some ssh variables - - ssh-add <(echo "$CI_SSH_KEY" | tr -d '\r') - script: - # replace some placeholders - - sed -i -e "s|DOCKER_REGISTRY_REPO|$CI_REGISTRY_IMAGE|" docker-compose.prod.yml - - sed -i -e "s|PROD_TAG|latest|" docker-compose.prod.yml - # upload necessary files to the server - - > - scp -P $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR ./docker-compose.prod.yml ./reverseproxy.conf - $CI_SSH_USER@$CI_SSH_HOST:/home/$CI_SSH_USER/docker/htwkalender/ - # ssh to the server and start the service - - > - ssh -p $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR $CI_SSH_USER@$CI_SSH_HOST - "cd /home/$CI_SSH_USER/docker/htwkalender/ && - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY && - docker compose -f ./docker-compose.prod.yml down && docker compose -f ./docker-compose.prod.yml up -d --remove-orphans && docker logout && - docker exec --user root htwkalender-htwkalender-frontend-1 /bin/sh -c \"echo 'google-site-verification: $GOOGLE_VERIFICATION.html' > ./$GOOGLE_VERIFICATION.html\" " - rules: - - if: $CI_COMMIT_BRANCH == "main" include: - local: 'charts/ci-build-deploy.yml' diff --git a/charts/ci-build-deploy.yml b/charts/ci-build-deploy.yml index bd3ffd6..a2a2f47 100644 --- a/charts/ci-build-deploy.yml +++ b/charts/ci-build-deploy.yml @@ -5,11 +5,11 @@ - docker:dind tags: - image - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_CERTDIR: "/certs" - DOCKER_TLS_VERIFY: 1 - DOCKER_CERT_PATH: "/certs/client" + #variables: + # DOCKER_HOST: tcp://docker:2376 + # DOCKER_TLS_CERTDIR: "/certs" + # DOCKER_TLS_VERIFY: 1 + # DOCKER_CERT_PATH: "/certs/client" before_script: - echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY script: @@ -211,3 +211,52 @@ trigger_deploy: - "echo 'The $PROJECT_NAME can be viewed on: $PROJECT_URL'" rules: - if: '$CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "development"' + +deploy-dev: + stage: deploy + image: alpine:latest + before_script: + - apk add --no-cache openssh-client sed + - eval $(ssh-agent -s) + - ssh-add <(echo "$CI_SSH_KEY" | tr -d '\r') + script: + - sed -i -e "s|DOCKER_REGISTRY_REPO|$CI_REGISTRY_IMAGE|" docker-compose.dev.yml + - sed -i -e "s|DEV_TAG|dev|" docker-compose.dev.yml + - 'scp -P $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR ./docker-compose.dev.yml + ./reverseproxy.dev.conf $CI_SSH_USER@$CI_SSH_DEV_HOST:/home/$CI_SSH_USER/docker/htwkalender/ + + ' + - 'ssh -p $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR $CI_SSH_USER@$CI_SSH_DEV_HOST + "cd /home/$CI_SSH_USER/docker/htwkalender/ && docker login -u $CI_REGISTRY_USER + -p $CI_REGISTRY_PASSWORD $CI_REGISTRY && docker compose -f ./docker-compose.dev.yml + down && docker compose -f ./docker-compose.dev.yml up -d --remove-orphans && docker + logout" + + ' + rules: + - if: $CI_COMMIT_BRANCH == "development" + +deploy-main: + stage: deploy + image: alpine:latest + before_script: + - apk add --no-cache openssh-client sed # install dependencies + - eval $(ssh-agent -s) # set some ssh variables + - ssh-add <(echo "$CI_SSH_KEY" | tr -d '\r') + script: + # replace some placeholders + - sed -i -e "s|DOCKER_REGISTRY_REPO|$CI_REGISTRY_IMAGE|" docker-compose.prod.yml + - sed -i -e "s|PROD_TAG|latest|" docker-compose.prod.yml + # upload necessary files to the server + - > + scp -P $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR ./docker-compose.prod.yml ./reverseproxy.conf + $CI_SSH_USER@$CI_SSH_HOST:/home/$CI_SSH_USER/docker/htwkalender/ + # ssh to the server and start the service + - > + ssh -p $CI_SSH_PORT -o StrictHostKeyChecking=no -o LogLevel=ERROR $CI_SSH_USER@$CI_SSH_HOST + "cd /home/$CI_SSH_USER/docker/htwkalender/ && + docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY && + docker compose -f ./docker-compose.prod.yml down && docker compose -f ./docker-compose.prod.yml up -d --remove-orphans && docker logout && + docker exec --user root htwkalender-htwkalender-frontend-1 /bin/sh -c \"echo 'google-site-verification: $GOOGLE_VERIFICATION.html' > ./$GOOGLE_VERIFICATION.html\" " + rules: + - if: $CI_COMMIT_BRANCH == "main"