-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.gitlab-ci.yml
More file actions
44 lines (42 loc) · 1.76 KB
/
.gitlab-ci.yml
File metadata and controls
44 lines (42 loc) · 1.76 KB
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
39
40
41
42
43
image: debian:stable
deploy-to-server:
only:
- master
stage: deploy
variables:
REMOTE_HOST: gitlab-deployer@lorado.dev
DEPLOY_PATH: /var/www/lorado.dev/server
script:
- which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )
- eval $(ssh-agent -s)
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan lorado.dev > ~/.ssh/known_hosts
- echo "$DEPLOYER_SSH_KEY" | tr -d '\r' | ssh-add - > /dev/null
# create dist ordner
- mkdir dist
- mv app dist/app
- mv bootstrap dist/bootstrap
- mv config dist/config
- mv database dist/database
- mv public dist/public
- mv resources dist/resources
- mv routes dist/routes
- rm -rf storage/app
- mv storage dist/storage
- mv artisan dist/artisan
- mv composer.json dist/composer.json
- mv composer.lock dist/composer.lock
# start deploy
- export DEPLOY_TIME=$(TZ="Europe/Berlin" date +%Y-%m-%d_%H:%M:%S)
- export RELEASE_PATH=$DEPLOY_PATH/releases/$DEPLOY_TIME
- ssh $REMOTE_HOST "mkdir -p $RELEASE_PATH"
- scp -r dist/* "$REMOTE_HOST:$RELEASE_PATH"
- ssh $REMOTE_HOST "cd $RELEASE_PATH && ln -s ../../shared/.env .env"
- ssh $REMOTE_HOST "cd $RELEASE_PATH && ln -s ../../../shared/app storage/app"
- ssh $REMOTE_HOST "cd $RELEASE_PATH && composer install --optimize-autoloader --no-dev"
- ssh $REMOTE_HOST "cd $RELEASE_PATH && php artisan migrate --force"
- ssh $REMOTE_HOST "cd $DEPLOY_PATH/releases && ls -t | sed -e '1,10d' | xargs -d '\n' rm -rf"
- ssh $REMOTE_HOST "cd $DEPLOY_PATH && ln -nfs releases/$DEPLOY_TIME current_tmp && mv -fT current_tmp current"
- ssh $REMOTE_HOST "cd $RELEASE_PATH && php artisan cache:clear"
- ssh $REMOTE_HOST "cd $RELEASE_PATH && php artisan optimize"