The Gatekeeper, or a project gating system
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

99 lines
2.6 KiB

- hosts: localhost
tasks:
- debug:
msg: Ansible version={{ ansible_version.major }}.{{ ansible_version.minor }}
- hosts: all
tasks:
# Create unwritable /tmp/console-None.log
# This ensures that no further task can write to it without failing.
# A task trying to write to /tmp/console-None.log is considered broken
# because zuul_log_id is missing.
- name: Create unwritable /tmp/console-None.log
file:
path: /tmp/console-None.log
state: touch
mode: 0444
run_once: True
- name: Start zuul_console daemon
zuul_console:
port: "{{ test_console_port }}"
- name: Create first file
copy:
content: "command test one\n"
dest: "{{ ansible_user_dir }}/command_test_file1"
- name: Create second file
copy:
content: "command test two\n"
dest: "{{ ansible_user_dir }}/command_test_file2"
- name: Show contents of first file
command: "cat {{ ansible_user_dir }}/command_test_file1"
- name: Show contents of second file
# We use a sleep here to ensure that we log even after
# a period of no logging.
shell: "sleep 6 && cat {{ ansible_user_dir }}/command_test_file2"
# Test a task with a handler
- name: Run a command with notifying a handler
command: /bin/true
notify: test handler
# Test cleanup task
- name: Block with cleanup
block:
- name: Run a command
command: /bin/false
rescue:
- name: Rescue task
command: echo "This is a rescue task"
always:
- name: Always task
command: echo "This is an always task"
handlers:
- name: test handler
command: echo "This is a handler"
- hosts: all
strategy: free
tasks:
- name: Command task 1 within free strategy
command: echo "First free task"
- name: Command task 2 within free strategy
command: echo "Second free task"
# Test a role that has an include_role
- hosts: all
strategy: linear
roles:
- include-a-role
- hosts: compute1
tasks:
- name: Single command
command: "echo single"
# Test commands within loops
- name: Command with loop
shell: |
echo {{ item }}
with_items:
- item_in_loop1
- item_in_loop2
- name: Failing command with loop
shell: |
echo {{ item }}
exit 1
with_items:
- failed_in_loop1
- failed_in_loop2
ignore_errors: True
- hosts: all
tasks:
- name: Remote shell task with python exception
command: echo foo
args:
chdir: /remote-shelltask/somewhere/that/does/not/exist
failed_when: false