46 lines
1.6 KiB
YAML
46 lines
1.6 KiB
YAML
---
|
|
|
|
- name: Ask to push latest forgejo_dump zipfile
|
|
when: forgejo_dump_path is not defined
|
|
ansible.builtin.pause:
|
|
prompt: "Local path to forgejo dump, so we can push it [leave empty to not push]"
|
|
echo: true
|
|
register: forgejo_dump_path
|
|
|
|
- name: Push latest forgejo dump zipfile (no user input)
|
|
become: true
|
|
ansible.builtin.copy:
|
|
src: "{{ forgejo_dump_path }}"
|
|
dest: "{{ forgejo_run_dir }}/forgejo-dumps/{{ forgejo_dump_path | basename }}"
|
|
owner: git
|
|
group: git
|
|
mode: 0640
|
|
when: forgejo_dump_path.user_input is not defined
|
|
|
|
- name: Push latest forgejo dump zipfile (user input)
|
|
become: true
|
|
ansible.builtin.copy:
|
|
src: "{{ forgejo_dump_path.user_input }}"
|
|
dest: "{{ forgejo_run_dir }}/forgejo-dumps/{{ forgejo_dump_path.user_input | basename }}"
|
|
owner: git
|
|
group: git
|
|
mode: 0640
|
|
when: forgejo_dump_path.user_input is defined and forgejo_dump_path.user_input != ''
|
|
|
|
- name: Find all forgejo dumps on the server
|
|
become: true
|
|
ansible.builtin.find:
|
|
paths: "{{ forgejo_run_dir }}/forgejo-dumps/"
|
|
register: all_forgejo_dumps
|
|
|
|
- name: Find latest forgejo dump on the server
|
|
ansible.builtin.set_fact:
|
|
latest_forgejo_dump: "{{ all_forgejo_dumps.files | sort(attribute='mtime') | last }}"
|
|
|
|
- name: Deploy repos from latest forgejo dump
|
|
become: true
|
|
become_user: git
|
|
ansible.builtin.command:
|
|
cmd: "/usr/local/bin/forgejo-backup.sh restore {{ latest_forgejo_dump.path }}"
|
|
# when this dir exists, the command won't run, so we don't overwrite existing repos
|
|
creates: "{{ forgejo_run_dir }}/forgejo-repositories"
|