diff --git a/roles/cron/cron_database_backup/cron_database_backup-mysql/tasks/setup.yml b/roles/cron/cron_database_backup/cron_database_backup-mysql/tasks/setup.yml index 04ed3a97..1cd5b494 100644 --- a/roles/cron/cron_database_backup/cron_database_backup-mysql/tasks/setup.yml +++ b/roles/cron/cron_database_backup/cron_database_backup-mysql/tasks/setup.yml @@ -42,6 +42,12 @@ - drupal.defer_target is defined - drupal.defer_target | length > 0 +- name: Add dev null redirection (for non-deferred). + ansible.builtin.set_fact: + _cron_job_command: "{{ _backup_cron_job_command }} > /dev/null" + when: + - drupal.defer is not defined or not drupal.defer + - name: Setup regular backup for MySQL. ansible.builtin.cron: name: "cron_mysql_{{ database.host }}_{{ database.original.database }}" diff --git a/roles/cron/cron_drupal7/defaults/main.yml b/roles/cron/cron_drupal7/defaults/main.yml index 636557ca..da90cd30 100644 --- a/roles/cron/cron_drupal7/defaults/main.yml +++ b/roles/cron/cron_drupal7/defaults/main.yml @@ -19,3 +19,5 @@ drupal: # If defer is set to true, the Ansible target must be declared with defer_target. If using a group, include the index. For example, _ce_www_dev[0] defer_target: "" drush_location: "{{ drush_bin }}" # you might specify another location, e.g. "{{ deploy_path }}/vendor/bin/drush" + python_interpreter: "-e 'ansible_python_interpreter=/home/controller/ce-python/bin/python'" + cron_error_filter: "egrep -i 'error|fail|fatal|critical|exception'" diff --git a/roles/cron/cron_drupal7/tasks/job.yml b/roles/cron/cron_drupal7/tasks/job.yml index 18722640..65bf0602 100644 --- a/roles/cron/cron_drupal7/tasks/job.yml +++ b/roles/cron/cron_drupal7/tasks/job.yml @@ -5,7 +5,7 @@ - name: Define cron job command if deferred (ASG). ansible.builtin.set_fact: - _cron_job_command: "cd {{ _ce_deploy_base_dir }} && {{ _ce_deploy_ansible_location }} {{ drupal.defer_target }} -m shell -a \"{{ _cron_job_command }}\" > /dev/null" + _cron_job_command: "cd {{ _ce_deploy_base_dir }} && {{ _ce_deploy_ansible_location }} {{ drupal.defer_target }} {{ drupal.python_interpreter }} -m shell -a \"{{ _cron_job_command }} 2>&1 | egrep -i 'error|fail|fatal|critical|exception' || true\"" when: - drupal.defer is defined - drupal.defer diff --git a/roles/cron/cron_drupal8/defaults/main.yml b/roles/cron/cron_drupal8/defaults/main.yml index c49ed529..3071940b 100644 --- a/roles/cron/cron_drupal8/defaults/main.yml +++ b/roles/cron/cron_drupal8/defaults/main.yml @@ -21,3 +21,5 @@ drupal: # If defer is set to true, the Ansible target must be declared with defer_target. If using a group, include the index. For example, _ce_www_dev[0] defer_target: "" drush_location: "{{ drush_bin }}" # you might specify another location, e.g. "{{ deploy_path }}/vendor/bin/drush" + python_interpreter: "-e 'ansible_python_interpreter=/home/controller/ce-python/bin/python'" + cron_error_filter: "egrep -i 'error|fail|fatal|critical|exception'" diff --git a/roles/cron/cron_drupal8/tasks/job.yml b/roles/cron/cron_drupal8/tasks/job.yml index 9c039fdc..c327c450 100644 --- a/roles/cron/cron_drupal8/tasks/job.yml +++ b/roles/cron/cron_drupal8/tasks/job.yml @@ -5,7 +5,7 @@ - name: Define cron job command if deferred (ASG). ansible.builtin.set_fact: - _cron_job_command: "cd {{ _ce_deploy_base_dir }} && {{ _ce_deploy_ansible_location }} {{ drupal.defer_target }} -m shell -a \"{{ _cron_job_command }}\" > /dev/null" + _cron_job_command: "cd {{ _ce_deploy_base_dir }} && {{ _ce_deploy_ansible_location }} {{ drupal.defer_target }} {{ drupal.python_interpreter }} -m shell -a \"{{ _cron_job_command }} 2>&1 | egrep -i 'error|fail|fatal|critical|exception' || true\"" when: - drupal.defer is defined - drupal.defer @@ -31,6 +31,7 @@ name: MAILTO env: true job: "{{ drupal.cron_mailto }}" + user: "{{ deploy_user }}" state: present when: drupal.cron_mailto is defined delegate_to: "{{ 'localhost' if drupal.defer else inventory_hostname }}" diff --git a/roles/tests/tests_behat/defaults/main.yml b/roles/tests/tests_behat/defaults/main.yml index 1962957f..7504ea2b 100644 --- a/roles/tests/tests_behat/defaults/main.yml +++ b/roles/tests/tests_behat/defaults/main.yml @@ -3,6 +3,7 @@ behat: install: false # set to true if you want ce-deploy to attempt to composer install Behat tags: "~@javascript" # behat tags to run verbose: false # set to true for verbose output + fail_builds: true # set to false if you do not want Ansible to stop if Behat tests fail bin: "{{ deploy_path }}/vendor/bin/behat" # location of Behat # List of outputs to create, defaults to 'pretty' to STDOUT outputs: diff --git a/roles/tests/tests_behat/tasks/main.yml b/roles/tests/tests_behat/tasks/main.yml index ae11605d..212a3a88 100644 --- a/roles/tests/tests_behat/tasks/main.yml +++ b/roles/tests/tests_behat/tasks/main.yml @@ -26,4 +26,16 @@ - name: Run Behat command. ansible.builtin.command: cmd: "{{ behat.bin }} --config={{ behat.config_file }} --tags={{ behat.tags }} {{ _behat_outputs }}" - when: behat.outputs | length > 0 + chdir: "{{ behat.working_dir }}" + when: + - behat.outputs | length > 0 + - behat.fail_builds + +- name: Run Behat command without failing build. + ansible.builtin.command: + cmd: "{{ behat.bin }} --config={{ behat.config_file }} --tags={{ behat.tags }} {{ _behat_outputs }}" + chdir: "{{ behat.working_dir }}" + failed_when: false + when: + - behat.outputs | length > 0 + - not behat.fail_builds