diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 876083889e4c04999741c27f96d13cd897aab10a..33dd5b7ce8e2d68da4154720560718138c797c18 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -91,17 +91,20 @@ deploy: image: docker.io/dokku/ci-docker-image:0.9.3 rules: !reference [.upstream-deploy-production-rules, rules] variables: + APP_NAME: spring-petclinic-rest GIT_DEPTH: "0" - GIT_REMOTE_URL: "ssh://dokku@dokku-ppl.cs.ui.ac.id:22/spring-petclinic-rest" + SSH_REMOTE: "ssh://dokku@dokku-ppl.cs.ui.ac.id:22" + GIT_REMOTE_URL: "$SSH_REMOTE/$APP_NAME" SSH_PRIVATE_KEY: $PRODUCTION_SSH_PRIVATE_KEY BRANCH: $CI_DEFAULT_BRANCH script: - dokku-deploy + - sh .gitlab/dokku-ci-post-deploy.sh after_script: - dokku-unlock environment: name: production - url: https://spring-petclinic-rest.dokku-ppl.cs.ui.ac.id + url: "https://$APP_NAME.dokku-ppl.cs.ui.ac.id" needs: - test dependencies: [] @@ -135,5 +138,3 @@ sonarqube-check: key: "${CI_JOB_NAME}" paths: - .sonar/cache - -# TODO: Add manual CI job to re-deploy or re-create the deployed app on Dokku PPL diff --git a/.gitlab/dokku-ci-post-deploy.sh b/.gitlab/dokku-ci-post-deploy.sh new file mode 100755 index 0000000000000000000000000000000000000000..2b776b01996b06a08f573b586d46428decab8973 --- /dev/null +++ b/.gitlab/dokku-ci-post-deploy.sh @@ -0,0 +1,11 @@ +#!/bin/sh -l +export CERT_PATH="/home/dokku/.local/share/certs/cert.pem" +export PRIVKEY_PATH="/home/dokku/.local/share/certs/privkey.pem" + +echo "⚙ Assigning certs at $CERT_PATH and $PRIVKEY_PATH to $APP_NAME ..." +ssh "$SSH_REMOTE" -- certs:add "$APP_NAME" "$CERT_PATH" "$PRIVKEY_PATH" || echo "Failed to assign certs" + +echo "⚙ Mapping $APP_NAME container port 9966 to HTTPS ..." +ssh "$SSH_REMOTE" -- ports:add "$APP_NAME" https:443:9966 || echo "Failed to map container port to HTTPS" + +echo "✅ Post-deploy configuration completed"