🏡 index : quine-global-labs/mirror-fedora-workstation-ostree-config.git

- hosts: all
  tasks:
    # https://pagure.io/fedora-ci/general/issue/505
    - name: Restart systemd-resolved
      become: true
      command: systemctl restart systemd-resolved
      when: zuul.branch == "rawhide" or zuul.branch == "main"

    - name: Upgrade all packages
      ansible.builtin.dnf:
        name: "*"
        state: latest
      become: true

    - name: Install dependencies
      package:
        name:
          - 'jq'
          - 'just'
          - 'ostree'
          - 'python3-pyyaml'
          - 'rpm-ostree'
          - 'selinux-policy-targeted'
        state: present
      become: true

    - name: Validate manifests and scripts syntax
      ansible.builtin.command:
        chdir: "{{ zuul.project.src_dir }}"
        cmd: just validate

    - name: Verify that the comps and manifests are synced
      ansible.builtin.shell:
        chdir: "{{ zuul.project.src_dir }}"
        cmd: "just validate comps-sync-check && touch .zuulci.comps"
      # Still run the next step if this one fails
      ignore_errors: true

    - name: Perform dependency resolution for Silverblue
      ansible.builtin.shell:
        chdir: "{{ zuul.project.src_dir }}"
        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 Silverblue (ostree classic)
      ansible.builtin.shell:
        chdir: "{{ zuul.project.src_dir }}"
        cmd: "just compose-dry-run silverblue-ostree && touch .zuulci.silverblue-ostree"
      # 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 Kinoite (ostree classic)
      ansible.builtin.shell:
        chdir: "{{ zuul.project.src_dir }}"
        cmd: "just compose-dry-run kinoite-ostree && touch .zuulci.kinoite-ostree"
      # 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 sway-atomic && touch .zuulci.sway-atomic"
      # Still run the next step if this one fails
      ignore_errors: true

    - name: Perform dependency resolution for Sway Atomic (ostree classic)
      ansible.builtin.shell:
        chdir: "{{ zuul.project.src_dir }}"
        cmd: "just compose-dry-run sway-atomic-ostree && touch .zuulci.sway-atomic-ostree"
      # 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 budgie-atomic && touch .zuulci.budgie-atomic"
      # Still run the next step if this one fails
      ignore_errors: true

    - name: Perform dependency resolution for Budgie Atomic (ostree classic)
      ansible.builtin.shell:
        chdir: "{{ zuul.project.src_dir }}"
        cmd: "just compose-dry-run budgie-atomic-ostree && touch .zuulci.budgie-atomic-ostree"
      # Still run the next step if this one fails
      ignore_errors: true

    - name: Perform dependency resolution for COSMIC Atomic
      ansible.builtin.shell:
        chdir: "{{ zuul.project.src_dir }}"
        cmd: "just compose-dry-run cosmic-atomic && touch .zuulci.cosmic-atomic"
      # Still run the next step if this one fails
      ignore_errors: true

    - name: Perform dependency resolution for COSMIC Atomic (ostree classic)
      ansible.builtin.shell:
        chdir: "{{ zuul.project.src_dir }}"
        cmd: "just compose-dry-run cosmic-atomic-ostree && touch .zuulci.cosmic-atomic-ostree"
      # Still run the next step if this one fails
      ignore_errors: true

    - name: Compose the base variant
      ansible.builtin.command:
        chdir: "{{ zuul.project.src_dir }}"
        cmd: just compose-image base-atomic

    - name: Check if any previous dependency resolution steps failed
      ansible.builtin.shell:
        chdir: "{{ zuul.project.src_dir }}"
        cmd: "[[ -f .zuulci.comps ]] &&  [[ -f .zuulci.silverblue ]] &&  [[ -f .zuulci.silverblue-ostree ]] && [[ -f .zuulci.kinoite ]] && [[ -f .zuulci.kinoite-ostree ]] && [[ -f .zuulci.sway-atomic ]] && [[ -f .zuulci.sway-atomic-ostree ]] && [[ -f .zuulci.budgie-atomic ]]  && [[ -f .zuulci.budgie-atomic-ostree ]] && [[ -f .zuulci.cosmic-atomic ]]  && [[ -f .zuulci.cosmic-atomic-ostree ]]"