summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authormsquare <msquare@notrademark.de>2017-11-28 15:43:51 +0100
committerGitHub <noreply@github.com>2017-11-28 15:43:51 +0100
commit599f2fd264bfc7b1b6826fe206442806e317340f (patch)
tree50cf84d7d07d11bd65b45c2c17f37632f6cd8eff /.gitlab-ci.yml
parenta5fc5bd0979e8de1fce8a8addd351a6e7bd6aeb8 (diff)
parenteda7f7788ea8012bd8be46405c56a666c11f3fa5 (diff)
Merge pull request #365 from engelsystem/feature-igel-rewrite
Feature igel rewrite
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml91
1 files changed, 91 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 00000000..6dde2330
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,91 @@
+image: php
+
+cache:
+ paths:
+ - .composer
+
+services:
+ - mariadb:10.2
+
+variables:
+ MYSQL_DATABASE: engelsystem
+ MYSQL_USER: engel
+ MYSQL_PASSWORD: engelsystem
+ MYSQL_HOST: mariadb
+ COMPOSER_HOME: .composer
+ MYSQL_RANDOM_ROOT_PASSWORD: "yes"
+
+before_script:
+ # Fix permissions after gitlab messed them up
+ - find . -type f -exec chmod 644 {} \;
+ - find . -type d -exec chmod 755 {} \;
+ # Install required Packages
+ - apt update -yqq
+ - apt install -yqq git unzip mariadb-client
+ - docker-php-ext-install pdo pdo_mysql gettext
+ # Install xdebug
+ - pecl install xdebug
+ - docker-php-ext-enable xdebug
+ # MySQL DB
+ - mysql -h "$MYSQL_HOST" -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE" < db/install.sql
+ - mysql -h "$MYSQL_HOST" -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
+
+deploy_staging:
+ stage: deploy
+ only:
+ - master
+ script:
+ - |-
+ if [ -z "${SSH_PRIVATE_KEY}" ] || [ -z "${REMOTE}" ] || [ -z "${REMOTE_PATH}" ]; then
+ echo "Skipping deployment";
+ exit
+ fi
+ - mkdir -p ~/.ssh
+ - echo "$SSH_PRIVATE_KEY" | sed -e 's/\r//g' > ~/.ssh/id_ed25519
+ - chmod 600 ~/.ssh/id_ed25519
+ - apt update && apt install -yqq rsync openssh-client
+ - /usr/local/bin/composer --no-ansi install --no-dev
+ - /usr/local/bin/composer --no-ansi dump-autoload --optimize
+ - echo "syncing ${PWD}/ to ${REMOTE}:${REMOTE_PATH}/${CI_JOB_ID}-${CI_COMMIT_SHA}/"
+ - |-
+ rsync -vAax --exclude '.git*' --exclude .composer/ \
+ -e "ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
+ ./ "${REMOTE}:${REMOTE_PATH}/${CI_JOB_ID}-${CI_COMMIT_SHA}/"
+ - |-
+ ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${REMOTE}" "
+ set -e
+
+ if [[ -f \"${REMOTE_PATH}/current/config/config.php\" ]]; then
+ echo \"Config backup\"
+ cp \"${REMOTE_PATH}/current/config/config.php\" config.php
+ fi
+
+ echo \"Changing symlink\"
+ unlink \"${REMOTE_PATH}/current\"
+ ln -s \"${REMOTE_PATH}/${CI_JOB_ID}-${CI_COMMIT_SHA}\" \"${REMOTE_PATH}/current\"
+
+ if [[ -f config.php ]]; then
+ echo \"Restoring config\"
+ cp config.php \"${REMOTE_PATH}/current/config/config.php\"
+ fi
+ "