Code Monkey home page Code Monkey logo

phpci-deployer's Introduction

PHPCI-Deployer

Plugin to use deployer (http://deployer.org/) with PHPCI

Configuration (PHPCI)

complete:
  # Class reference
  \UpAssist\PHPCI\Deployer\Plugin\Deployer:
    # Optional: add a deployFile parameter to point to a specific deploy.php file.
    # It will be copied to the root of your build folder so deployment can run.
    deployFile: 'My/DeploymentScripts/deploy_specific_for_x_type_of_projects.php'
    
    # Branch 'master'
    master:
      # Stage is optional: else the branchname will be used
      stage: test
      # Required
      server: test.domain.com
      # Required
      user: username
      # Required, no trailing slash
      deploy_path: /var/www/vhosts/test
      # Optional, array
      shared_dirs:
        - 'uploads'
      # Optional, array
      writable_dirs:
        - 'uploads'
    # Branch 'live'
    live:
      # Stage is optional: else the branchname will be used
      stage: production
      # Required
      server: domain.com
      # Required
      user: username
      # Required, no trailing slash
      deploy_path: /var/www/vhosts/production
      # Optional, array
      shared_dirs:
        - 'uploads'
      # Optional, array
      writable_dirs:
        - 'uploads'

If a branch is not defined, it will silently ignore the builds from that branch.

Deployer file example

server(getenv('STAGE'), getenv('SERVER'))
    ->user(getenv('USER'))
    ->env('deploy_path', getenv('DEPLOY_PATH'))
    ->env('branch', getenv('BRANCH'))
    ->env('local_release_path', __DIR__ . '/tmp/release/' . getenv('BUILD'))
    ->env('rsync_src', __DIR__ . '/tmp/release/' . getenv('BUILD'))
    ->env('rsync_dest', '{{release_path}}')
    ->stage(getenv('STAGE'))
    ->identityFile('~/.ssh/id_rsa.pub', '~/.ssh/id_rsa', '');

Variables that are sent as environment variables to the deploy.php

  • STAGE
  • SERVER
  • USER
  • DEPLOY_PATH
  • BRANCH
  • BUILD (the build id)
  • REPOSITORY
  • SHARED_DIRS
  • WRITABLE_DIRS

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.