diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 5efce1f4f8c9c131a9cb974f732f9e7d85ec5786..0000000000000000000000000000000000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,161 +0,0 @@ -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