summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml47
-rw-r--r--config/config.default.php8
-rw-r--r--src/helpers.php15
-rw-r--r--tests/Unit/HelpersTest.php14
4 files changed, 80 insertions, 4 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 00000000..c44507b1
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,47 @@
+image: php
+
+cache:
+ paths:
+ - .composer
+
+services:
+ - mysql:5.6
+
+variables:
+ MYSQL_DATABASE: engelsystem
+ MYSQL_USER: engel
+ MYSQL_PASSWORD: engelsystem
+ COMPOSER_HOME: .composer
+ MYSQL_RANDOM_ROOT_PASSWORD: "yes"
+
+before_script:
+ # Install required Packages
+ - apt-get update -yqq
+ - apt-get install -yqq git unzip mysql-client
+ - docker-php-ext-install pdo pdo_mysql gettext
+ # Install xdebug
+ - pecl install xdebug
+ - docker-php-ext-enable xdebug
+ # MySQL DB
+ - mysql -h mysql -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE" < db/install.sql
+ - mysql -h mysql -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE" < db/update.sql
+ # Install Composer
+ - curl -sS https://getcomposer.org/installer | php -- --no-ansi --install-dir /usr/local/bin/ --filename composer
+ - /usr/local/bin/composer --no-ansi install
+
+.test_template: &test_definition
+ artifacts:
+ name: "${CI_JOB_NAME}_${CI_PROJECT_ID}_${PHP_VERSION}"
+ expire_in: 1 week
+ paths:
+ - ./coverage/
+ coverage: '/^\s*Lines:\s*(\d+(?:\.\d+)?%)/'
+ script: vendor/bin/phpunit --colors=never --coverage-text --coverage-html ./coverage/
+
+test:7.0:
+ image: php:7.0
+ <<: *test_definition
+
+test:7.1:
+ image: php:7.1
+ <<: *test_definition
diff --git a/config/config.default.php b/config/config.default.php
index c2d742ef..1bad9668 100644
--- a/config/config.default.php
+++ b/config/config.default.php
@@ -5,10 +5,10 @@
return [
// MySQL-Connection Settings
'database' => [
- 'host' => 'localhost',
- 'user' => 'root',
- 'pw' => '',
- 'db' => 'engelsystem',
+ 'host' => env('MYSQL_HOST', (env('CI', false) ? 'mysql' : 'localhost')),
+ 'user' => env('MYSQL_USER', 'root'),
+ 'pw' => env('MYSQL_PASSWORD', ''),
+ 'db' => env('MYSQL_DATABASE', 'engelsystem'),
],
// For accessing stats
diff --git a/src/helpers.php b/src/helpers.php
index c3c727ec..5a48498a 100644
--- a/src/helpers.php
+++ b/src/helpers.php
@@ -67,6 +67,21 @@ function config_path($path = '')
/**
* @param string $key
* @param mixed $default
+ * @return mixed
+ */
+function env($key, $default = null)
+{
+ $value = getenv($key);
+ if ($value === false) {
+ return $default;
+ }
+
+ return $value;
+}
+
+/**
+ * @param string $key
+ * @param mixed $default
* @return Request|mixed
*/
function request($key = null, $default = null)
diff --git a/tests/Unit/HelpersTest.php b/tests/Unit/HelpersTest.php
index d9782888..9ec824af 100644
--- a/tests/Unit/HelpersTest.php
+++ b/tests/Unit/HelpersTest.php
@@ -54,6 +54,20 @@ class HelpersTest extends TestCase
}
/**
+ * @covers \env
+ */
+ public function testEnv()
+ {
+ putenv('envTestVar=someContent');
+
+ $env = env('envTestVar');
+ $this->assertEquals('someContent', $env);
+
+ $env = env('someRandomEnvVarThatShouldNeverExist', 'someDefaultValue');
+ $this->assertEquals('someDefaultValue', $env);
+ }
+
+ /**
* @covers \request
*/
public function testRequest()