From 5e40a04c86a40781e0479e6eba551275eef6c87f Mon Sep 17 00:00:00 2001 From: Michael Scherer Date: Fri, 7 Aug 2020 22:24:49 +0200 Subject: [PATCH] Add a cron based deployment for badges --- roles/badges/backend/files/update_checkout.sh | 6 +++ roles/badges/backend/tasks/main.yml | 39 +++++++++++++----- .../badges/frontend/files/update_checkout.sh | 8 ++++ roles/badges/frontend/tasks/main.yml | 41 +++++++++++++------ 4 files changed, 72 insertions(+), 22 deletions(-) create mode 100644 roles/badges/backend/files/update_checkout.sh create mode 100644 roles/badges/frontend/files/update_checkout.sh diff --git a/roles/badges/backend/files/update_checkout.sh b/roles/badges/backend/files/update_checkout.sh new file mode 100644 index 0000000000..375ad797f4 --- /dev/null +++ b/roles/badges/backend/files/update_checkout.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -e + +cd /srv/badges_checkout/ +git pull +( rsync --delete -ar --itemize-changes /srv/badges_checkout/rules/ /srv/web/infra/badges/rules/ | grep -q '^>f' ) && service fedmsg-hub restart diff --git a/roles/badges/backend/tasks/main.yml b/roles/badges/backend/tasks/main.yml index 074667bd43..0ee061c655 100644 --- a/roles/badges/backend/tasks/main.yml +++ b/roles/badges/backend/tasks/main.yml @@ -57,19 +57,38 @@ - badges - badges/backend -- name: copy over all our badge definitions - copy: - src: /srv/web/infra/badges/rules/ - dest: /usr/share/badges/rules/ - owner: fedmsg - group: fedmsg - mode: 0644 +- name: create checkout dir + file: + name: /srv/badges_checkout + state: directory + tags: + - badges + - badges/backend + +- name: clone directory + git: + repo: + dest: /srv/badges_checkout + tags: + - badges + - badges/backend + +- name: add script + copy: + dest: /usr/local/bin/update_checkout.sh + src: update_checkout.sh + mode: 0755 + tags: + - badges + - badges/backend + +- name: add cron for update + cron: + job: /usr/local/bin/update_checkout.sh + minute: "*/15" tags: - - config - badges - badges/backend - notify: - - restart fedmsg-hub - name: ensure the fedmsg user has a homedir for cron to work file: diff --git a/roles/badges/frontend/files/update_checkout.sh b/roles/badges/frontend/files/update_checkout.sh new file mode 100644 index 0000000000..5b47fed715 --- /dev/null +++ b/roles/badges/frontend/files/update_checkout.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -e + +cd /srv/badges_checkout/ +git pull +for i in pngs stls ; do + rsync --delete -ar /srv/badges_checkout/$i /srv/web/infra/badges/$i/ +done diff --git a/roles/badges/frontend/tasks/main.yml b/roles/badges/frontend/tasks/main.yml index 71bad71794..478adea426 100644 --- a/roles/badges/frontend/tasks/main.yml +++ b/roles/badges/frontend/tasks/main.yml @@ -102,21 +102,38 @@ - badges - badges/frontend -- name: copy over all our badge images - synchronize: - src: /srv/web/infra/badges/pngs/ - dest: /usr/share/badges/pngs/ - delete: yes +- name: create checkout dir + file: + name: /srv/badges_checkout + state: directory tags: - - assets + - badges + - badges/frontend -- name: copy over all our badge stls - synchronize: - src: /srv/web/infra/badges/stls/ - dest: /usr/share/badges/stls/ - delete: yes +- name: clone directory + git: + repo: + dest: /srv/badges_checkout tags: - - assets + - badges + - badges/frontend + +- name: add script + copy: + dest: /usr/local/bin/update_checkout.sh + src: update_checkout.sh + mode: 0755 + tags: + - badges + - badges/frontend + +- name: add cron for update + cron: + job: /usr/local/bin/update_checkout.sh + minute: "*/15" + tags: + - badges + - badges/frontend - name: ensure selinux lets httpd talk to postgres, memcached, and fedmsg seboolean: