Files
housesof/.drone.yml
Félix Péault 635b2290e8
Some checks failed
continuous-integration/drone/push Build is failing
Ignore failure when purging dev CDN
Might not exist all the time
2020-05-09 19:18:29 +02:00

180 lines
3.2 KiB
YAML

# DEPLOY
kind: pipeline
name: deploy
trigger:
status:
- success
event:
- push
steps:
#
# Restore cache (node_modules, build, etc)
#
- name: cache-restore
image: meltwater/drone-cache:dev
pull: true
volumes:
- name: cache
path: /tmp/cache
settings:
backend: "filesystem"
restore: true
cache_key: "volume"
archive_format: "gzip"
mount:
- "node_modules"
#
# Build Node.js app
#
- name: build-node
image: node:latest
commands:
- npm install -s
- npm run build
#
# Build the Docker image
#
# DEV
- name: build-docker-dev
image: docker:latest
volumes:
- name: docker_sock
path: /var/run/docker.sock
commands:
- docker build --pull --no-cache -t cetrucflotte/housesof:dev .
when:
branch:
- dev
# PROD
- name: build-docker-prod
image: docker:latest
volumes:
- name: docker_sock
path: /var/run/docker.sock
commands:
- docker build --pull --no-cache -t cetrucflotte/housesof:latest .
when:
branch:
- master
#
# Restart container
#
# DEV
- name: restart-container-dev
image: appleboy/drone-ssh
settings:
host: housesof.world
username:
from_secret: ssh_user
key:
from_secret: ssh_key
script:
- cd /data/sites/housesof.world/test
- docker-compose down
- docker-compose up -d --remove-orphans
when:
branch:
- dev
# PROD
- name: restart-container-prod
image: appleboy/drone-ssh
settings:
host: housesof.world
username:
from_secret: ssh_user
key:
from_secret: ssh_key
script:
- cd /data/sites/housesof.world/www
- docker-compose down
- docker-compose up -d --remove-orphans
when:
branch:
- master
#
# Purge CDN
#
# DEV
- name: cdn-purge-dev
image: plugins/webhook
settings:
urls:
from_secret: cdn_purgeurl_dev
headers:
from_secret: cdn_accesskey
method: POST
failure: ignore
when:
branch:
- dev
# PROD
- name: cdn-purge-prod
image: plugins/webhook
settings:
urls:
from_secret: cdn_purgeurl_prod
headers:
from_secret: cdn_accesskey
method: POST
when:
branch:
- master
#
# Rebuild cache
#
- name: cache-rebuild
image: meltwater/drone-cache:dev
pull: true
volumes:
- name: cache
path: /tmp/cache
settings:
backend: "filesystem"
rebuild: true
cache_key: "volume"
archive_format: "gzip"
mount:
- "node_modules"
#
# Notify (by Email)
#
- name: notify-email
image: drillster/drone-email
settings:
skip_verify: true
host: mail.flayks.com
username: admin@flayks.com
password:
from_secret: notify_email_password
from: admin@flayks.com
recipients:
- admin@flayks.com
recipients_only: true
# Mount cache volume
volumes:
- name: cache
host:
path: /var/lib/cache
- name: docker_sock
host:
path: /var/run/docker.sock