miiimooo / dropcat
网站交付工具
Requires
- php: ^7.3
- ext-phar: *
- composer/xdebug-handler: ^1.3
- guzzlehttp/guzzle: ^6.3
- ocramius/proxy-manager: 2.0.4
- padraic/phar-updater: ^1.0
- pear/archive_tar: ^1.4
- phpseclib/phpseclib: ^2.0
- symfony/config: ^3
- symfony/console: ^3
- symfony/dependency-injection: ^3
- symfony/event-dispatcher: ^3
- symfony/filesystem: ^3.4
- symfony/process: ^3
- symfony/proxy-manager-bridge: ^3
- symfony/swiftmailer-bundle: 2.6.7
- symfony/yaml: ^3
- t4web/composer-lock-parser: 1.0.3
- wkse/jenkins-php-api: ^0.1.13
Requires (Dev)
- kherge/box: ~2.0
- phpunit/phpunit: ^5.2
- dev-master
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.0.1
- 1.0.0
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-miiimooo-patch-1
- dev-no_cr_before_updb
- dev-drush-10
- dev-nuke-xdebug
- dev-generate-correct-memory-value
- dev-fix_memory_limit
- dev-memory_limit_etc
- dev-check-display-port
- dev-varnish_url_param_fix
- dev-dns
- dev-mixed_content_warning
- dev-simple
- dev-30-initdrupal-does-not-move-the-gitignore-from-web_init-to-current-dir
- dev-multi
- dev-rollbacks
- dev-WOPS-108
- dev-config-path-priority
- dev-site_factory
- dev-add-init-wp
- dev-move_command_keeptar
- dev-swith_boolean
- dev-move_backups_from_drush
- dev-dropcat-test-update
- dev-unified
- dev-WOPS-104
- dev-issue-28
- dev-WOPS-106
- dev-npm_install_dir_option
- dev-WOPS-73
- dev-WOPS-78
- dev-newrelic
- dev-WOPS-75
- dev-9-refactor-the-commands-as-lazy-loading-services
- dev-uploadscp
- dev-innovation-day
- dev-issue-14
- dev-issue-24
- dev-issue-17
- dev-sitefactory
This package is auto-updated.
Last update: 2024-09-24 22:32:56 UTC
README
从 https://gitlab.wklive.net/wk-public/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 backup
和dropcat 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