www/.gitlab-ci.yml

94 lines
2.1 KiB
YAML
Raw Normal View History

2018-08-15 00:49:40 +02:00
stages:
- pages
- calendar
- deploy
cache:
paths:
- ~/.cache/pip/
- public/
2018-08-15 00:49:40 +02:00
variables:
GIT_SUBMODULE_STRATEGY: recursive
build_pages:
image: "golang:1.10-alpine3.8"
2018-08-15 00:50:57 +02:00
stage: pages
2018-08-15 00:49:40 +02:00
variables:
SHELL: "/bin/sh"
2018-08-16 22:09:39 +02:00
artifacts:
2019-03-14 23:01:32 +01:00
expire_in: "1 week"
2018-08-16 22:09:39 +02:00
untracked: true
2018-08-15 00:49:40 +02:00
script:
- rm -rf public/*
2018-08-15 00:49:40 +02:00
- apk add --no-cache --upgrade hugo
2019-03-13 23:45:59 +01:00
- hugo $(cat .hugo-params)
2018-08-15 00:49:40 +02:00
build_calendar:
image: "3.11.1-alpine3.17"
2018-08-15 00:49:40 +02:00
stage: calendar
2018-08-16 22:09:39 +02:00
dependencies:
2018-08-16 22:11:01 +02:00
- build_pages
2018-08-16 22:09:39 +02:00
artifacts:
2019-03-14 23:01:32 +01:00
expire_in: "1 week"
2018-08-16 22:09:39 +02:00
untracked: true
2018-08-15 00:49:40 +02:00
variables:
SHELL: "/bin/sh"
script:
- apk --no-cache update
- pip install -r requirements.txt
- python tools/merge_cals.py
- cp static/all.ics public/all.ics
- upcoming="$(python tools/gen_upcoming.py static/all.ics 20 5|tr '\n' ' ')" && sed -i "s#CALENDAR#$upcoming#g" public/index.html
2018-08-15 00:49:40 +02:00
deploy_staging:
image: "alpine:3.17"
2018-08-15 00:49:40 +02:00
stage: deploy
2018-08-16 22:09:39 +02:00
dependencies:
2018-08-16 22:11:01 +02:00
- build_calendar
2018-08-15 00:49:40 +02:00
variables:
SHELL: "/bin/sh"
script:
2018-08-16 22:53:05 +02:00
- apk --no-cache --upgrade add openssh-client rsync
- mkdir -p ~/.ssh
- eval $(ssh-agent -s)
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
2018-08-16 22:57:53 +02:00
- echo "$PRIVATE_KEY" | ssh-add -
- rsync -e "ssh -l deploy -p 31337" -av --delete public/ 195.160.173.9:staging
2018-08-15 00:49:40 +02:00
when: on_success
environment:
name: staging
url: https://staging.berlin.ccc.de/
artifacts:
2019-03-14 23:01:32 +01:00
expire_in: "1 week"
2018-08-15 00:49:40 +02:00
paths:
- public/
only:
- staging
deploy_production:
image: "alpine:3.17"
stage: deploy
dependencies:
- build_calendar
variables:
SHELL: "/bin/sh"
script:
- apk --no-cache --upgrade add openssh-client rsync
- mkdir -p ~/.ssh
- eval $(ssh-agent -s)
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
- echo "$PRIVATE_KEY" | ssh-add -
- rsync -e "ssh -l deploy -p 31337" -av --delete public/ 195.160.173.9:production
when: on_success
environment:
name: production
url: https://berlin.ccc.de/
artifacts:
2019-03-14 23:01:32 +01:00
expire_in: "1 week"
paths:
- public/
only:
2018-08-16 23:42:37 +02:00
- production
2018-08-15 00:49:40 +02:00