From 0b0fd447f2465f5ecab1c1802bbf33c09160f83a Mon Sep 17 00:00:00 2001 From: Michcio Date: Sat, 3 Sep 2022 19:41:23 +0200 Subject: [PATCH] well this works at any rate --- playbook.yml | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 playbook.yml diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..69ac26f --- /dev/null +++ b/playbook.yml @@ -0,0 +1,84 @@ +--- +- name: Upgrade FoundKey + hosts: localhost + connection: local + vars: + user: misskey + service: misskey + source_repository: /var/lib/misskey/FoundKey-0x7f + deploys_root: /var/lib/misskey/deploys + config_yml: /var/lib/misskey/default.yml + tasks: + - name: Generate deploy dir name + ansible.builtin.set_fact: + deploy_dir: "{{ deploys_root }}/{{ ansible_date_time.iso8601_basic_short }}" + run_once: true + - name: Print the generated deployment name + ansible.builtin.debug: + var: deploy_dir + run_once: true + - name: Build + become: true + become_user: "{{ user }}" + environment: + NODE_ENV: production + block: + - name: Create deployment directory + ansible.builtin.file: + path: "{{ deploy_dir }}" + state: directory + mode: '0755' + recurse: true + - name: Clone source repository + ansible.builtin.git: + repo: "{{ source_repository }}" + dest: "{{ deploy_dir }}" + single_branch: true + - name: Link configuration in + ansible.builtin.file: + 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 + args: + chdir: "{{ deploy_dir }}" + - name: Build FoundKey + ansible.builtin.command: yarn build + changed_when: true + args: + 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 }}" + state: link + force: true + - name: Link new deploy + become: true + become_user: "{{ user }}" + ansible.builtin.file: + dest: "{{ deploys_root }}/current" + src: "{{ deploy_dir }}" + state: link + force: true + - name: Restart systemd service + become: true + ansible.builtin.systemd: + name: "{{ service }}" + state: restarted