]> git.immae.eu Git - github/fretlink/ansible-clever.git/commitdiff
Revert "Merge pull request #19 from paulrbr-fl/update-clever-tools" 24/head
authorPaul Bonaud <paul.bonaud@fretlink.com>
Fri, 30 Nov 2018 13:38:25 +0000 (14:38 +0100)
committerPaul Bonaud <paul.bonaud@fretlink.com>
Fri, 30 Nov 2018 13:38:25 +0000 (14:38 +0100)
This reverts commit 695ceaa28821660e17a1cf819cffebe1b5d8c7ca, reversing
changes made to 5485dbc4db3e141673457475bcda5fc88057739f.

defaults/main.yml
files/clever-wait-deploy.sh [new file with mode: 0755]
tasks/deploy.yml
tasks/setup.yml

index 9e98511b3f0807850fd06c39ef5c0f684f086fda..fb0e30f770552b31d3998f421976e21c802cceb7 100644 (file)
@@ -1,6 +1,6 @@
 ---
 # defaults file for clever
-clever_cli_version: 1.1.1
+clever_cli_version: 0.9.3
 clever_user_path: .local/bin
 clever_app_root: "{{ app_root | default(playbook_dir + '/..') }}"
 clever_app_confdir: "{{ clever_app_root }}/.clever_cloud"
diff --git a/files/clever-wait-deploy.sh b/files/clever-wait-deploy.sh
new file mode 100755 (executable)
index 0000000..e0bbcf1
--- /dev/null
@@ -0,0 +1,56 @@
+#!/bin/bash -e
+
+function deploying {
+  checkStatus "$1" "IN PROGRESS"
+}
+
+function deployed {
+  checkStatus "$1" "OK"
+}
+
+function inactive {
+  local commit="$1"
+  [[ "$(clever activity | grep "$commit" | grep "DEPLOY" | wc -l)" == "0" ]]
+}
+
+function checkStatus {
+  local commit="$1"
+  local status="$2"
+  [[ "$(clever activity | grep "$commit" | grep "${status}\s\+DEPLOY" | wc -l)" == "1" ]]
+}
+
+function check {
+  local timeout=600 # 10 minutes
+  local commit="$1"
+  local samplingTime=5
+
+  echo "Waiting for deployment start..."
+  while inactive "$commit" -a $timeout -gt 0
+  do
+    sleep $samplingTime
+    let "timeout-=$samplingTime"
+  done
+
+  # Wait for completion
+  echo "Deployment in progress..."
+  while deploying "$commit" -a $timeout -gt 0
+  do
+    sleep $samplingTime
+    let "timeout-=$samplingTime"
+  done
+
+  if [ $samplingTime -eq 0 ]
+  then
+    echo "Timeout"
+  fi
+
+  deployed "$commit"
+}
+
+function getHeadRev {
+  local chdir="$1/.git"
+
+  git --git-dir="$chdir" rev-parse HEAD
+}
+
+check "$(getHeadRev "$@")"
index 10c02c4934f29283c9cdb7a81dda2bc1c10dd4a3..84ebe737b8bc3c6a64094c928dab841bf72141d7 100644 (file)
   tags:
     - skip_ansible_lint
 
-- name: Deploy to Clever-Cloud
-  shell: "clever deploy"
+- name: Push to Clever-Cloud to trigger deployment
+  command: "git push --force git+ssh://git@push-par-clevercloud-customers.services.clever-cloud.com/{{ clever_app }}.git HEAD:refs/heads/master"
   args:
     chdir: "{{ clever_app_root }}"
-  environment:
-    CONFIGURATION_FILE: "{{ clever_login_file }}"
-  register: clever_deploy
-  async: 900 # 15 minutes timeout
-  poll: 30
+  register: clever_git_push
   ignore_errors: true
   tags:
     - skip_ansible_lint
   args:
     chdir: "{{ clever_app_root }}"
   when:
-    - clever_deploy is failed
-    - clever_deploy.stderr is search("Failed to read git object")
+    - clever_git_push is failed
+    - clever_git_push.stderr is search("shallow update not allowed")
   tags:
     - skip_ansible_lint
 
-- name: Deploy to Clever-Cloud
-  shell: "clever deploy"
+- name: Push to Clever-Cloud to trigger deployment
+  command: "git push --force git+ssh://git@push-par-clevercloud-customers.services.clever-cloud.com/{{ clever_app }}.git HEAD:refs/heads/master"
   args:
     chdir: "{{ clever_app_root }}"
-  environment:
-    CONFIGURATION_FILE: "{{ clever_login_file }}"
-  when: clever_deploy is failed
-  register: clever_deploy
-  async: 900 # 15 minutes timeout
-  poll: 30
-  ignore_errors: true
+  when: clever_git_push is failed
   tags:
     - skip_ansible_lint
 
-- name: Return deployment logs
-  debug:
-    var: clever_deploy.stdout
-
-- name: Return deployment errors
-  debug:
-    var: clever_deploy.stderr
-  when: clever_deploy is failed
+- name: Watch deployment status
+  command: "clever-wait-deploy.sh '{{ clever_app_root }}'"
+  async: 900
+  poll: 0
+  register: long_command
+  environment:
+    CONFIGURATION_FILE: "{{ clever_login_file }}"
+  changed_when: False
 
-- name: Fail on deployment errors
-  fail: "The clever deployment failed! Please check logs above."
-  when: clever_deploy is failed
+# Waits up to 15 minutes
+- name: Wait for deployment completion
+  async_status:
+    jid: "{{ long_command.ansible_job_id }}"
+  register: job_result
+  until: job_result.finished
+  delay: 30
+  retries: 30
index 33b1ff62a5ea87be40a693cf1c7e6d7b4569e94b..f85a635400e2dd0c499ff7cc77976f3978040d82 100644 (file)
@@ -26,3 +26,4 @@
   with_items:
     - clever-set-domain.sh
     - clever-set-drain.sh
+    - clever-wait-deploy.sh