105 lines
No EOL
2.6 KiB
YAML
105 lines
No EOL
2.6 KiB
YAML
- name: ensure required packages for forgejo is present
|
|
ansible.builtin.apt:
|
|
pkg:
|
|
- git
|
|
- rsync
|
|
state: present
|
|
# using generous time because unattended upgrades will keep packages updated.
|
|
cache_valid_time: 604800
|
|
|
|
- name: check if Forgejo is installed
|
|
shell: /usr/local/bin/forgejo --version | awk '{print $3}' | sed 's/\+/-/g'
|
|
register: forgejo_found_version
|
|
changed_when: false
|
|
|
|
- name: download forgejo (arm)
|
|
get_url:
|
|
url: "https://codeberg.org/forgejo/forgejo/releases/download/v{{ forgejo_version }}/forgejo-{{ forgejo_version }}-linux-arm64"
|
|
dest: /usr/local/bin/forgejo
|
|
checksum: "{{ forgejo_checksum_arm64 }}"
|
|
when:
|
|
- ansible_architecture == 'aarch64'
|
|
- forgejo_version != forgejo_found_version.stdout
|
|
notify: restart forgejo
|
|
|
|
- name: download forgejo (x86_64)
|
|
get_url:
|
|
url: "https://codeberg.org/forgejo/forgejo/releases/download/v{{ forgejo_version }}/forgejo-{{ forgejo_version }}-linux-amd64"
|
|
dest: /usr/local/bin/forgejo
|
|
checksum: "{{ forgejo_checksum_amd64 }}"
|
|
when:
|
|
- ansible_architecture == 'x86_64'
|
|
- forgejo_version != forgejo_found_version.stdout
|
|
notify: restart forgejo
|
|
|
|
- name: set correct rights on forgejo executable
|
|
file:
|
|
path: /usr/local/bin/forgejo
|
|
mode: '0755'
|
|
|
|
- name: create a git user responsible for forgejo
|
|
user:
|
|
comment: "user responsible for forgejo"
|
|
system: yes
|
|
password: "!"
|
|
shell: /bin/bash
|
|
state: present
|
|
name: git
|
|
create_home: yes
|
|
|
|
- name: create data folders required by forgejo
|
|
file:
|
|
path: '{{ item }}'
|
|
state: directory
|
|
owner: git
|
|
group: git
|
|
mode: '0750'
|
|
loop:
|
|
- /var/lib/forgejo
|
|
|
|
- name: create configuration folder required by forgejo
|
|
file:
|
|
path: '{{ item }}'
|
|
state: directory
|
|
mode: '0770'
|
|
owner: root
|
|
group: git
|
|
loop:
|
|
- /etc/forgejo
|
|
|
|
- name: Load Forgejo backup
|
|
ansible.builtin.import_tasks: load-backups.yml
|
|
when: forgejo_load_backup is defined
|
|
|
|
- name: upload forgejo configuration
|
|
notify: restart forgejo
|
|
template:
|
|
src: app.ini.j2
|
|
dest: /etc/forgejo/app.ini
|
|
mode: '0400'
|
|
owner: git
|
|
group: git
|
|
|
|
- name: upload custom adjustments
|
|
notify: restart forgejo
|
|
ansible.posix.synchronize:
|
|
recursive: true
|
|
src: custom
|
|
dest: /var/lib/forgejo
|
|
rsync_opts:
|
|
- --chown=git:git
|
|
- --chmod=755
|
|
|
|
- name: upload systemd unit file
|
|
notify: restart forgejo
|
|
copy:
|
|
src: forgejo.service
|
|
dest: /etc/systemd/system/forgejo.service
|
|
|
|
- name: upload forgejo.sh helper script
|
|
ansible.builtin.copy:
|
|
src: forgejo.sh
|
|
dest: /usr/local/bin/forgejo.sh
|
|
mode: '0755'
|
|
owner: root
|
|
group: root |