98 lines
3.1 KiB
YAML
98 lines
3.1 KiB
YAML
---
|
|
- name: forgejo | Install the forgejo prerequisites
|
|
tags: ['git', 'forgejo']
|
|
block:
|
|
- name: forgejo | Install the required packages
|
|
ansible.builtin.package:
|
|
name: '{{ forgejo_required_packages + forgejo_required_packages_adjunct }}'
|
|
state: present
|
|
|
|
- name: forgejo | Create the git service user
|
|
ansible.builtin.user:
|
|
name: '{{ git_user }}'
|
|
group: '{{ git_group }}'
|
|
home: '{{ git_home }}'
|
|
createhome: true
|
|
shell: /bin/bash
|
|
system: true
|
|
when: git_create_service_user
|
|
|
|
- name: forgejo | Manage the forgejo directories
|
|
tags: ['forgejo']
|
|
block:
|
|
- name: forgejo | Create the forgejo work directory
|
|
ansible.builtin.file:
|
|
path: '{{ forgejo_work_dir }}'
|
|
state: directory
|
|
owner: '{{ git_user }}'
|
|
group: '{{ git_group }}'
|
|
mode: '0750'
|
|
|
|
- name: forgejo | Create the forgejo work subdirectories
|
|
ansible.builtin.file:
|
|
path: '{{ forgejo_work_dir }}/{{ item }}'
|
|
state: directory
|
|
owner: '{{ git_user }}'
|
|
group: '{{ git_group }}'
|
|
mode: '0750'
|
|
loop: '{{ forgejo_work_subdirs }}'
|
|
|
|
- name: forgejo | Create the forgejo configuration directory
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: '{{ forgejo_conf_dir }}'
|
|
state: directory
|
|
owner: root
|
|
group: '{{ git_group }}'
|
|
mode: '0770'
|
|
register: vars_folder_content
|
|
|
|
|
|
- name: forgejo | Install the forgejo binary
|
|
tags: ['forgejo', 'forgejo_binary']
|
|
block:
|
|
- name: forgejo | Download the forgejo binary
|
|
ansible.builtin.get_url:
|
|
url: '{{ forgejo_download_url }}'
|
|
dest: '{{ forgejo_bin_path }}'
|
|
force: '{{ forgejo_force_binary_download }}'
|
|
owner: root
|
|
group: root
|
|
mode: '0755'
|
|
notify: Restart forgejo
|
|
|
|
|
|
- name: forgejo | Add the app.ini file with the variables on vars/main
|
|
vars:
|
|
generated_vars_file: "{{ forgejo_role_path }}/vars/main.yml"
|
|
tags: ['forgejo','forgejo_conf']
|
|
become: true
|
|
block:
|
|
- name: forgejo | Check if the forgejo configuration directory exists
|
|
ansible.builtin.stat:
|
|
path: "{{ forgejo_conf_dir }}"
|
|
register: vars_folder_content
|
|
|
|
- name: forgejo |Check that vars/main.yml exists and is not empty
|
|
ansible.builtin.stat:
|
|
path: "{{ generated_vars_file }}"
|
|
register: vars_file_content
|
|
- name: forgejo |Create the app.ini files with our variables
|
|
ansible.builtin.template:
|
|
src: forgejo.ini.j2
|
|
dest: '{{ forgejo_app_file }}'
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
when: vars_folder_content.stat.exists and vars_file_content.stat.exists
|
|
|
|
- name: forgejo |Read the app.ini file content
|
|
ansible.builtin.slurp:
|
|
src: '{{ forgejo_app_file }}'
|
|
register: vars_app_file
|
|
|
|
- name: forgejo |Check if the '{{ forgejo_app_file }}' is empty
|
|
ansible.builtin.assert:
|
|
that:
|
|
- (vars_app_file.content | b64decode | trim | length) > 0
|
|
fail_msg: "The file {{ forgejo_app_file }} exists but it is empty" |