Ajout 736 CI/CD

This commit is contained in:
Mathieu Lagace
2019-08-04 19:10:08 -04:00
parent 818a84c3df
commit fd73dc388d
2 changed files with 81 additions and 25 deletions

View File

@@ -11,7 +11,8 @@ variables:
stages:
- test
- deploy
- deploy_697
- deploy_736
unit_test:
stage: test
@@ -21,7 +22,7 @@ unit_test:
- php artisan key:generate
deploy_production:
stage: deploy
stage: deploy_697
script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
@@ -29,10 +30,25 @@ deploy_production:
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- ~/.composer/vendor/bin/envoy run deploy --commit="$CI_COMMIT_SHA"
- ~/.composer/vendor/bin/envoy run deploy_697 --commit="$CI_COMMIT_SHA"
environment:
name: production
url: http://dev.exvps.ca
when: manual
name: 697
url: http://escadron697.ca
only:
- master
deploy_production:
stage: deploy_736
script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- ~/.composer/vendor/bin/envoy run deploy_736 --commit="$CI_COMMIT_SHA"
environment:
name: 697
url: http://736.exvps.ca
only:
- master

View File

@@ -2,43 +2,83 @@
@setup
$repository = 'git@gitlab.com:TheGamecraft/c-cms.git';
$releases_dir = '/var/www/c-cms/escadron697/releases';
$app_dir = '/var/www/c-cms/escadron697';
$release = date('YmdHis');
$new_release_dir = $releases_dir .'/'. $release;
$releases_dir_697 = '/var/www/c-cms/escadron697/releases';
$app_dir_697 = '/var/www/c-cms/escadron697';
$new_release_dir_697 = $releases_dir_697 .'/'. $release;
$releases_dir_736 = '/var/www/c-cms/escadron736/releases';
$app_dir_736 = '/var/www/c-cms/escadron736';
$new_release_dir_736 = $releases_dir_736 .'/'. $release;
@endsetup
@story('deploy')
clone_repository
run_composer
update_symlinks
@story('deploy_697')
clone_repository_697
run_composer_697
update_symlinks_697
@endstory
@task('clone_repository')
@story('deploy_736')
clone_repository_736
run_composer_736
update_symlinks_736
@endstory
@task('clone_repository_697')
echo 'Cloning repository'
[ -d {{ $releases_dir }} ] || mkdir {{ $releases_dir }}
git clone --depth 1 {{ $repository }} {{ $new_release_dir }}
cd {{ $new_release_dir }}
[ -d {{ $releases_dir_697 }} ] || mkdir {{ $releases_dir_697 }}
git clone --depth 1 {{ $repository }} {{ $new_release_dir_697 }}
cd {{ $new_release_dir_697 }}
git reset --hard {{ $commit }}
@endtask
@task('run_composer')
@task('run_composer_697')
echo "Starting deployment ({{ $release }})"
cd {{ $new_release_dir }}
cd {{ $new_release_dir_697 }}
composer install --prefer-dist --no-scripts -q -o
@endtask
@task('update_symlinks')
@task('update_symlinks_697')
echo "Linking storage directory"
rm -rf {{ $new_release_dir }}/storage
ln -nfs {{ $app_dir }}/storage {{ $new_release_dir }}/storage
rm -rf {{ $new_release_dir_697 }}/storage
ln -nfs {{ $app_dir_697 }}/storage {{ $new_release_dir_697 }}/storage
echo 'Linking .env file'
ln -nfs {{ $app_dir }}/.env {{ $new_release_dir }}/.env
ln -nfs {{ $app_dir_697 }}/.env {{ $new_release_dir_697 }}/.env
echo 'Linking current release'
ln -nfs {{ $new_release_dir }} {{ $app_dir }}/current
ln -nfs {{ $new_release_dir_697 }} {{ $app_dir_697 }}/current
echo 'Setting permission'
chmod -R 777 {{ $app_dir }}/current/bootstrap/
chmod -R 777 {{ $app_dir_697 }}/current/bootstrap/
@endtask
@task('clone_repository_736')
echo 'Cloning repository'
[ -d {{ $releases_dir_736 }} ] || mkdir {{ $releases_dir_736 }}
git clone --depth 1 {{ $repository }} {{ $new_release_dir_736 }}
cd {{ $new_release_dir_736 }}
git reset --hard {{ $commit }}
@endtask
@task('run_composer_736')
echo "Starting deployment ({{ $release }})"
cd {{ $new_release_dir_736 }}
composer install --prefer-dist --no-scripts -q -o
@endtask
@task('update_symlinks_736')
echo "Linking storage directory"
rm -rf {{ $new_release_dir_736 }}/storage
ln -nfs {{ $app_dir_736 }}/storage {{ $new_release_dir_736 }}/storage
echo 'Linking .env file'
ln -nfs {{ $app_dir_736 }}/.env {{ $new_release_dir_736 }}/.env
echo 'Linking current release'
ln -nfs {{ $new_release_dir_736 }} {{ $app_dir_736 }}/current
echo 'Setting permission'
chmod -R 777 {{ $app_dir_736 }}/current/bootstrap/
@endtask