ci: Split dependency check and run checks all on failures

- Split the dependency check into a distinct step for each variant
- If the dependency test failed, still run the compose base test to get
  results about it
- Add a step at the end to make sure that if any step fails, the
  workflow still fail

See: https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_error_handling.html#ignoring-failed-commands
See discussion in: https://pagure.io/workstation-ostree-config/pull-request/493
This commit is contained in:
Timothée Ravier 2024-03-01 18:30:47 +01:00
parent 8e0b7314f9
commit 4b90deb10d

View file

@ -11,15 +11,46 @@
- 'selinux-policy-targeted' - 'selinux-policy-targeted'
state: present state: present
become: true become: true
- name: Validate manifests and scripts syntax - name: Validate manifests and scripts syntax
ansible.builtin.command: ansible.builtin.command:
chdir: "{{ zuul.project.src_dir }}" chdir: "{{ zuul.project.src_dir }}"
cmd: just validate cmd: just validate
- name: Perform dependency resolution for all variants
ansible.builtin.command: - name: Perform dependency resolution for Silverblue
ansible.builtin.shell:
chdir: "{{ zuul.project.src_dir }}" chdir: "{{ zuul.project.src_dir }}"
cmd: just compose-dry-run cmd: "just compose-dry-run silverblue && touch .zuulci.silverblue"
# Still run the next step if this one fails
ignore_errors: true
- name: Perform dependency resolution for Kinoite
ansible.builtin.shell:
chdir: "{{ zuul.project.src_dir }}"
cmd: "just compose-dry-run kinoite && touch .zuulci.kinoite"
# Still run the next step if this one fails
ignore_errors: true
- name: Perform dependency resolution for Sway Atomic
ansible.builtin.shell:
chdir: "{{ zuul.project.src_dir }}"
cmd: "just compose-dry-run sericea && touch .zuulci.sericea"
# Still run the next step if this one fails
ignore_errors: true
- name: Perform dependency resolution for Budgie Atomic
ansible.builtin.shell:
chdir: "{{ zuul.project.src_dir }}"
cmd: "just compose-dry-run onyx && touch .zuulci.onyx"
# Still run the next step if this one fails
ignore_errors: true
- name: Compose the base variant - name: Compose the base variant
ansible.builtin.command: ansible.builtin.command:
chdir: "{{ zuul.project.src_dir }}" chdir: "{{ zuul.project.src_dir }}"
cmd: just compose-legacy base cmd: just compose-legacy base
- name: Check if any previous dependency resolution steps failed
ansible.builtin.shell:
chdir: "{{ zuul.project.src_dir }}"
cmd: "[[ -f .zuulci.silverblue ]] && [[ -f .zuulci.kinoite ]] && [[ -f .zuulci.sericea ]] && [[ -f .zuulci.onyx ]]"