Skip to content
Snippets Groups Projects
Commit 33534351 authored by Kwangjin Lee's avatar Kwangjin Lee
Browse files

Update .gitlab-ci.yml file

parent ad8c41a5
No related branches found
No related tags found
1 merge request!4Update 2 files
Pipeline #244986 failed
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
- apt-get update && apt-get install -y yq
build-page:
stage: build
script:
- >
if [ "$CI_COMMIT_BRANCH" = "publish" ]; then
./build_page.sh "/2024/" true
else
./build_page.sh "/2024/draft/" false
fi
- echo "Listing contents of public directory:"
- ls -laR public
artifacts:
paths:
- public
expire_in: 1 week
rules:
- if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "publish"
deploy-draft:
stage: deploy
needs: ["build-page"]
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
needs: ["build-page"]
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment