热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通过持续交付通过GitLabCI部署Laravel应用程序时是否需要LaravelEnvoy?

如何解决《通过持续交付通过GitLabCI部署Laravel应用程序时是否需要LaravelEnvoy?》经验,为你挑选了1个好方法。

我正在将持续集成实现到我的Laravel工作流程中,并且在基本学习过程中,我在Gitlab上遇到了一个示例项目,其中(1.)Laravel Envoys用于编写与应用程序的部署方式有关的任务,然后与(2.)使用Gitlab CI引导过程。

我有些困惑,在我看来,使用Enovy定义任务的部分(波纹管)在定义.gitlab-ci.yml文件内的作业时很容易复制,这使Envoy的使用变得多余:

 ...

    @setup
        $repository = 'git@gitlab.example.com:/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 Continuous Integration工作流程带来的好处,我将不胜感激。



1> pft221..:

您是正确的,示例shell脚本可以轻松地在.gitlab-ci.yml文件或Envoy.blade.php文件中实现(因此,“否”,对于Laravel应用程序的gitlab-ci部署,Envoy并不是必需的。)我看到了用户可能选择选择以下三个主要原因在gitlab的Envoy中有其部署任务:

熟识

Laravel开发人员可能更熟悉Envoy用于部署的语言(PHP和Blade语法),而不是gitlab使用的语言(使用gitlab的管道语法进行Yaml格式化)。

保持不太熟悉的.gitlab-ci.yml文件简单,将复杂性增加到更熟悉的Envoy文件,可以节省开发人员的时间。

可移植性

一些开发人员可能希望选择在CI平台之间切换。通过使gitlab-ci文件保持简单并在Envoy文件中包含大量部署逻辑,开发人员可以切换到另一台CI服务器(如Jenkins),而无需重写部署代码。(或者,正如我所看到的那样,开发人员可能同时使用gitlab-ci和Jenkins来构建他们的软件。使用Envoy意味着两个CI平台之间有更多的共享代码。)

现有堆栈

Envoy Task Runner使用Laravel部署已经需要的软件(PHP和Composer。)另一方面,Gitlab要求在计算机上安装gitlab-runner才能进行部署。


推荐阅读
  • Linux是一套免费使用和***传播的类UNIX操作系统,主要用于基于Intel x86系列CPU的计算机上。Linux系统是由全世界各地的成千上万的程序员合适的方式定制自己的Li ... [详细]
  • Jenkins的分布式构建,在Jenkins的配置中叫做节点,分布式构建能够让同一套代码或项目在不同的环境(如:Windows和Linux系统)中编译、部署等。将jenkins项目 ... [详细]
  • php composer 安装,phpstudy  composer 使用安装
    本人是windows系统phpstudy是最新2018版本以安装laravel框架为例子一如图一,点击phpComposer出现系统指令框,根据指令框路 ... [详细]
  • 我使用Laravel5时遇到问题.当我运行“phparitsanmigrate”时,我收到了这个错误***************************************A ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 本文主要分享【kernelbase.dll】,技术文章【Kernel:XFS】为【mzhan017】投稿,如果你遇到kernel相关问题,本文相关知识或能到你。kernelbase.dll ... [详细]
  • 如何通过swoole加速laravel的问题?
    这篇文章主要介绍了关于如何使用swoole加速laravel,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下再来复习一下吧,导致php慢的各种因素中解析性语言的 ... [详细]
  • 1jdk去网站下载,然后拷贝到linux上;或直接wgethttp:download.oracle.comotn-pubjavajdk8u181-b1 ... [详细]
  • linux和jenkins的连接
    1.在浏览器中打开我们的jenkins页面。(http:ip:端口号jenkins)2.然后登陆管理员用户。3.配置节点信息1).点击【jenkins管理】【节点管理】【新建节 ... [详细]
  • Laravel 日志有时候有权限有时候没有权限?
    问题最近发现了一个问题,有时候程序中的日志,有时可有写的权限,有时候会报权限不足,然后进入服务器之后,再给把logs的写的权限给www,则可以执行,这种不确定性的因素让我很不安。进 ... [详细]
  • Jenkins教程:使用Jenkins进行持续集成
    【注】本文译自:https:www.edureka.coblogjenkins-tutorial本文将重点介绍Jenkins架构和Jenkins构建管道,并向您展示如何在Jenki ... [详细]
  • 文章目录UnsafeDeserialization反序列化漏洞背景认识Java序列化与反序列化用途应用场景Java中的API实现:序列化基础类型参数序列化对象漏洞是怎么来的呢?解决 ... [详细]
author-avatar
书友73892718
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有