[ansible] added deploy role
This commit is contained in:
19
ansible/roles/deploy/tasks/main.yml
Normal file
19
ansible/roles/deploy/tasks/main.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
- import_tasks: repo.yml
|
||||
- import_tasks: npm.yml
|
||||
|
||||
- name: Copy config.json
|
||||
copy:
|
||||
src: "{{ release_dir }}/config.shmyga.ru.json"
|
||||
dest: "{{ release_dir }}/config.json"
|
||||
remote_src: true
|
||||
|
||||
- name: Gulp build
|
||||
command: "gulp default"
|
||||
args:
|
||||
chdir: "{{ release_dir }}"
|
||||
|
||||
- name: Create symlink to release
|
||||
file:
|
||||
src: "{{ release_dir }}"
|
||||
dest: "{{ project_dir }}/current"
|
||||
state: link
|
||||
21
ansible/roles/deploy/tasks/npm.yml
Normal file
21
ansible/roles/deploy/tasks/npm.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
- name: Create directory for node_modules
|
||||
file:
|
||||
path: "{{ project_dir }}/npm"
|
||||
state: directory
|
||||
|
||||
- name: Copy package.json
|
||||
copy:
|
||||
src: "{{ release_dir }}/package.json"
|
||||
dest: "{{ project_dir }}/npm/"
|
||||
remote_src: true
|
||||
|
||||
- name: npm install
|
||||
command: npm install
|
||||
args:
|
||||
chdir: "{{ project_dir }}/npm/"
|
||||
|
||||
- name: Create symlink to node_modules
|
||||
file:
|
||||
src: "{{ project_dir }}/npm/node_modules"
|
||||
dest: "{{ release_dir }}/node_modules"
|
||||
state: link
|
||||
17
ansible/roles/deploy/tasks/repo.yml
Normal file
17
ansible/roles/deploy/tasks/repo.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
- name: Update git repository
|
||||
git:
|
||||
repo: "{{ repo_url }}"
|
||||
dest: "{{ project_dir }}/repo"
|
||||
|
||||
- name: Creates directory for release
|
||||
file:
|
||||
path: "{{ release_dir }}"
|
||||
state: directory
|
||||
|
||||
- name: Copy project files
|
||||
synchronize:
|
||||
src: "{{ project_dir }}/repo/"
|
||||
dest: "{{ release_dir }}"
|
||||
rsync_opts:
|
||||
- "--exclude=.git"
|
||||
delegate_to: "{{ inventory_hostname }}"
|
||||
5
ansible/roles/deploy/vars/main.yml
Normal file
5
ansible/roles/deploy/vars/main.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
ansible_user: holop
|
||||
date_str: "{{ ansible_date_time.year }}{{ ansible_date_time.month }}{{ ansible_date_time.day }}{{ ansible_date_time.hour }}{{ ansible_date_time.minute }}{{ ansible_date_time.second }}"
|
||||
|
||||
repo_url: "git@bitbucket.org:infernalgames/{{ project_name }}.git"
|
||||
release_dir: "{{ project_dir }}/releases/{{ date_str }}"
|
||||
Reference in New Issue
Block a user