私は Laravel ワークフローに継続的インテグレーションを実装しています。基本的な作業を行っているときに、(1.) Laravel Envoys を使用してアプリのデプロイ方法に関連するタスクを記述し、(2.) Gitlab のサンプル プロジェクトに出くわしました。 Gitlab CI を使用してプロセスをブートストラップします。
少し混乱しました。Enovy を使用してタスクを定義する部分 (以下) は、.gitlab-ci.yml
ファイル内でジョブを定義するときに簡単に複製できるように思われます。これにより、Envoy の使用が冗長になります。
...
@setup
$repository = 'git@gitlab.example.com:<USERNAME>/laravel-sample.git';
$releases_dir = '/var/www/app/releases';
$app_dir = '/var/www/app';
$release = date('YmdHis');
$new_release_dir = $releases_dir .'/'. $release;
@endsetup
...
@task('update_symlinks')
echo "Linking storage directory"
rm -rf {{ $new_release_dir }}/storage
ln -nfs {{ $app_dir }}/storage {{ $new_release_dir }}/storage
echo 'Linking .env file'
ln -nfs {{ $app_dir }}/.env {{ $new_release_dir }}/.env
echo 'Linking current release'
ln -nfs {{ $new_release_dir }} {{ $app_dir }}/current
@endtask
...
私が間違っていたら誰かが私を訂正してくれたり、Envoy が Gitlab の継続的インテグレーション ワークフローにもたらすメリットを説明してくれたりしてくれたらありがたいです。