diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2017-10-22 17:04:07 +0200 |
---|---|---|
committer | Igor Scheller <igor.scheller@igorshp.de> | 2017-10-29 11:16:36 +0100 |
commit | fb05a38a963784716c105e7f214615ad13d2f272 (patch) | |
tree | 3a1e45b88167ecdb2c1efeb913c1b2c38353dff3 | |
parent | 48176588627133d7967310f007248b0701007214 (diff) |
Added deploy to staging
-rw-r--r-- | .gitlab-ci.yml | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c44507b1..1cc9797b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,9 +15,12 @@ variables: 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-get update -yqq - - apt-get install -yqq git unzip mysql-client + - apt update -yqq + - apt install -yqq git unzip mysql-client - docker-php-ext-install pdo pdo_mysql gettext # Install xdebug - pecl install xdebug @@ -45,3 +48,43 @@ test:7.0: 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 + " |