119 lines
2.4 KiB
YAML
119 lines
2.4 KiB
YAML
---
|
|
kind: pipeline
|
|
name: generate-blog
|
|
|
|
clone:
|
|
depth: 1
|
|
|
|
steps:
|
|
- name: update-submodules
|
|
image: alpine/git
|
|
commands:
|
|
- git submodule update --init --recursive
|
|
|
|
- name: generate-blog
|
|
image: plugins/hugo
|
|
settings:
|
|
hugo_version: 0.84.4
|
|
validate: true
|
|
pull: always
|
|
|
|
- name: clean-up-images
|
|
image: alpine
|
|
commands:
|
|
- rm -rf public/images/*
|
|
|
|
- name: test-build-container
|
|
image: plugins/docker
|
|
settings:
|
|
registry: scm.project42.io
|
|
username:
|
|
from_secret: registry_username
|
|
password:
|
|
from_secret: registry_password
|
|
repo: scm.project42.io/elia/blog
|
|
dry_run: true
|
|
squash: true
|
|
tags:
|
|
- "${DRONE_COMMIT_SHA:0:8}"
|
|
|
|
- name: build-container
|
|
image: plugins/docker
|
|
settings:
|
|
registry: scm.project42.io
|
|
username:
|
|
from_secret: registry_username
|
|
password:
|
|
from_secret: registry_password
|
|
repo: scm.project42.io/elia/blog
|
|
dry_run: false
|
|
squash: true
|
|
tags:
|
|
- latest
|
|
- "${DRONE_COMMIT_SHA:0:8}"
|
|
when:
|
|
event:
|
|
- promote
|
|
target:
|
|
- production
|
|
|
|
---
|
|
kind: pipeline
|
|
name: deploy-blog
|
|
|
|
clone:
|
|
depth: 1
|
|
|
|
steps:
|
|
- name: syntax-check
|
|
image: plugins/ansible:latest
|
|
settings:
|
|
playbook: ansible/site.yml
|
|
inventory: ansible/inventory/hcloud.yml
|
|
requirements: ansible/requirements.txt
|
|
tags: blog
|
|
check: true
|
|
diff: true
|
|
syntax_check: true
|
|
extra_vars: "blog_container_tag=${DRONE_COMMIT_SHA:0:8}"
|
|
environment:
|
|
HCLOUD_TOKEN:
|
|
from_secret: hcloud_token
|
|
|
|
- name: dry-run
|
|
image: plugins/ansible:latest
|
|
settings:
|
|
playbook: ansible/site.yml
|
|
inventory: ansible/inventory/hcloud.yml
|
|
requirements: ansible/requirements.txt
|
|
tags: blog
|
|
check: true
|
|
diff: true
|
|
syntax_check: false
|
|
extra_vars: "blog_container_tag=${DRONE_COMMIT_SHA:0:8}"
|
|
environment:
|
|
HCLOUD_TOKEN:
|
|
from_secret: hcloud_token
|
|
|
|
- name: deploy
|
|
image: plugins/ansible:latest
|
|
settings:
|
|
playbook: ansible/site.yml
|
|
inventory: ansible/inventory/hcloud.yml
|
|
requirements: ansible/requirements.txt
|
|
tags: blog
|
|
check: false
|
|
diff: true
|
|
syntax_check: false
|
|
extra_vars: "blog_container_tag=${DRONE_COMMIT_SHA:0:8}"
|
|
environment:
|
|
HCLOUD_TOKEN:
|
|
from_secret: hcloud_token
|
|
when:
|
|
event:
|
|
- promote
|
|
target:
|
|
- production
|
|
|
|
depends_on:
|
|
- generate-blog
|