Upgrade Your Drupal Skills
We trained 1,000+ Drupal Developers over the last decade.
See Advanced Courses NAH, I know EnoughDrupal 8 and GitLab CI setup guide
This script only runs when you commit to master.
You can fork this script here: https://gitlab.com/dx-experts/drupal-templates-for-gitlab-ci
# GitLab CI script for Drupal 8 websites.
# @see https://www.dx-experts.nl/blog/2018/drupal-8-and-gitlab-ci-setup-guide
# @see https://gitlab.com/dx-experts/drupal-templates-for-gitlab-ci
#
# This script deploys a Drupal 8 site on each commit on the master-branch.
#
# Preparation:
# Save $SSH_PRIVATE_KEY first in GitLab CI variables.
variables:
GIT_ROOT: "/var/www/my-website/"
SSH_LOGIN: "ssh -p22 -oStrictHostKeyChecking=no [email protected]"
DRUSH: "drush"
COMPOSER: "composer"
before_script:
# @see https://docs.gitlab.com/ee/ci/ssh_keys/
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
deploy_master:
when: always
only:
- master
script:
- $SSH_LOGIN "cd $GIT_ROOT && git fetch --tags"
- $SSH_LOGIN "cd $GIT_ROOT && git pull"
# Never blindly run composer update on the server: https://blog.martinhujer.cz/17-tips-for-using-composer-efficiently/
- $SSH_LOGIN "cd $GIT_ROOT && $COMPOSER install"
# Updates must be run before configuration is imported
# https://drupal.stackexchange.com/questions/188840/what-order-should-configuration-import-and-module-updates-be-run
- $SSH_LOGIN "cd $GIT_ROOT && $DRUSH updatedb -y"
- $SSH_LOGIN "cd $GIT_ROOT && $DRUSH config-import -y"
# (Additional) sanitizing tasks.
#- $SSH_LOGIN "cd $GIT_ROOT && $DRUSH locale:check"
#- $SSH_LOGIN "cd $GIT_ROOT; $DRUSH locale:update"
- $SSH_LOGIN "cd $GIT_ROOT && $DRUSH core-cron"
# You should consider fine-grained cache invalidation
# @see https://www.dx-experts.nl/blog/2017/drupal-8-development-caching
- $SSH_LOGIN "cd $GIT_ROOT && $DRUSH cache-rebuild -y"
What is happening???
Variables
GIT_ROOT variable: this is the folder where the Drupal website is installed on the hosting-server.
SSH_LOGIN variable is used as SSH login string.
-p22 is the ssh-portnumber (22 is default).
-oStrictHostKeyChecking=no disables the ‘trust this host’ question by default visible the first time one creates an ssh connection to a server.
Before script
See https://docs.gitlab.com/ee/ci/ssh_keys/
Basically, it assures that the SSH-agent and SSH_PRIVATE_KEY are available to the GitLab-CI runner.
About Drupal Sun
Drupal Sun is an Evolving Web project. It allows you to:
- Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
- Facet based on tags, author, or feed
- Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
- View the entire article text inline, or in the context of the site where it was created
See the blog post at Evolving Web