1---
2- name: record the output directory
3  set_fact: deploy_helper_test_root={{output_dir}}/deploy_helper_test_root
4
5- name: State=query with default parameters
6  deploy_helper: path={{ deploy_helper_test_root }} state=query
7- name: Assert State=query with default parameters
8  assert:
9    that:
10    - "'project_path' in deploy_helper"
11    - "deploy_helper.current_path   == '{{ deploy_helper.project_path }}/current'"
12    - "deploy_helper.releases_path  == '{{ deploy_helper.project_path }}/releases'"
13    - "deploy_helper.shared_path    == '{{ deploy_helper.project_path }}/shared'"
14    - "deploy_helper.unfinished_filename == 'DEPLOY_UNFINISHED'"
15    - "'previous_release' in deploy_helper"
16    - "'previous_release_path' in deploy_helper"
17    - "'new_release' in deploy_helper"
18    - "'new_release_path' in deploy_helper"
19    - "deploy_helper.new_release_path == '{{ deploy_helper.releases_path }}/{{ deploy_helper.new_release }}'"
20
21- name: State=query with relative overridden paths
22  deploy_helper: path={{ deploy_helper_test_root }} current_path=CURRENT_PATH releases_path=RELEASES_PATH shared_path=SHARED_PATH state=query
23- name: Assert State=query with relative overridden paths
24  assert:
25    that:
26    - "deploy_helper.current_path   == '{{ deploy_helper.project_path }}/CURRENT_PATH'"
27    - "deploy_helper.releases_path  == '{{ deploy_helper.project_path }}/RELEASES_PATH'"
28    - "deploy_helper.shared_path    == '{{ deploy_helper.project_path }}/SHARED_PATH'"
29    - "deploy_helper.new_release_path == '{{ deploy_helper.releases_path }}/{{ deploy_helper.new_release}}'"
30
31- name: State=query with absolute overridden paths
32  deploy_helper: path={{ deploy_helper_test_root }} current_path=/CURRENT_PATH releases_path=/RELEASES_PATH shared_path=/SHARED_PATH state=query
33- name: Assert State=query with absolute overridden paths
34  assert:
35    that:
36    - "deploy_helper.current_path   == '/CURRENT_PATH'"
37    - "deploy_helper.releases_path  == '/RELEASES_PATH'"
38    - "deploy_helper.shared_path    == '/SHARED_PATH'"
39    - "deploy_helper.new_release_path == '{{ deploy_helper.releases_path }}/{{ deploy_helper.new_release}}'"
40
41- name: State=query with overridden unfinished_filename
42  deploy_helper: path={{ deploy_helper_test_root }} unfinished_filename=UNFINISHED_DEPLOY state=query
43- name: Assert State=query with overridden unfinished_filename
44  assert:
45    that:
46    - "'UNFINISHED_DEPLOY' == deploy_helper.unfinished_filename"
47
48# Remove the root folder just in case it exists
49- file: path={{ deploy_helper_test_root }} state=absent
50
51- name: State=present with default parameters
52  deploy_helper: path={{ deploy_helper_test_root }} state=present
53- stat: path={{ deploy_helper.releases_path }}
54  register: releases_path
55- stat: path={{ deploy_helper.shared_path }}
56  register: shared_path
57- name: Assert State=present with default parameters
58  assert:
59    that:
60    - "releases_path.stat.exists"
61    - "shared_path.stat.exists"
62
63# Setup older releases for tests
64- file: path={{ deploy_helper.releases_path }}/{{ item }} state=directory
65  with_items: ['first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh']
66# Setup the new release
67- file: path={{ deploy_helper.new_release_path }} state=directory
68# Add a buildfile, just like in a real deploy
69- copy: content='' dest={{ deploy_helper.new_release_path }}/{{ deploy_helper.unfinished_filename }}
70# Add a buildfile, to an older deploy
71- copy: content='' dest={{ deploy_helper.releases_path }}/third/{{ deploy_helper.unfinished_filename }}
72
73- name: State=finalize with default parameters
74  deploy_helper: path={{ deploy_helper_test_root }} release={{ deploy_helper.new_release }} state=finalize
75- stat: path={{ deploy_helper.current_path }}
76  register: current_path
77- stat: path={{ deploy_helper.current_path }}/DEPLOY_UNFINISHED
78  register: current_path_unfinished_filename
79- name: Assert State=finalize with default parameters
80  assert:
81    that:
82    - "current_path.stat.islnk"
83    - "deploy_helper.new_release_path in current_path.stat.lnk_source"
84    - "not current_path_unfinished_filename.stat.exists"
85- stat: path={{ deploy_helper.releases_path }}/third
86  register: third_release_path
87- shell: "ls {{ deploy_helper.releases_path }} | wc -l"
88  register: releases_count
89- name: Assert State=finalize with default parameters (clean=true checks)
90  assert:
91    that:
92    - "not third_release_path.stat.exists"
93    - "releases_count.stdout|trim == '6'"
94- deploy_helper: path={{ deploy_helper_test_root }} release={{ deploy_helper.new_release }} state=query
95- name: Assert State=finalize with default parameters (previous_release checks)
96  assert:
97    that:
98    - "deploy_helper.new_release == deploy_helper.previous_release"
99
100- name: State=absent with default parameters
101  deploy_helper: path={{ deploy_helper_test_root }} state=absent
102- stat: path={{ deploy_helper_test_root }}
103  register: project_path
104- name: Assert State=absent with default parameters
105  assert:
106    that:
107    - "not project_path.stat.exists"
108
109- debug: msg="Clearing all release data and facts ---------"
110
111- name: State=present with shared_path set to False
112  deploy_helper: path={{ deploy_helper_test_root }} state=present shared_path=''
113- stat: path={{ deploy_helper.releases_path }}
114  register: releases_path
115- stat: path={{ deploy_helper.shared_path }}
116  register: shared_path
117- name: Assert State=present with shared_path set to False
118  assert:
119    that:
120    - "releases_path.stat.exists"
121    - "not shared_path.stat.exists"
122
123# Setup older releases for tests
124- file: path={{ deploy_helper.releases_path }}/{{ item }} state=directory
125  with_items: ['first', 'second', 'third', 'fourth', 'fifth']
126# Setup the new release
127- file: path={{ deploy_helper.new_release_path }} state=directory
128# Add a buildfile, just like in a real deploy
129- copy: content='' dest={{ deploy_helper.new_release_path }}/{{ deploy_helper.unfinished_filename }}
130# Add a buildfile, to an older deploy
131- copy: content='' dest={{ deploy_helper.releases_path }}/third/{{ deploy_helper.unfinished_filename }}
132
133- shell: "ls {{ deploy_helper_test_root }}/releases | wc -l"
134  register: before_releases_count
135- name: State=clean with keep_releases=3
136  deploy_helper: path={{ deploy_helper_test_root }} release={{ deploy_helper.new_release }} state=clean keep_releases=3
137- stat: path={{ deploy_helper.releases_path }}/third
138  register: third_release_path
139- shell: "ls {{ deploy_helper.releases_path }} | wc -l"
140  register: releases_count
141- name: Assert State=finalize with default parameters (clean=true checks)
142  assert:
143    that:
144    - "not third_release_path.stat.exists"
145    - "before_releases_count.stdout|trim == '6'"
146    - "releases_count.stdout|trim == '3'"
147
148# Remove the root folder
149- file: path={{ deploy_helper_test_root }} state=absent
150