pagesjaunes / jarvis-ci
Vagrant、VirtualBox、Symfony 应用管理 PHP 开发栈:Nginx、PHP-FPM、Varnish。
Requires
- php: >=5.4.0
- clue/graph: 0.7.*
- gnugat/redaktilo: ^1.0
- guzzlehttp/guzzle: ~6.0
- hoa/console: ~2.0
- jakub-onderka/php-console-highlighter: 0.*
- jms/composer-deps-analyzer: 0.1.*
- kherge/amend: ~3.0
- monolog/monolog: ~1.12
- symfony/config: ~2.7
- symfony/console: ~2.7
- symfony/debug: ~2.7
- symfony/dependency-injection: ~2.7
- symfony/event-dispatcher: ~2.7
- symfony/filesystem: ~2.7
- symfony/finder: ~2.7
- symfony/monolog-bridge: ~2.7
- symfony/options-resolver: ~2.7
- symfony/process: ~2.7
- symfony/property-access: ~2.7
- symfony/var-dumper: ~2.7
- symfony/yaml: ~2.7
This package is not auto-updated.
Last update: 2024-09-28 18:05:15 UTC
README
管理虚拟机中 PHP 应用程序的最佳工具。
Jarvis 设计用于协助您开发 Symfony 应用程序,通过定义您在远程服务器上运行的常见任务。
Jarvis 旨在成为您的瑞士军刀,因此它采用模块化设计,具有多个子命令,以保持代码库易于管理和面向未来。
这是什么?
Jarvis 简化了使用 Vagrant 虚拟机开发 Symfony 应用程序。
开箱即用,应用程序可以执行许多出色的事情
composer
- composer:self-update
- composer:show
核心
- core:container:cache-clear
编辑器
- editor:config:install
项目
-
project:assets:build
-
project:assets:watch
-
project:composer:graph-dependencies
-
project:composer:graph-dependencies-pagesjaunes
-
project:composer:install
-
project:composer:update
-
project:composer:validate
-
project:config:add
-
project:config:show
-
project:cs:php
-
project:editor:open
-
project:git:clone
-
project:git:hooks:install
-
project:git:log
-
project:git:mergetool
-
project:git:pre-commit
-
project:git:status
-
project:git:update
-
project:lint:all
-
project:lint:php
-
project:lint:scss
-
project:lint:twig
-
project:lint:yaml
-
project:php:doc
-
project:php:metrics
-
project:symfony:cache:clear
-
project:symfony:debug:container
-
project:symfony:debug:event-dispatcher
-
project:symfony:debug:router
-
project:symfony:debug:translation
-
project:symfony:debug:twig
-
project:symfony:monitor:health
-
project:tests:all
-
project:tests:integration
-
project:tests:unit
vagrant
- vagrant:build
- vagrant:provision
- vagrant:restart
- vagrant:ssh
- vagrant:start
- vagrant:status
- vagrant:stop
虚拟机
- vm:php:extension:disable
- vm:php:extension:enable
- vm:service
- vm:service:nginx:restart
- vm:service:php_fpm:restart
- vm:service:varnish:restart
如何开始?
您可以使用以下三种方式之一使用 Jarvis
作为 Phar(推荐)
您可以下载一个作为 Phar 的即用型 Box 版本
$ curl -LSs http://pagesjaunes.github.io/jarvis/installer | php
该命令将检查您的 PHP 设置,警告您任何问题,并将其下载到当前目录。从那里,您可以将它放置在任何更容易访问的地方(例如 /usr/local/bin),并将其更改为 755。您甚至可以将其重命名为 jarvis,以避免每次都要输入 .phar 扩展名。
$ jarvis —version
每当应用程序发布新版本时,您只需运行更新命令即可获取最新版本
$ jarvis self-update
作为全局 composer 安装
当您以这种方式安装其他工具(如 phpunit)时,这可能是最佳方式
$ composer global require pagesjaunes/jarvis-ci --prefer-dist
请确保将 ~/.composer/vendor/bin 目录放在您的 PATH 中,以便在终端中运行 jarvis 命令时找到 jarvis 可执行文件。
作为 composer 依赖项
您还可以将 Jarvis 作为您的 Composer 管理项目的依赖项安装
$ composer require --dev pagesjaunes/jarvis
(或)
{ "require-dev": { "pagesjaunes/jarvis": "0.1" } }
一旦安装了应用程序,您可以通过运行帮助命令来获取有关所有可用命令的详细信息。这是您获取关于如何使用Jarvis信息的首选位置。您也可能在维基百科上找到其他有用的信息。如果您偶然发现可能对他人有用的信息,维基百科对所有贡献者开放。
$ jarvis help
管理Symfony项目
要开始,您可以查看Jarvis准备管理的示例应用程序。您的项目结构完全由您决定。Jarvis所需的所有内容是在您的项目目录根目录下有一个名为jarvis.yml的文件。您可以通过查看构建命令的帮助信息来找到完整的配置设置列表。
$ jarvis help project:add
工作目录
如果指定了选项 --working-dir (-d),则使用给定的目录作为工作目录。
示例工作目录
$ tree -L 1 . ├── README.md ├── assets ├── bin ├── build ├── config ├── jarvis (facultative for extending) ├── jarvis.yml ├── projects ├── provisioning (facultative) ├── vagrant ├── var └── vendor
示例内容文件 jarvis.yml
imports: - { resource: jarvis/config/services.xml } parameters: app.name: pj-jarvis vagrant_directory: "%working_dir%/vagrant" projects_config_file_path: "%working_dir%/config/projects.json" local_projects_root_dir: "%working_dir%/projects" editor_project_external_folders_config: - { name: "bundles", path: "%working_dir%/projects/bundles", follow_symlinks: "false" } - { name: "assets_common", path: "%working_dir%/assets/common", follow_symlinks: "false" } command.project.enabled: true command.editor.enabled: true command.project.build.enabled: true command.project.cs.enabled: true command.project.editor.enabled: true command.project.git.enabled: true command.project.php.enabled: true command.project.composer.enabled: true command.project.symfony.enabled: true command.project.symfony.assets.enabled: true command.project.test.enabled: true command.project.lint.enabled: true command.vagrant.enabled: true command.vm.enabled: true command.composer.enabled: true
示例内容文件 config/projects.json
{ "projects": { { "project_name": "symfony-distibution", "git_repository_url": "https://github.com/symfony/symfony-standard.git", "local_git_repository_dir": "%local_projects_root_dir%/webapps/%project_name%", "remote_git_repository_dir": "%remote_projects_root_dir%/webapps/%project_name%", "git_target_branch": "master", "remote_webapp_dir": "%remote_projects_root_dir%/webapps/%project_name%", "local_webapp_dir": "%local_projects_root_dir%/webapps/%project_name%", "remote_vendor_dir": "/home/vagrant/projects/%project_name%/vendor", "local_vendor_dir": "%local_vendor_root_dir%/%project_name%", "remote_symfony_console_path": "%remote_webapp_dir%/app/console", "remote_phpunit_configuration_xml_path": "%remote_webapp_dir%/app/phpunit.xml.dist" }, "sylius": { "project_name": "sylius", "git_repository_url": "https://github.com/Sylius/Sylius.git", "local_git_repository_dir": "%local_projects_root_dir%/webapps/%project_name%", "remote_git_repository_dir": "%remote_projects_root_dir%/webapps/%project_name%", "git_target_branch": "master", "remote_webapp_dir": "%remote_projects_root_dir%/webapps/%project_name%", "local_webapp_dir": "%local_projects_root_dir%/webapps/%project_name%", "remote_vendor_dir": "/home/vagrant/projects/%project_name%/vendor", "local_vendor_dir": "%local_vendor_root_dir%/%project_name%", "remote_symfony_console_path": "%remote_webapp_dir%/app/console", "remote_phpunit_configuration_xml_path": "%remote_webapp_dir%/app/phpunit.xml.dist" } } }
别名
示例
别名示例:alias example-jarvis="/usr/local/bin/jarvis --working-dir=/path/to/projects/socle"
自动完成
使用 core:autocomplete 命令启用 *~ / .bashrc* 中命令和选项的自动完成。
请注意,传递给 core:autocomplete 的参数用于指定要启用自动完成的别名。此外,自动完成取决于使用的工作目录。
source $(/usr/local/bin/jarvis core:autocomplete jarvis)
或
source $(/usr/local/bin/jarvis core:autocomplete --working-dir=/path/to/projects/socle example-jarvis)
许可证
贡献
您可以通过以下三种方式之一进行贡献
- 使用问题跟踪器提交错误报告。
- 在问题跟踪器上回答问题或修复错误。
- 贡献新功能或更新维基百科。
所有拉取请求都应提交到develop分支,以便在合并到master分支之前进行测试。
代码贡献过程并不非常正式。您只需确保遵循symfony编码规范。任何新的代码贡献都必须伴随相应的单元测试(如果适用)。