kind: pipeline
name: default
type: docker

steps:
  - name: restore-cache
    privileged: true
    image: drillster/drone-volume-cache
    settings:
      restore: true
      mount:
        - ./.bundle
        - ./.yarn-cache
        - ./node_modules
    volumes:
      - name: cache
        path: /cache
  - name: build
    image: starefossen/ruby-node
    environment:
      BUNDLE_PATH: .bundle
    commands:
      - export LANG="C.UTF-8"
      - export LC_ALL="C.UTF-8"
      - ruby -e 'puts STDIN.external_encoding' # figure out the encoding used
      - bundle install
      - yarn config set cache-folder /cache/.yarn-cache
      - yarn global add gulp-cli
      - yarn install --frozen-lockfile
      - gulp build
  - name: rebuild-cache
    privileged: true
    image: drillster/drone-volume-cache
    settings:
      rebuild: true
      mount:
        - .bundle
        - .yarn-cache
        - ./node_modules
    volumes:
      - name: cache
        path: /cache
  - name: deploy
    image: drillster/drone-rsync
    settings:
      hosts: [ "wolf.uberspace.de" ]
      user: martens7
      source: /drone/src/_site/.
      target: ~/tmp/build
      recursive: true
      delete: true
      port: 22
      key:
        from_secret: rsync_key
      script:
        - shopt -s dotglob
        - rm -rf tmp/old.build
        - mkdir tmp/old.build
        - cp -r html/* tmp/old.build/
        - rm -rf html/*
        - cp -r tmp/build/* html/
        - rm -rf tmp/build
  - name: notify
    image: drillster/drone-email
    environment:
      EMAIL_USERNAME:
        from_secret: email_username
      EMAIL_PASSWORD:
        from_secret: email_password
    settings:
      host: howell.uberspace.de
      port: 587
      from: Drone <drone@2martens.de>
      secrets: [email_username, email_password]
    when:
      status: [ failure ]

volumes:
  - name: cache
    host:
      path: /var/lib/drone/cache


trigger:
  branch:
  - master
