Add deployment playbook for docs site
This commit is contained in:
parent
af6c827125
commit
d697a50c1a
67
playbooks/deploy-docs.yml
Normal file
67
playbooks/deploy-docs.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
---
|
||||||
|
- hosts: nimbus-1.net.enp.one
|
||||||
|
name: Deploy documentation
|
||||||
|
vars:
|
||||||
|
# Local directory to use for cloning and building the documentation site
|
||||||
|
DIR_BUILD: /tmp/docs
|
||||||
|
# Remote directory to install the site at
|
||||||
|
DIR_DEPLOY: /usr/share/nginx/doc.enp.one/html
|
||||||
|
tasks:
|
||||||
|
- name: Build the static site locally
|
||||||
|
delegate_to: 127.0.0.1
|
||||||
|
block:
|
||||||
|
- name: Ensure the build directory does not exist
|
||||||
|
file:
|
||||||
|
path: "{{ DIR_BUILD }}"
|
||||||
|
state: absent
|
||||||
|
- name: Clone documentation repository
|
||||||
|
git:
|
||||||
|
repo: git@vcs.enp.one:omni/omni-docs.git
|
||||||
|
dest: "{{ DIR_BUILD }}/"
|
||||||
|
- name: Generate build env requirements file
|
||||||
|
# Generate the requirements.txt style format, pipe through grep to remove
|
||||||
|
# the index line (not sure why thats included at all tbh) and save the
|
||||||
|
# result in "requirements.txt" to usage with pip
|
||||||
|
shell: pipenv lock --requirements | grep --invert-match "\-i">requirements.txt
|
||||||
|
args:
|
||||||
|
chdir: "{{ DIR_BUILD }}/"
|
||||||
|
- name: Create build env and install requirements
|
||||||
|
pip:
|
||||||
|
requirements: "{{ DIR_BUILD }}/requirements.txt"
|
||||||
|
virtualenv: "{{ DIR_BUILD }}/venv"
|
||||||
|
virtualenv_python: python3
|
||||||
|
state: present
|
||||||
|
- name: Build the static site using mkdocs
|
||||||
|
shell: "{{ DIR_BUILD }}/venv/bin/mkdocs build"
|
||||||
|
args:
|
||||||
|
chdir: "{{ DIR_BUILD }}"
|
||||||
|
|
||||||
|
- name: Upload static site to remote
|
||||||
|
copy:
|
||||||
|
src: "{{ DIR_BUILD }}/site/"
|
||||||
|
dest: "/tmp/docs/"
|
||||||
|
- name: Remove legacy site
|
||||||
|
become: true
|
||||||
|
file:
|
||||||
|
path: "{{ DIR_DEPLOY }}"
|
||||||
|
state: absent
|
||||||
|
- name: Copy static site to deployment directory
|
||||||
|
become: true
|
||||||
|
copy:
|
||||||
|
src: "/tmp/docs/"
|
||||||
|
dest: "{{ DIR_DEPLOY }}"
|
||||||
|
remote_src: true
|
||||||
|
owner: root
|
||||||
|
group: nginx
|
||||||
|
mode: 0755
|
||||||
|
setype: httpd_sys_content_t
|
||||||
|
|
||||||
|
- name: Clean up local build directory
|
||||||
|
delegate_to: 127.0.0.1
|
||||||
|
file:
|
||||||
|
path: "{{ DIR_BUILD }}"
|
||||||
|
state: absent
|
||||||
|
- name: Clean up remote temp directory
|
||||||
|
file:
|
||||||
|
path: /tmp/docs
|
||||||
|
state: absent
|
Reference in New Issue
Block a user