rephlux/phpci-external-env

A PHPCI plugin to copy an environment configuration file to the build path

This package's canonical repository appears to be gone and the package has been frozen as a result.

0.2.0 2016-03-16 20:05 UTC

This package is auto-updated.

Last update: 2023-01-09 12:48:01 UTC


README

Build Status Latest Stable Version License

A plugin for PHPCI to copy an external environment file (e.g. .env environment file used in a Laravel Application) to the appropriate build directory.

Initial Situation

When committing a application to a VCS, it is a common nature, not to include any sensitive data like database passwords within the application configuration files (e.g. .env, phpci.yml, phpunit.xml).

This plugins copies an environment file, located on the server PHPCI is running on, to the appropriate build directory. With that approach, there is no need to include any sensitive data in the application releated files.

Each branch in the VCS can be configured separately to support different settings for each branch:

  • master branch -> production settings
  • development branch -> stage settings

Install the Plugin

  1. Navigate to your PHPCI root directory and run composer require rephlux/phpci-external-env
  2. Update your phpci.yml in the project you want to deploy with

Prerequisites

  1. Create a environment file for your project on the server PHPCI is running on
  2. Ensure that the environment file is readable.

Plugin Options

  • branch [array] - The specific branch for the project
    • env [string] - The path to the env file
    • path [string, optional] - The path to the destination filename relative to the appropriate build directory (default: '.env')

PHPCI Config

\Rephlux\PHPCI\Plugin\ExternalEnvironment:
    <branch>:
        env: <path_to_env_file>
        path: <path_to_destination_filename>

example:

setup:
    \Rephlux\PHPCI\Plugin\ExternalEnvironment:
        master:
            env: "/usr/www/phpci/.env/laravel-application-production.env"
        development:
            env: "/usr/www/phpci/.env/laravel-application-stage.env"