From 1a3cd157baaf04c6cc2a60b942fc5be7ac161e55 Mon Sep 17 00:00:00 2001
From: Kwangjin Lee <k.lee-5@student.tudelft.nl>
Date: Thu, 22 Aug 2024 15:05:45 +0200
Subject: [PATCH] Update .gitlab-ci.yml file

---
 .gitlab-ci.yml | 95 ++++++++++++++++++++++++++++----------------------
 1 file changed, 54 insertions(+), 41 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 22581ec..2d1412e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,51 +1,64 @@
-image: alpine:latest
+image: ruby:latest
 
 stages:
+  - build
   - deploy
 
-deploy-to-2024-website:
+variables:
+  GEM_HOME: $CI_PROJECT_DIR/vendor/bundle
+
+cache:
+  paths:
+    - vendor/bundle
+
+before_script:
+  - bundle config set --local path 'vendor/bundle'
+  - bundle install
+
+build:
+  stage: build
+  script:
+    - JEKYLL_ENV=production bundle exec jekyll build --destination public
+  artifacts:
+    paths:
+      - public
+
+deploy-draft:
+  stage: deploy
+  rules:
+    - if: $CI_COMMIT_BRANCH == "main"
+  script:
+    - |
+      curl -X POST https://mude.citg.tudelft.nl/hooks/website-deploy-draft \
+        -H "Content-Type: application/json" \
+        -H "X-Gitlab-Token: glpat-sQ82fiSMo1kCi2TpgSfr" \
+        -d '{
+          "object_kind": "pipeline",
+          "object_attributes": {
+            "status": "success",
+            "ref": "main"
+          }
+        }'
+  environment:
+    name: draft
+    url: https://mude.citg.tudelft.nl/2024/draft
+
+deploy-production:
   stage: deploy
   rules:
-    - if: $CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "push"
-  before_script:
-    # Install rsync and SSH client, set up SSH agent, and configure SSH
-    - apk update && apk add --no-cache rsync openssh
-    - eval $(ssh-agent -s)
-    - echo "$MUDE_DEPLOYER_SSH_KEY" | tr -d '\r' | ssh-add -
-    - mkdir -p ~/.ssh
-    - chmod 700 ~/.ssh
-    - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
+    - if: $CI_COMMIT_BRANCH == "publish"
   script:
-    # Debug information: show current directory and list files
-    - 'echo "Current directory: $PWD"'
-    - ls -la
-    # Create and set permissions on the target directory on the remote server
-    - ssh $MUDE_SERVER_USER@$MUDE_SERVER_ADDRESS "sudo mkdir -p /var/web_server/htdocs/2024-website"
-    - ssh $MUDE_SERVER_USER@$MUDE_SERVER_ADDRESS "sudo chown -R $MUDE_SERVER_USER:$MUDE_SERVER_USER /var/web_server/htdocs/2024-website"
-    # Sync files to the remote server, excluding unnecessary directories
-    - rsync -avz --delete-after --exclude=".git/" --exclude=".cache/" ./ $MUDE_SERVER_USER@$MUDE_SERVER_ADDRESS:/var/web_server/htdocs/2024-website/
-    # Install Jekyll and build the site on the remote server
     - |
-      ssh $MUDE_SERVER_USER@$MUDE_SERVER_ADDRESS "
-        # Update package lists
-        sudo apt-get update
-        # Install Ruby and other dependencies
-        sudo apt-get install -y ruby-full build-essential zlib1g-dev
-        # Set up Ruby Gems to install to the user's home directory
-        echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
-        echo 'export GEM_HOME=\"\$HOME/gems\"' >> ~/.bashrc
-        echo 'export PATH=\"\$HOME/gems/bin:\$PATH\"' >> ~/.bashrc
-        source ~/.bashrc
-        # Install Jekyll and Bundler
-        gem install jekyll bundler
-        # Navigate to the project directory and build the site
-        cd /var/web_server/htdocs/2024-website
-        bundle install
-        JEKYLL_ENV=production bundle exec jekyll build --destination _site
-        # Ensure correct permissions for the _site directory
-        sudo chown -R $MUDE_SERVER_USER:$MUDE_SERVER_USER _site
-        sudo chmod -R 755 _site
-      "
+      curl -X POST https://mude.citg.tudelft.nl/hooks/website-deploy \
+        -H "Content-Type: application/json" \
+        -H "X-Gitlab-Token: glpat-sQ82fiSMo1kCi2TpgSfr" \
+        -d '{
+          "object_kind": "pipeline",
+          "object_attributes": {
+            "status": "success",
+            "ref": "publish"
+          }
+        }'
   environment:
     name: production
-    url: https://mude.citg.tudelft.nl/2024-website
\ No newline at end of file
+    url: https://mude.citg.tudelft.nl/2024
\ No newline at end of file
-- 
GitLab