179 lines
3.4 KiB
YAML
179 lines
3.4 KiB
YAML
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: CD
|
|
|
|
steps:
|
|
- name: restore cache node
|
|
image: drillster/drone-volume-cache
|
|
volumes:
|
|
- name: main-website-node
|
|
path: /cache/phundrak.com/node
|
|
settings:
|
|
restore: true
|
|
mount:
|
|
- ./node_modules
|
|
|
|
- name: restore cache emacs
|
|
image: drillster/drone-volume-cache
|
|
volumes:
|
|
- name: main-website-emacs
|
|
path: /cache/phundrak.com/emacs
|
|
settings:
|
|
restore: true
|
|
mount:
|
|
- /var/emacs
|
|
|
|
- name: generate emacs
|
|
image: silex/emacs:master-alpine
|
|
commands:
|
|
- mkdir -p /var/emacs
|
|
- apk update && apk add git
|
|
- emacs --init-directory=/var/emacs --script export.el
|
|
depends_on:
|
|
- "restore cache emacs"
|
|
|
|
- name: generate node
|
|
image: node:19-alpine
|
|
commands:
|
|
- yarn install
|
|
- yarn build
|
|
depends_on:
|
|
- "restore cache node"
|
|
- "generate emacs"
|
|
|
|
- name: rebuild cache emacs
|
|
image: drillster/drone-volume-cache
|
|
volumes:
|
|
- name: conlang-emacs
|
|
path: /cache/conlang/emacs
|
|
settings:
|
|
rebuild: true
|
|
mount:
|
|
- /var/emacs
|
|
depends_on:
|
|
- "generate emacs"
|
|
|
|
- name: rebuild cache node
|
|
image: drillster/drone-volume-cache
|
|
volumes:
|
|
- name: main-website-node
|
|
path: /cache/phundrak.com/node
|
|
settings:
|
|
rebuild: true
|
|
mount:
|
|
- ./node_modules
|
|
depends_on:
|
|
- "generate node"
|
|
|
|
- name: deploy web stable
|
|
image: appleboy/drone-scp
|
|
settings:
|
|
host:
|
|
from_secret: ssh_host
|
|
target:
|
|
from_secret: ssh_target
|
|
source: content/.vuepress/dist/*
|
|
strip_components: 3
|
|
username:
|
|
from_secret: ssh_username
|
|
password:
|
|
from_secret: ssh_password
|
|
port:
|
|
from_secret: ssh_port
|
|
depends_on:
|
|
- "generate node"
|
|
when:
|
|
branch:
|
|
- main
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: deploy gemini
|
|
image: appleboy/drone-scp
|
|
settings:
|
|
host:
|
|
from_secret: ssh_host
|
|
target:
|
|
from_secret: ssh_target_gemini
|
|
source: gemini/*
|
|
strip_components: 1
|
|
username:
|
|
from_secret: ssh_username
|
|
password:
|
|
from_secret: ssh_password
|
|
port:
|
|
from_secret: ssh_port
|
|
depends_on:
|
|
- "generate emacs"
|
|
when:
|
|
branch:
|
|
- main
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: purge cache stable
|
|
image: jetrails/drone-cloudflare-caching
|
|
settings:
|
|
api_token:
|
|
from_secret: cloudflare_cache_api
|
|
zone_identifier:
|
|
from_secret: phundrak_com_zone_id
|
|
action: purge_files
|
|
list:
|
|
- https://beta.phundrak.com
|
|
depends_on:
|
|
- "deploy web stable"
|
|
- "deploy gemini"
|
|
when:
|
|
branch:
|
|
- main
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: deploy web devel
|
|
image: appleboy/drone-scp
|
|
settings:
|
|
host:
|
|
from_secret: ssh_host
|
|
target:
|
|
from_secret: ssh_target_devel
|
|
source: content/.vuepress/dist/*
|
|
strip_components: 3
|
|
username:
|
|
from_secret: ssh_username
|
|
password:
|
|
from_secret: ssh_password
|
|
port:
|
|
from_secret: ssh_port
|
|
depends_on:
|
|
- "generate node"
|
|
when:
|
|
branch:
|
|
- devel
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: purge cache devel
|
|
image: jetrails/drone-cloudflare-caching
|
|
settings:
|
|
api_token:
|
|
from_secret: cloudflare_cache_api
|
|
zone_identifier:
|
|
from_secret: phundrak_com_zone_id
|
|
action: purge_files
|
|
list:
|
|
- https://alpha.phundrak.com
|
|
depends_on:
|
|
- "deploy web devel"
|
|
when:
|
|
branch:
|
|
- devel
|
|
event:
|
|
exclude:
|
|
- pull_request
|