diff options
author | msquare <msquare@notrademark.de> | 2017-11-12 13:25:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-12 13:25:56 +0100 |
commit | ebc973bf221bfbde327868975221e62704e4cb99 (patch) | |
tree | 9011a160f3d6f9cae37fc02836e7d6e8c25242ca /.gitlab-ci.yml | |
parent | 801c17aa6cef91be988a25a90442be8d2078a70d (diff) | |
parent | ad948bdd3201e922b626a736b0122533bdd37cae (diff) |
Merge pull request #349 from MyIgel/master
Changed container to Illuminate/Container and added service providers
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..1cc9797b --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,90 @@ +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: + # 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 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 + +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 + " |