我正在将持续集成实现到我的 Laravel 工作流程中,在完成基本操作时,我在 Gitlab 上遇到了一个示例项目,其中 (1.) Laravel Envoys 用于编写与应用程序应如何部署相关的任务,然后 (2.)使用 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 持续集成工作流程带来什么好处,我将不胜感激。