From f57200880509f516536ecf05d3ec9787ebb2ba74 Mon Sep 17 00:00:00 2001 From: Michcio Date: Sun, 4 Sep 2022 00:14:51 +0200 Subject: [PATCH] Switch to a A/B model --- playbook.yml | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/playbook.yml b/playbook.yml index 69ac26f..fb40913 100644 --- a/playbook.yml +++ b/playbook.yml @@ -9,11 +9,21 @@ deploys_root: /var/lib/misskey/deploys config_yml: /var/lib/misskey/default.yml tasks: - - name: Generate deploy dir name + - name: Checking which environment is currently prod + ansible.builtin.stat: + path: "{{ deploys_root }}/current" + get_attributes: false + get_checksum: false + get_mime: false + follow: false + register: previous_current + become: true + become_user: "{{ user }}" + - name: Picking staging environment that is not currently prod ansible.builtin.set_fact: - deploy_dir: "{{ deploys_root }}/{{ ansible_date_time.iso8601_basic_short }}" + deploy_dir: "{{ deploys_root }}/{{ previous_current.stat.lnk_source.endswith('sunrise') | ternary('sunset', 'sunrise') }}" run_once: true - - name: Print the generated deployment name + - name: Print the chosen deployment directory ansible.builtin.debug: var: deploy_dir run_once: true @@ -27,8 +37,6 @@ ansible.builtin.file: path: "{{ deploy_dir }}" state: directory - mode: '0755' - recurse: true - name: Clone source repository ansible.builtin.git: repo: "{{ source_repository }}" @@ -39,10 +47,6 @@ dest: "{{ deploy_dir }}/.config/default.yml" src: "{{ config_yml }}" state: link - - name: Reflink copy previous node_modules - ansible.builtin.command: cp -r --reflink "{{ deploys_root }}/current/node_modules" "{{ deploy_dir }}/node_modules" - args: - creates: "{{ deploy_dir }}/node_modules" - name: Install Yarn dependencies ansible.builtin.command: yarn install changed_when: true @@ -55,18 +59,12 @@ chdir: "{{ deploy_dir }}" - name: Deploy block: - - name: Note down previous deploy - become: true - become_user: "{{ user }}" - ansible.builtin.command: readlink "{{ deploys_root }}/current" - changed_when: true - register: previous_shell - name: Link previous deploy become: true become_user: "{{ user }}" ansible.builtin.file: dest: "{{ deploys_root }}/previous" - src: "{{ previous_shell.stdout }}" + src: "{{ previous_current.stat.lnk_source }}" state: link force: true - name: Link new deploy