refactor deployment process
continuous-integration/drone/push Build is failing Details

This commit is contained in:
Robert Kaussow 2019-08-08 14:31:09 +02:00
parent e4a509776e
commit f34da510c7
3 changed files with 60 additions and 40 deletions

View File

@ -1,5 +1,5 @@
--- ---
zigbee2mqtt_version: 0.1.8 zigbee2mqtt_version: 1.5.1
zigbee2mqtt_user: zigbee2mqtt zigbee2mqtt_user: zigbee2mqtt
zigbee2mqtt_group: zigbee2mqtt zigbee2mqtt_group: zigbee2mqtt

View File

@ -8,71 +8,81 @@
mode: 0750 mode: 0750
with_items: with_items:
- "{{ zigbee2mqtt_base_dir }}" - "{{ zigbee2mqtt_base_dir }}"
- "{{ zigbee2mqtt_base_dir }}/data"
- "{{ zigbee2mqtt_log_dir }}" - "{{ zigbee2mqtt_log_dir }}"
become: True become: True
become_user: root become_user: root
- block: - block:
- name: Check data dir # - name: Check data dir
stat: # stat:
path: "{{ zigbee2mqtt_base_dir }}/data" # path: "{{ zigbee2mqtt_base_dir }}/data"
register: __zigbee_datadir # register: __zigbee_datadir
- name: Backup data directory # - name: Backup data directory
synchronize: # synchronize:
src: "{{ zigbee2mqtt_base_dir }}/data/" # src: "{{ zigbee2mqtt_base_dir }}/data/"
dest: "/tmp/zigbee_data" # dest: "/tmp/zigbee_data"
recursive: yes # recursive: yes
delegate_to: "{{ inventory_hostname }}" # delegate_to: "{{ inventory_hostname }}"
when: __zigbee_datadir.stat.exists # when: __zigbee_datadir.stat.exists
- name: Setup zigbee2mqtt # - name: Setup zigbee2mqtt
git: # git:
repo: "https://github.com/Koenkk/zigbee2mqtt" # repo: "https://github.com/Koenkk/zigbee2mqtt"
# dest: "{{ zigbee2mqtt_base_dir }}/bin"
# version: "{{ zigbee2mqtt_version }}"
# force: yes
# register: __zigbee2mqtt_install
# - name: Restore data directory
# synchronize:
# src: "/tmp/zigbee_data/"
# dest: "{{ zigbee2mqtt_base_dir }}/data"
# recursive: yes
# delegate_to: "{{ inventory_hostname }}"
# when: __zigbee_datadir.stat.exists
- name: Download release 'v{{ zigbee2mqtt_version }}'
unarchive:
src: "https://github.com/Koenkk/zigbee2mqtt/archive/{{ zigbee2mqtt_version }}.tar.gz"
dest: "{{ zigbee2mqtt_base_dir }}" dest: "{{ zigbee2mqtt_base_dir }}"
version: "{{ zigbee2mqtt_version }}" remote_src: yes
force: yes exclude: "{{ __zigbee2mqtt_release_exclude }}"
register: __zigbee2mqtt_install extra_opts:
- --strip-components=1
- name: Restore data directory register: __zigbee2mqtt_install
synchronize:
src: "/tmp/zigbee_data/"
dest: "{{ zigbee2mqtt_base_dir }}/data"
recursive: yes
delegate_to: "{{ inventory_hostname }}"
when: __zigbee_datadir.stat.exists
- name: Delete existing node_modules folder - name: Delete existing node_modules folder
file: file:
path: "{{ zigbee2mqtt_base_dir }}/node_modules" path: "{{ zigbee2mqtt_base_dir }}/node_modules"
state: absent state: absent
when: __zigbee2mqtt_install.changed
- name: Install nodejs dependencies - name: Install nodejs dependencies
npm: npm:
path: "{{ zigbee2mqtt_base_dir }}" path: "{{ zigbee2mqtt_base_dir }}"
environment: environment:
PATH: "{{ __zigbee2mqtt_npm_executable | dirname }}:{{ ansible_env.PATH }}" PATH: "{{ __zigbee2mqtt_npm_executable | dirname }}:{{ ansible_env.PATH }}"
when: __zigbee2mqtt_install.changed
notify: __zigbee2mqtt_restart notify: __zigbee2mqtt_restart
when: zigbee2mqtt_version is version(zigbee2mqtt_current_version, ">") when: zigbee2mqtt_version is version(zigbee2mqtt_current_version, ">")
become: True become: True
become_user: "{{ zigbee2mqtt_user }}" become_user: "{{ zigbee2mqtt_user }}"
- block: - block:
- name: Cleanup base directory # - name: Cleanup base directory
file: # file:
path: "{{ zigbee2mqtt_base_dir }}/{{ item }}" # path: "{{ zigbee2mqtt_base_dir }}/{{ item }}"
state: absent # state: absent
loop: # loop:
- docker # - docker
- docs # - docs
- images # - images
- LICENSE # - LICENSE
- README.md # - README.md
- scripts # - scripts
- test # - test
- update.sh # - update.sh
- name: Deploy configuration file - name: Deploy configuration file
template: template:

View File

@ -1,2 +1,12 @@
--- ---
__zigbee2mqtt_npm_executable: /usr/local/bin/npm __zigbee2mqtt_npm_executable: /usr/local/bin/npm
__zigbee2mqtt_release_exclude:
- data/
- docker/
- docs/
- images/
- LICENSE
- README.md
- scripts/
- test/
- update.sh