1
0
homelab/ansible/roles/hugo/tasks/main.yml

85 lines
2.3 KiB
YAML

---
- name: Combine default and user settings, decrypt vault.
ansible.builtin.set_fact:
hugo_settings: "{{ hugo_default_settings |
ansible.builtin.combine(hugo_settings, recursive=true) }}"
no_log: true
- name: Install hugo deb package from github.
ansible.builtin.apt:
deb: "https://github.com/gohugoio/hugo/releases/download\
/v{{ hugo_settings.version}}/\
hugo_{{ hugo_settings.version }}_linux-amd64.deb"
state: present
- name: Install dependencies using apt.
ansible.builtin.apt:
name: git
state: present
- name: Set hugo_source, hugo_compiled and hugo_deploy variables.
ansible.builtin.set_fact:
hugo_source: "{{ hugo_settings.homedir }}/src"
hugo_compiled: "{{ hugo_settings.homedir }}/compiled"
hugo_deploy: /var/www/hugo
- name: Clone hugo site git repository.
ansible.builtin.git:
clone: true
repo: "{{ hugo_settings.git_repo }}"
force: true
recursive: true
single_branch: true
depth: 1
dest: "{{ hugo_source }}"
version: "{{ hugo_settings.git_commit }}"
refspec: "{{ hugo_settings.git_refspec }}"
register: git_clone_result
- name: Create hugo site build directory.
ansible.builtin.file:
state: directory
owner: root
group: root
mode: "0755"
path: "{{ hugo_compiled }}"
- name: Compile and insatll.
when: git_clone_result.changed
block:
- name: Remove old compiled files.
ansible.builtin.file:
path: "{{ hugo_compiled }}"
state: absent
changed_when: false
- name: Build hugo site.
ansible.builtin.shell:
chdir: "{{ hugo_source }}"
cmd: "hugo -b {{ hugo_settings.base_url }} -d {{ hugo_compiled }}"
- name: Create hugo site deployment directory.
ansible.builtin.file:
state: directory
owner: root
group: root
mode: "0775"
path: "{{ hugo_deploy }}"
- name: Remove old deployed files.
ansible.builtin.file:
path: "{{ hugo_deploy }}"
state: absent
changed_when: false
- name: Install new program files.
ansible.builtin.copy:
remote_src: true
src: "{{ hugo_compiled }}/"
dest: "{{ hugo_deploy }}"
owner: root
group: root
mode: "0775"
changed_when: false