Estou tentando descobrir como parar instantaneamente meu playbook quando os testes falham para uma ramificação específica, master
neste caso.
Este é meu código Ansible:
- name: 'Run Tests'
shell: testing.sh | tee "testing.log"
register: testing
- name: 'Show log'
debug:
msg: "{{ testing.stdout_lines }}"
- name: 'Set fact'
set_fact:
tests: >-
{{
testing.stdout_lines | join(' ') | regex_findall('(\d+)\s*failed') | map('int') | max == 0
}}
Por exemplo, dado o script para teste
dá
Na peça para teste, declare o número de linhas com falha e encerre a peça se algum teste falhar
dá, por exemplo
Se você somar os números selecionados
a peça irá falhar
Observações:
Use
rc
para retornar o código de erro. Por exemplo, o scriptretorna 0
ou 1
Em uma peça, deixe a tarefa falhar se
rc > 1
dá (resumido) 0
ou 1
Agora, você pode parar a reprodução instantaneamente. Por exemplo,
Adapte o roteiro
rc
e as condições às suas necessidades.Exemplo de um manual completo para testes
Crie
rc
códigos no seu script. Por exemplo,e usá-los em uma peça. Por exemplo,