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.
Requires (Dev)
- mikey179/vfsstream: ~1
- phpunit/phpunit: ~4.0
README
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
- Navigate to your PHPCI root directory and run
composer require rephlux/phpci-external-env
- Update your
phpci.yml
in the project you want to deploy with
Prerequisites
- Create a environment file for your project on the server PHPCI is running on
- 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"