miiimooo/dropcat

网站交付工具

安装: 33

依赖: 0

建议者: 0

安全性: 0

星星: 0

关注者: 1

分支: 0

开放问题: 0

类型:drupal-deploy-tool

2.0.4 2020-08-24 13:57 UTC

README

https://gitlab.wklive.net/wk-public/dropcat 分支

请阅读我们关于dropcat的博客系列

使用composer安装

composer require miiimooo/dropcat:dev-master

之后,你可以运行dropcat作为:vendor/bin/dropcat

全局安装(Mac/Linux)

对于此分支的dropcat | curl -L0 https://github.com/miiimooo/dropcat/releases/download/2.0.3/dropcat.phar -o /usr/local/bin/dropcat | chmod +x /usr/local/bin/dropcat | dropcat about

它做什么,为什么有人需要它?

历史上,我们在瑞典Wunderkraut(原名NodeOne)使用Jenkins和Aegir的组合来部署我们的网站。当我们开始开发Drupal 8网站时,Aegir还没有准备好,我们还想有一个更简单的部署工作流程,更适合我们的日常需求。因此,我们开始测试一些现有的工具,它们几乎适用于我们,但我们意识到,适应几乎适合我们的工具需要比开发自己的工具更长的时间。

Symfony

我们决定使用symfony组件来开发工具,因为Drupal已经使用了一些组件,因此它是一个很好的匹配。

不复制,重用

目标不是取代现有工具(完美或几乎完美)的目标,而是成为其他工具之间的粘合剂。因此,在我们的部署流程中,我们使用composer(而不是我们一直在瑞典Wunderkraut使用的drush make),dropcat和drush,以及jenkins(但我们也可以在本地运行部署,使用任何您想运行命令的工具,例如您的终端)。

封装drush,为什么?

一些命令只是drush的封装,例如dropcat backupdropcat site-install。我们使用dropcat作为封装,因为我们可以使用yaml文件中的变量以一致的方式。一些部分将来可以更改为封装drupal console,或者更改为使用我们自己定义的函数 - 理念是保持dropcat的一致性,但根据需要更改其构建方式。

命令

我们现在有一系列与dropcat一起使用的命令,我们将在不久的将来添加更多。

  • backup:将数据库备份到路径。
  • prepare:为主机和数据库创建drush别名。
  • tar:归档文件夹以供以后上传。
  • upload:将tar文件夹上传到目标。
  • move:解压缩tar文件夹并将其放在适当的位置。
  • symlink:创建指向目标文件夹的符号链接 - 用例可以是例如文件文件夹。
  • site-install:安装网站。
  • configimport:导入配置(drush config-import的封装)。
  • init:使用我们的模板创建具有配置文件的Drupal 8网站。
  • about:没有关于信息的终端应用吗?
  • jenkins-build:构建jenkins作业。

首先Drupal 8,然后7

此工具的第一个目标是部署Drupal 8网站,列表上还有部署Drupal 7网站,之后还可能部署其他类型的网站。“它只是不同语言的文件一堆”,正如一位著名的保加利亚网站开发者曾经说过!

运行它

dropcat backup 这将使用dropcat.yml中的默认设置。如果系统变量DROPCAT_ENV设置为dev,并且如果存在,则dropcat使用dropcat.dev.yml。配置yaml文件必须在运行dropcat的文件夹中。

针对不同任务的命令

要获取所有可能使用的任务的列表,请使用:dropcat list

要获取有关命令的帮助和命令的解释,请使用:dropcat help backup

从Jenkins运行Dropcat

我们使用Jenkins中的Dropcat,在一个执行过的shell中。在这个例子中,dropcat按照composer.json中的要求安装(默认放置在vednor/bin中)用于Drupal站点(还为此站点设置了drush别名

export DROPCAT_ENV=stage
export ENV=stage
export BUILD_DATE="$(date +"%Y%m%d")"

# got to application dir, that is our web folder
cd application

composer install

# only need to be runned once (creates drush alias on deploy server and database 
# on dbhost
dropcat prepare

dropcat tar --folder=${WORKSPACE}/application --temp-path=${WORKSPACE}/ -v
dropcat upload --tar_dir=${WORKSPACE}/
dropcat symlink
dropcat site-install
dropcat update

所有部署配置都在应用程序文件夹中的dropcat.stage.yml文件中。

配置示例

Dropcat至少需要一个运行目录下的dropcat.yml文件。示例可以在examples文件夹中找到。此外,开发环境和生产环境的示例也在该文件夹中。

PHPUnit测试示例

./phpunit 此文件指向composer安装的PHPUnit,并使用phpunit.xml中的设置运行。这将运行Tests文件夹中找到的所有测试。这也会运行代码覆盖率,以便您可以查看有多少代码已被测试。

免责声明

我们不保证这个工具会对您有效,您的网站可能会被它从轨道上摧毁,我们也不提供任何支持,但如果您在使用它时遇到问题,请创建一个issue。

打包

要创建phar发布: vendor/bin/box build