eureka/component-deployer 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

eureka/component-deployer

Composer 安装命令:

composer create-project eureka/component-deployer

包简介

PHP Installer & Deployer for projects based on Eureka Framework

README 文档

README

Current version Supported PHP version CI Quality Gate Status Coverage

PHP Installer & Deployer for projects based on Eureka Framework

Composer

composer require "eureka/component-deployer"

Usage

Symfony config for dependency injections in scripts

parameters:

  eureka.deployer.dir.src:  '/path/to/src'  # where the sources will be installed
  eureka.deployer.dir.www:  '/path/to/www'  # where the symlink on source will be put (link to use in apache/nginx conf)
  eureka.deployer.dir.conf: '/path/to/conf' # where the config with prod secrets are stored

  eureka.deployer.config:
    # Default values
    app.name:   '%app.name%'
    app.tag:    '%app.version%'
    app.domain: 'www.%app.name%.com'

    install:
      #~ Installation steps
      step.start: 0
      step.end:   100

      step.list:
        #~ 0: Start Install (defined in main installation script)
        #~ 1 to 9: reserved for deployed itself
        #~  1: Install composer
        #~  2: Copy secrets files

        #~ Setup some directories
        10: 'Install/Init/Directories'
        11: 'Install/Init/Symlink'

        #~ Yarn / npm
        40: 'Install/Yarn/Install'
        41: 'Install/Yarn/EncoreBuild'

        #~ Cleaning installation files
        70: 'Install/Clean/Files'

        #~ Composer cleaning & install no-dev
        #80: 'Install/Clean/Cache'

        #~ 90 to 99: reserved for deployed itself

        #~  98: Clean cache
        #~  99: Init directory again for production
        #~ 100: Ending installation (defined in main installation script)

      init:
        directories:
          'var/log':   777
          'var/cache': 777

        symlinks:
          '/path/to/upload/': 'web/upload'

      copy:
        #~ list of files to copy, with the format "from: to"
        files:
          '/path/to/conf/{platform}/{domain}/app.yaml':      'config/secrets/app.yaml'
          '/path/to/conf/{platform}/{domain}/database.yaml': 'config/secrets/database.yaml'

      clean:
        files:
          - '.gitignore'
          - 'composer.lock'
          - 'package.json'
          - 'README.md'
          - 'webpack.config.js'
          - 'yarn.lock'
          - 'yarn-error.log'

        directories:
          - 'assets/'
          - 'node_modules/'
          - 'sql/'


services:
  _defaults:
    autowire: true

  Eureka\Component\Deployer\:
    resource: '../../vendor/eureka/component-deployer/src/*'
    exclude:  '../../vendor/eureka/component-deployer/src/{Script}'

  Eureka\Component\Deployer\Script\:
    resource: '../../vendor/eureka/component-deployer/src/Script/*'
    public: true
    calls:
      - setPathBuilder: [ '@Eureka\Component\Deployer\Common\PathBuilder']
      - setRootDir:     [ '%kernel.directory.root%' ]
      - setConfig:      [ '%eureka.deployer.config%' ]

  Eureka\Component\Deployer\Common\PathBuilder:
    arguments:
      $pathSource: '%eureka.deployer.dir.src%'
      $pathLink:   '%eureka.deployer.dir.www%'

Console command (in you application)

~/my-app/$ bin/console deploy --help

Use    :
php  Eureka\Component\Deployer\Script\Deploy [OPTION]...
OPTIONS:
  -h,     --help                        Reserved - Display Help
  -p ARG, --platform=ARG                Platform where installation is executed (default: "prod")
  -t ARG, --tag=ARG                     Tag version to install (default from config or 1.0.0 if not defined in config)
  -d ARG, --domain=ARG                  Application domain (ie: www.my-app.com) (default from config)
  -n ARG, --name=ARG                    Application name, used to retrieve config (default from config)

Contributing

See the CONTRIBUTING file.

Install / update project

You can install project with the following command:

make install

And update with the following command:

make update

NB: For the components, the composer.lock file is not committed.

Testing & CI (Continuous Integration)

Tests

You can run unit tests (with coverage) on your side with following command:

make php/tests

You can run integration tests (without coverage) on your side with following command:

make php/integration

For prettier output (but without coverage), you can use the following command:

make php/testdox # run tests without coverage reports but with prettified output

Code Style

You also can run code style check with following commands:

make php/check

You also can run code style fixes with following commands:

make php/fix

Check for missing explicit dependencies

You can check if any explicit dependency is missing with the following command:

make php/deps

Static Analysis

To perform a static analyze of your code (with phpstan, lvl 9 at default), you can use the following command:

make php/analyse

To ensure you code still compatible with current supported version at Deezer and futures versions of php, you need to run the following commands (both are required for full support):

Minimal supported version:

make php/min-compatibility

Maximal supported version:

make php/max-compatibility

CI Simulation

And the last "helper" commands, you can run before commit and push, is:

make ci  

License

This project is currently under The MIT License (MIT). See LICENCE file for more information.

eureka/component-deployer 适用场景与选型建议

eureka/component-deployer 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 420 次下载、GitHub Stars 达 1, 最近一次更新时间为 2019 年 10 月 14 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 eureka/component-deployer 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 eureka/component-deployer 我们能提供哪些服务?
定制开发 / 二次开发

基于 eureka/component-deployer 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 420
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 13
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-10-14