---
name: "CI"
{% raw %}
concurrency:
  group: ${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

on: # yamllint disable-line rule:truthy
  pull_request:
    branches: [main]
  workflow_dispatch:
  # TO-DO: Below is an example cron scheduler. Uncomment and tweak it as per your requirement
  # schedule:
    # - cron: '0 0 * * *'

jobs:
  changelog:
    uses: ansible/ansible-content-actions/.github/workflows/changelog.yaml@main
    if: github.event_name == 'pull_request'
  build-import:
    uses: ansible/ansible-content-actions/.github/workflows/build_import.yaml@main
  ansible-lint:
    uses: ansible/ansible-content-actions/.github/workflows/ansible_lint.yaml@main
  sanity:
    uses: ansible/ansible-content-actions/.github/workflows/sanity.yaml@main
  unit-galaxy:
    uses: ansible/ansible-content-actions/.github/workflows/unit.yaml@main
  unit-source:
    uses: ansible-network/github_actions/.github/workflows/unit_source.yml@main
    with:
      collection_pre_install: >-
        git+https://github.com/ansible-collections/ansible.utils.git
  all_green:
    if: ${{ always() }}
    needs:
      - changelog
      - build-import
      - sanity
      - unit-galaxy
      - unit-source
      - ansible-lint
    runs-on: ubuntu-latest
    steps:
      - run: >-
          python -c "assert 'failure' not in
          set([
          '${{ needs.changelog.result }}',
          '${{ needs.sanity.result }}',
          '${{ needs.unit-galaxy.result }}'
          '${{ needs.ansible-lint.result }}'
          '${{ needs.unit-source.result }}'
          ])"
{%- endraw %}
