]>
Commit | Line | Data |
---|---|---|
f7dd5848 | 1 | - name: Configure Drain |
23c0fc8a | 2 | when: syslog_server is defined or clever_syslog_server is defined |
51b4b3fd | 3 | command: "{{ ansible_env.HOME }}/{{ clever_user_path }}/clever-set-drain.sh" |
1dc8c620 PB |
4 | args: |
5 | chdir: "{{ clever_app_root }}" | |
f7dd5848 | 6 | environment: |
23c0fc8a | 7 | SYSLOG_UDP_SERVER: "{{ clever_syslog_server | default(syslog_server) }}" |
f7dd5848 GD |
8 | CONFIGURATION_FILE: "{{ clever_login_file }}" |
9 | ||
10 | - name: Configure Domain | |
1157a45f | 11 | when: domain is defined or clever_domain is defined |
fee73e81 | 12 | command: "{{ ansible_env.HOME }}/{{ clever_user_path }}/clever-set-domain.sh" |
1dc8c620 PB |
13 | args: |
14 | chdir: "{{ clever_app_root }}" | |
f7dd5848 | 15 | environment: |
1157a45f | 16 | DOMAIN: "{{ clever_domain | default(domain) }}" |
f7dd5848 GD |
17 | CONFIGURATION_FILE: "{{ clever_login_file }}" |
18 | ||
19 | - name: Push Environment | |
20 | shell: "clever env import < {{ clever_app_confdir }}/env" | |
1dc8c620 PB |
21 | args: |
22 | chdir: "{{ clever_app_root }}" | |
f7dd5848 GD |
23 | environment: |
24 | CONFIGURATION_FILE: "{{ clever_login_file }}" | |
7485b189 | 25 | changed_when: false |
f7dd5848 GD |
26 | |
27 | #TODO: Improve ssh-key validation | |
28 | - name: Accept Clever-Cloud servers | |
29 | shell: "ssh-keyscan -H push-par-clevercloud-customers.services.clever-cloud.com >> ~/.ssh/known_hosts" | |
7485b189 GD |
30 | tags: |
31 | - skip_ansible_lint | |
f7dd5848 | 32 | |
c5aed75a PB |
33 | - name: Deploy to Clever-Cloud |
34 | shell: "clever deploy --force" | |
70a42250 PB |
35 | args: |
36 | chdir: "{{ clever_app_root }}" | |
c5aed75a PB |
37 | environment: |
38 | CONFIGURATION_FILE: "{{ clever_login_file }}" | |
39 | register: clever_deploy | |
40 | async: 900 # 15 minutes timeout | |
41 | poll: 30 | |
19955c99 PB |
42 | ignore_errors: true |
43 | tags: | |
44 | - skip_ansible_lint | |
45 | ||
46 | - name: First time push to Clever-Cloud needs a full git clone | |
47 | command: "git fetch --unshallow" | |
70a42250 PB |
48 | args: |
49 | chdir: "{{ clever_app_root }}" | |
19955c99 | 50 | when: |
c5aed75a PB |
51 | - clever_deploy is failed |
52 | - clever_deploy.stderr is defined | |
53 | - clever_deploy.stderr is search("Failed to read git object") | |
19955c99 PB |
54 | tags: |
55 | - skip_ansible_lint | |
56 | ||
c5aed75a PB |
57 | - name: Deploy to Clever-Cloud |
58 | shell: "clever deploy --force" | |
70a42250 PB |
59 | args: |
60 | chdir: "{{ clever_app_root }}" | |
c5aed75a PB |
61 | environment: |
62 | CONFIGURATION_FILE: "{{ clever_login_file }}" | |
63 | when: clever_deploy is failed | |
64 | register: clever_deploy | |
65 | async: 900 # 15 minutes timeout | |
66 | poll: 30 | |
67 | ignore_errors: true | |
7485b189 GD |
68 | tags: |
69 | - skip_ansible_lint | |
f7dd5848 | 70 | |
c5aed75a PB |
71 | - name: Return deployment logs |
72 | debug: | |
73 | var: clever_deploy.stdout | |
74 | when: clever_deploy.stdout is defined | |
75 | ||
76 | - name: Return deployment errors | |
77 | debug: | |
78 | var: clever_deploy.stderr | |
79 | when: | |
80 | - clever_deploy is failed | |
81 | - clever_deploy.stderr is defined | |
d7d8a988 | 82 | |
e4a83de0 GD |
83 | - name: Retrieve clever activity |
84 | command: clever activity | |
e9b912b4 PB |
85 | args: |
86 | chdir: "{{ clever_app_root }}" | |
87 | environment: | |
88 | CONFIGURATION_FILE: "{{ clever_login_file }}" | |
89 | changed_when: false | |
90 | register: clever_activity_result | |
91 | ||
e4a83de0 GD |
92 | - name: Display clever activity |
93 | debug: | |
e9b912b4 PB |
94 | var: clever_activity_result.stdout_lines |
95 | ||
e4a83de0 GD |
96 | - name: Get current commit sha |
97 | command: git show -q --format=format:%H HEAD | |
e9b912b4 PB |
98 | args: |
99 | chdir: "{{ clever_app_root }}" | |
e4a83de0 | 100 | warn: False |
e9b912b4 PB |
101 | changed_when: false |
102 | register: current_commit_sha | |
103 | ||
104 | # #### | |
105 | # Expects all configuration to be located in the project's repository. | |
106 | # Making a git commit bound to the same *configuration* and *executable* version. | |
107 | # ## | |
108 | - name: Fail if current commit is not the last deployed one | |
109 | fail: | |
110 | msg: "The clever deployment failed! Please check latest deploy activity logs above." | |
111 | when: | |
112 | - clever_deploy is failed | |
113 | - clever_deploy.stderr is defined | |
114 | - clever_deploy.stderr is search("application is up-to-date") | |
c48c25c3 PB |
115 | - | |
116 | (current_commit_sha.stdout_lines[-1] not in clever_activity_result.stdout_lines[-1]) | |
117 | or | |
118 | (clever_activity_valid_deploy_keyword not in clever_activity_result.stdout_lines[-1]) | |
e9b912b4 | 119 | |
c48c25c3 | 120 | - name: Fail on any other deployment errors |
2baf1a4a PB |
121 | fail: |
122 | msg: "The clever deployment failed! Please check logs above." | |
e9b912b4 PB |
123 | when: |
124 | - clever_deploy is failed | |
125 | - clever_deploy.stderr is defined | |
126 | - clever_deploy.stderr is not search("application is up-to-date") |