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