ansible/playbooks/manual/push-badges.yml
2021-05-13 10:06:23 -05:00

111 lines
2.7 KiB
YAML

# Push out any new badge stuff.
#
# Badge artists and badge developers should be pushing stuff to this repo:
#
# https://pagure.io/fedora-badges.git
#
# This playbook will take any new content from there and push it out onto our
# servers.
- name: get the badges repo happening from the batcave
hosts: batcave01.iad2.fedoraproject.org
user: root
gather_facts: False
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
vars:
upstream: "https://pagure.io/fedora-badges.git"
workingdir: /srv/web/infra/badges/
local_repo: /srv/git/badges
tasks:
- name: Make a tmp directory
tempfile:
state: directory
suffix: _badges_tempdir
register: tmp
- set_fact:
tempdir: "{{tmp.path}}"
- name: clone the local bare repo
git:
dest: "{{tempdir}}"
repo: "{{local_repo}}"
remote: origin
update: yes
- name: add pagure as a second remote
command: git remote add pagure {{upstream}}
args:
chdir: "{{tempdir}}"
- name: pull down changes from pagure
command: git pull pagure master
args:
chdir: "{{tempdir}}"
- name: push pagure changes back to the lockbox bare repo
command: git push origin master
args:
chdir: "{{tempdir}}"
- name: clean up that temporary {{tempdir}} dir
file:
dest: "{{tempdir}}"
state: absent
- name: fix the working dir repo to use the right location
command: git remote set-url origin {{local_repo}}
args:
chdir: "{{workingdir}}"
- name: and pull those commits from the bare repo to the working dir
command: git pull origin master
args:
chdir: "{{workingdir}}"
handlers:
- import_tasks: "{{ handlers_path }}/restart_services.yml"
- name: copy new badge art over to the badges web nodes
hosts: badges_web:badges_web_stg
user: root
gather_facts: False
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
roles:
- badges/frontend
handlers:
- import_tasks: "{{ handlers_path }}/restart_services.yml"
- name: copy any new badges rules over to the badges backend and restart it
hosts: badges_backend:badges_backend_stg
user: root
gather_facts: False
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
roles:
- badges/backend
handlers:
- import_tasks: "{{ handlers_path }}/restart_services.yml"
- name: run /usr/local/bin/update_checkout.sh
hosts: badges_web
tasks:
- command: /usr/local/bin/update_checkout.sh