forked from cccb-website-team/www
		
	
		
			
				
	
	
		
			93 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
stages:
 | 
						|
  - pages
 | 
						|
  - calendar
 | 
						|
  - deploy
 | 
						|
 | 
						|
cache:
 | 
						|
  paths:
 | 
						|
    - ~/.cache/pip/
 | 
						|
    - public/
 | 
						|
 | 
						|
variables:
 | 
						|
  GIT_SUBMODULE_STRATEGY: recursive
 | 
						|
 | 
						|
build_pages:
 | 
						|
  image: "golang:1.10-alpine3.8"
 | 
						|
  stage: pages
 | 
						|
  variables:
 | 
						|
    SHELL: "/bin/sh"
 | 
						|
  artifacts:
 | 
						|
    expire_in: "1 week"
 | 
						|
    untracked: true
 | 
						|
  script:
 | 
						|
    - rm -rf public/*
 | 
						|
    - apk add --no-cache --upgrade hugo
 | 
						|
    - hugo $(cat .hugo-params)
 | 
						|
 | 
						|
build_calendar:
 | 
						|
  image: "python:3.7-alpine3.8"
 | 
						|
  stage: calendar
 | 
						|
  dependencies: 
 | 
						|
    - build_pages
 | 
						|
  artifacts:
 | 
						|
    expire_in: "1 week"
 | 
						|
    untracked: true
 | 
						|
  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
 | 
						|
 | 
						|
deploy_staging:
 | 
						|
  image: "alpine:3.8"
 | 
						|
  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.54.164.87:staging
 | 
						|
  when: on_success
 | 
						|
  environment:
 | 
						|
    name: staging
 | 
						|
    url: https://staging.berlin.ccc.de/
 | 
						|
  artifacts:
 | 
						|
    expire_in: "1 week"
 | 
						|
    paths:
 | 
						|
      - public/
 | 
						|
  only:
 | 
						|
     - staging
 | 
						|
 | 
						|
deploy_production:
 | 
						|
  image: "alpine:3.8"
 | 
						|
  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.54.164.87:production
 | 
						|
  when: on_success
 | 
						|
  environment:
 | 
						|
    name: production
 | 
						|
    url: https://berlin.ccc.de/
 | 
						|
  artifacts:
 | 
						|
    expire_in: "1 week"
 | 
						|
    paths:
 | 
						|
      - public/
 | 
						|
  only:
 | 
						|
     - production
 | 
						|
 |