<?php

namespace neam\bootstrap;

// Expect the "paas" config
require dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'remote' . DIRECTORY_SEPARATOR . 'include.php';
// Add deployment-only overrides
$deploymentEnvPath = "deployments/" . Config::read("APPVHOST");
$_ENV['CONFIG_INCLUDE'] = "config/remote/include.php";
Config::expect("CONFIG_INCLUDE", $default = null, $required = true);
Config::expect("ENV", $default = $deploymentEnvPath, $required = false);
// Add config metadata
Config::expect("BRANCH_TO_DEPLOY", $default = null, $required = true);
Config::expect("PROJECT_GIT_REPO", $default = null, $required = true);
Config::expect("COMMITSHA", $default = null, $required = true);
// Loads sensitive (non-versioned) environment variables from .env to getenv(), $_ENV.
//\Dotenv::makeMutable();
//\Dotenv::load($project_root . '/' . $deploymentEnvPath);
// Include the secrets file containing non-versioned secrets
require getenv('BUILD_DIR') . DIRECTORY_SEPARATOR . 'deploy/config/secrets.php';
Example #2
0
<?php

/**
 * The main application config
 */
namespace neam\bootstrap;

// ==== Identity-related config ====
Config::expect("MAIL_SENDER_NAME", $default = "Foo Example App", $required = false);
Config::expect("MAIL_SENDER_EMAIL", $default = "*****@*****.**", $required = false);
// ==== Infrastructure-related config ====
// Since we define these as URLs
$_ENV["EXPAND_CONFIG_URLS"] = "1";
// Support setting main db constants based on DATABASE_URL environment variable
Config::expect("DATABASE_URL", $default = null, $required = false);
// Require setting smtp constants based on SMTP_URL environment variable
Config::expect("SMTP_URL", $default = null, $required = true);
// smtp://username:password@host:587?encryption=tls
// Sentry error reporting
Config::expect("SENTRY_DSN", $default = null, $required = true);
// Google Analytics ID
Config::expect("GA_TRACKING_ID", $default = null, $required = true);
// ==== Debug-related config ====
Config::expect("YII_DEBUG", $default = false);
Example #3
0
namespace neam\bootstrap;

// Required in order to prepare the deployment
Config::expect("BRANCH_TO_DEPLOY", $default = null, $required = true);
Config::expect("DRONE_BUILD_DIR", $default = null, $required = true);
// Affects the resulting deployment subdomain
Config::expect("DATA", $default = null, $required = true);
Config::expect("GRANULARITY", $default = "project-branch-specific", $required = false);
// Necessary to include in config since these are defined in secrets.php
Config::expect("DEVELOPMENT_GA_TRACKING_ID", $default = "UA-XXXXXX-X", $required = strpos(Config::read("BRANCH_TO_DEPLOY"), "release/") !== false);
Config::expect("PRODUCTION_GA_TRACKING_ID", $default = "UA-XXXXXX-X", $required = Config::read("BRANCH_TO_DEPLOY") === "master");
Config::expect("DEVELOPMENT_SMTP_HOST", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") !== "master");
Config::expect("DEVELOPMENT_SMTP_PORT", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") !== "master");
Config::expect("DEVELOPMENT_SMTP_USERNAME", $default = "", $required = false);
Config::expect("DEVELOPMENT_SMTP_PASSWORD", $default = "", $required = false);
Config::expect("DEVELOPMENT_SMTP_ENCRYPTION", $default = "", $required = false);
Config::expect("PRODUCTION_SMTP_HOST", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") === "master");
Config::expect("PRODUCTION_SMTP_PORT", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") === "master");
Config::expect("PRODUCTION_SMTP_USERNAME", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") === "master");
Config::expect("PRODUCTION_SMTP_PASSWORD", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") === "master");
Config::expect("PRODUCTION_SMTP_ENCRYPTION", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") === "master");
Config::expect("DEV_RDS_HOST", $default = "", $required = true);
Config::expect("PROD_RDS_HOST", $default = "", $required = true);
// Necessary only during build/deploy process (not by app itself) - thus we require it here, but not for setting app config
Config::expect("TUTUM_USER", $default = null, $required = true);
Config::expect("TUTUM_EMAIL", $default = null, $required = true);
Config::expect("TUTUM_PASSWORD", $default = null, $required = true);
Config::expect("TUTUM_APIKEY", $default = null, $required = true);
// Include the secrets file containing non-versioned secrets
require getenv('BUILD_DIR') . DIRECTORY_SEPARATOR . 'deploy/config/secrets.php';