-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
38 lines (35 loc) · 1.2 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
stages:
- deploy
- rollback
before_script:
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY" | base64 -d)
- mkdir -p ~/.ssh
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
- export DIR=$(date +%Y%m%d_%H%M%S)
deploy_server1:
stage: deploy
environment:
name: server1
url: $SERVER1
script:
- ssh $SSH_USER@$SERVER1 "cd /var/www/demo &&
git clone https://github.com/otusteamedu/symfony-deploy-2024-11.git $DIR &&
sudo chown www-data:www-data $DIR -R &&
cd $DIR &&
sh ./deploy.sh $SERVER1 $DATABASE_HOST $DATABASE_USER $DATABASE_PASSWORD $DATABASE_NAME $RABBITMQ_HOST $RABBITMQ_USER $RABBITMQ_PASSWORD &&
cd .. &&
rm -rf /var/www/demo/$DIR/var/log &&
ln -s /var/www/demo/shared/log /var/www/demo/$DIR/var/log &&
( [ ! -d /var/www/demo/current ] || mv -Tf /var/www/demo/current /var/www/demo/previous ) &&
ln -s /var/www/demo/$DIR /var/www/demo/current"
only:
- main
rollback:
stage: rollback
script:
- ssh $SSH_USER@$SERVER1 "unlink /var/www/demo/current &&
mv -Tf /var/www/demo/previous /var/www/demo/current &&
cd /var/www/demo/current &&
sh ./rollback.sh $SERVER1"
when: manual