Skip to content
Snippets Groups Projects
Commit b7f15cc3 authored by Benjamin Ledel's avatar Benjamin Ledel
Browse files

Update file .gitlab-ci.yml

parent 56958a96
No related branches found
No related tags found
No related merge requests found
stages:
- build
# - test
- deploy
variables: &global-variables
URL: $URL
DEPLOYMENT_URL: "polaris.servicechain.cloud"
IDP_SERVER: "https://aai-test-v3.ruhr-uni-bochum.de"
BASE_DIR: "/docker/polaris"
SSH_USER: "root"
SSH_PRIVATE_KEY: $SSH_PRIVATE_KEY
BRANCH : "main"
build-git:
stage: build
allow_failure: false
before_script:
- echo "setting up ssh and rsync"
# Install ssh-agent if not already installed
- which ssh-agent || (apk --update add openssh-client rsync)
- eval `ssh-agent -s`
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- function exec_ssh () { ssh -o StrictHostKeyChecking=no $SSH_USER@$DEPLOYMENT_URL $1; }
# Login in Container Registry
- exec_ssh "docker login -u \"${CI_REGISTRY_USER}\" -p \"${CI_REGISTRY_PASSWORD}\" \"${CI_REGISTRY}\""
- exec_ssh "if [ -d '$BASE_DIR/$URL' ]; then cd $BASE_DIR/$URL; git remote set-url origin ${CI_REPOSITORY_URL}; git pull; else cd $BASE_DIR; git clone ${CI_REPOSITORY_URL} $URL; cd $BASE_DIR/$URL; git checkout ${CI_COMMIT_BRANCH}; git pull; fi;"
script:
- echo "build complete"
deploy_rights-engine:
stage: deploy
allow_failure: false
environment:
name: rights-engine
url: $URL
before_script:
- echo "setting up ssh"
# Install ssh-agent if not already installed
- which ssh-agent || (apk --update add openssh-client)
- eval `ssh-agent -s`
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- function exec_ssh () { ssh -o StrictHostKeyChecking=no $SSH_USER@$DEPLOYMENT_URL $1; }
# ENV Docker-Compose
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; mkdir -p data_disclosure_zips"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; rm -rf data_disclosure_zips/*"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'URL=$URL' > .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'WEBSITE=polaris' | sed 's/\./-/g' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'DB_PASSWORD=$DB_PASSWORD' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'DJANGO_DEVELOPMENT=false' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'DATABASE_NAME=polaris' | sed 's/\./-/g' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'DATABASE_USER=root' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'DATABASE_PASSWORD=$DB_PASSWORD' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'DATABASE_HOST=database' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'DEBUG=False' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'LRS_HOST=$LRS_HOST' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'LRS_TOKEN=$LRS_TOKEN' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'LRS_CONNECTION_STRING=mongodb://root:$MONGO_PASSWORT@polaris.servicechain.cloud:27017' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'LRS_MONGO_DB_NAME=lrs' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'DATA_DISCLOSURE_EXPIRATION=30' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'DATA_DISCLOSURE_LOCATION=/usr/src/app/backend/data_disclosure_zips' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'EMAIL_HOST=$EMAIL_HOST' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'EMAIL_PORT=587' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'EMAIL_HOST_USER=$EMAIL_HOST_USER' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'EMAIL_HOST_PASSWORD=$EMAIL_HOST_PASSWORD' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'REDIS_PASSWORD=$REDIS_PASSWORD' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'CELERY_BROKER_URL=redis://:$REDIS_PASSWORD@redis:6379/0' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo '$JWT_PUBLIC_KEY' > id_rsa.pub"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo '$JWT_PRIVATE_KEY' > id_rsa"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'JWT_PUBLIC_KEY_PATH=backend/id_rsa.pub' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'JWT_PRIVATE_KEY_PATH=backend/id_rsa' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'IDP_SERVER=$IDP_SERVER' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'IDP_ENABLED=False' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'SP_HOST=$SP_HOST' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'PROVIDER_CONTEXTS_PULL_ENABLED=True' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'PROVIDER_CONTEXTS_PULL_URL=$PROVIDER_CONTEXTS_PULL_URL' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'PROVIDER_CONTEXTS_PULL_TOKEN=$PROVIDER_CONTEXTS_PULL_TOKEN' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'ANONYMIZATION_DEFAULT_MINIMUM_COUNT=10' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; echo 'ANONYMIZATION_HASH_PREFIX=change_me' >> .env"
script:
- function exec_ssh () { ssh -o StrictHostKeyChecking=no $SSH_USER@$DEPLOYMENT_URL $1; }
- exec_ssh "docker login -u \"${CI_REGISTRY_USER}\" -p \"${CI_REGISTRY_PASSWORD}\" \"${CI_REGISTRY}\""
#Image Pull & Docker Restart
- exec_ssh "cd $BASE_DIR/$URL/rights-engine; docker compose pull && docker compose down && docker compose up -d"
# Initale Datenbank
#- exec_ssh "sleep 20 && cd $BASE_DIR; docker compose exec -it backend sh -c 'python3 manage.py migrate && python3 manage.py loaddata fixtures/initial_db.json'"
# Mit Datenbank Flush
- exec_ssh "sleep 20 && cd $BASE_DIR/$URL/rights-engine; docker compose exec -it rights-engine sh -c 'python3 manage.py sqlflush | sed s/TRUNCATE/DROP\ TABLE\ IF\ EXISTS/g | python3 manage.py dbshell && echo DROP\ TABLE\ IF\ EXISTS\ django_migrations\; | python3 manage.py dbshell && python3 manage.py migrate && python3 manage.py loaddata fixtures/initial_db.json'"
# ohne Datenbank Flush
#- exec_ssh "sleep 20 && cd $BASE_DIR; docker compose exec -it backend sh -c 'python3 manage.py migrate"
deploy_analytics-engine:
stage: deploy
allow_failure: false
variables:
<<: *global-variables
DEPLOYMENT_URL: $URL
environment:
name: analytics-engine
url: $URL
before_script:
- echo "setting up ssh and rsync"
# Install ssh-agent if not already installed
- which ssh-agent || (apk --update add openssh-client rsync)
- eval `ssh-agent -s`
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- function exec_ssh () { ssh -o StrictHostKeyChecking=no $SSH_USER@$DEPLOYMENT_URL $1; }
script:
- function exec_ssh () { ssh -o StrictHostKeyChecking=no $SSH_USER@$DEPLOYMENT_URL $1; }
- exec_ssh "docker login -u \"${CI_REGISTRY_USER}\" -p \"${CI_REGISTRY_PASSWORD}\" \"${CI_REGISTRY}\""
# ENV Docker Compose
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; echo 'DYNACONF_SQLALCHEMY_DATABASE_URI=postgresql://postgres:${POSTGRES_PASSWORD}@database/analytics-engine' > .env"
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; echo 'DYNACONF_CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis_db:6379/0' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; echo 'DYNACONF_CELERY_RESULT_BACKEND=redis://:${REDIS_PASSWORD}@redis_db:6379/1' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; echo 'DYNACONF_ANALYTICS_BACKEND_URL=http://scheduler:5000' >> .env"
# TODO fix backend url
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; echo 'DYNACONF_RIGHTS_ENGINE_BACKEND_URL=https://$URL' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; echo 'WEBSITE=analytics' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; echo 'URL=$DEPLOYMENT_URL' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; echo 'REDIS_PASSWORD=$REDIS_PASSWORD' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; echo 'POSTGRES_USER=postgres' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; echo 'POSTGRES_DATABASE=analytics-engine' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; echo 'POSTGRES_PASSWORD=$POSTGRES_PASSWORD' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; echo 'UID=$UID' >> .env"
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; echo 'GID=$GID' >> .env"
# Image Pull & Docker Restart
- exec_ssh "cd $BASE_DIR/$URL/analytics-engine; docker compose pull && docker compose down && docker compose up -d && sleep 30 && docker compose exec -it scheduler sh -c 'scheduler create-db' && docker compose exec -it scheduler sh -c 'scheduler read-configs'"
# Initale Datenbank
#- exec_ssh "sleep 30 && cd $BASE_DIR/deployment/rights-engine; docker compose exec -it backend sh -c 'python3 manage.py migrate && python3 manage.py loaddata fixtures/initial_db.json'"
# Mit Datenbank Flush
#- exec_ssh "sleep 30 && cd $BASE_DIR/deployment/rights-engine; docker compose exec -it backend sh -c 'python3 manage.py sqlflush | sed s/TRUNCATE/DROP\ TABLE\ IF\ EXISTS/g | python3 manage.py dbshell && echo DROP\ TABLE\ IF\ EXISTS\ django_migrations\; | python3 manage.py dbshell && python3 manage.py migrate && python3 manage.py loaddata fixtures/initial_db.json'"
# ohne Datenbank Flush
#- exec_ssh "sleep 30 && cd $BASE_DIR/deployment/rights-engine; docker compose exec -it backend sh -c 'python3 manage.py migrate"
deploy_mongodb:
stage: deploy
allow_failure: false
variables:
<<: *global-variables
DEPLOYMENT_URL: $URL
environment:
name: mongodb
url: $URL
before_script:
- echo "setting up ssh and rsync"
# Install ssh-agent if not already installed
- which ssh-agent || (apk --update add openssh-client rsync)
- eval `ssh-agent -s`
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- function exec_ssh () { ssh -o StrictHostKeyChecking=no $SSH_USER@$DEPLOYMENT_URL $1; }
script:
- function exec_ssh () { ssh -o StrictHostKeyChecking=no $SSH_USER@$DEPLOYMENT_URL $1; }
# ENV Docker Compose
- exec_ssh "cd $BASE_DIR/$URL/mongodb; echo 'MONGO_USER=root' > .env"
- exec_ssh "cd $BASE_DIR/$URL/mongodb; echo 'MONGO_PASSWORT=$MONGO_PASSWORT' >> .env"
# Image Pull & Docker Restart
- exec_ssh "cd $BASE_DIR/$URL/mongodb; docker compose pull && docker compose down && docker compose up -d"
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment