Configure Gitlab CI for automatic deployment

This commit is contained in:
fnux 2020-01-17 21:19:12 +01:00
parent 908979dac2
commit e849682ab3
2 changed files with 44 additions and 2 deletions

39
.gitlab-ci.yml Normal file
View file

@ -0,0 +1,39 @@
stages:
- build
- deploy
image: debian:latest
variables:
BUILDDIR: "build/"
build:
stage: build
before_script:
- apt-get update
- apt-get install -y make lektor imagemagick
script:
- make build
artifacts:
expire_in: 12 hours
paths:
- "build/"
deploy:
stage: deploy
only:
- master
environment:
name: production
url: https://ungleich.ch/
before_script:
# Install dependencies
- apt-get update
- apt-get install -y make openssh-client rsync
# Configure the SSH Agent
- eval $(ssh-agent -s)
- echo "$CD_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- echo "$CD_SSH_SERVER_HOSTKEYS" > ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
script:
- make deploy

View file

@ -1,4 +1,4 @@
BUILDDIR=../ungleich-staticcms-build BUILDDIR?=../ungleich-staticcms-build
DESTINATION=ungleichstatic@staticweb.ungleich.ch:/home/services/www/ungleichstatic/staticcms.ungleich.ch/www/u/ DESTINATION=ungleichstatic@staticweb.ungleich.ch:/home/services/www/ungleichstatic/staticcms.ungleich.ch/www/u/
all: publish all: publish
@ -6,9 +6,12 @@ all: publish
pull: pull:
git pull git pull
publish: pull build permissions publish: pull build deploy
deploy: permissions
rsync -av --delete --exclude .lektor/ $(BUILDDIR)/u/ $(DESTINATION) rsync -av --delete --exclude .lektor/ $(BUILDDIR)/u/ $(DESTINATION)
rsync -av --delete $(BUILDDIR)/sitemap.xml $(DESTINATION) rsync -av --delete $(BUILDDIR)/sitemap.xml $(DESTINATION)
permissions: build permissions: build
find $(BUILDDIR) -type f -exec chmod 0644 {} \; find $(BUILDDIR) -type f -exec chmod 0644 {} \;
find $(BUILDDIR) -type d -exec chmod 0755 {} \; find $(BUILDDIR) -type d -exec chmod 0755 {} \;