External Environment Plugin for PHPCI
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.
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
- 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
- Create a environment file for your project on the server PHPCI is running on
- Ensure that the environment file is readable.
- 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')
\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"