# Add option for job \`requires\` to be or-ed instead of and-ed

**URL:** <https://discuss.circleci.com/t/add-option-for-job-requires-to-be-or-ed-instead-of-and-ed/39222>\
**Category:** Product Feedback\
**Tags:** workflow, circle-yml\
**Created:** [February 23, 2021, 1:13pm UTC](https://discuss.circleci.com/t/add-option-for-job-requires-to-be-or-ed-instead-of-and-ed/39222 "2021-02-23T13:13:09Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![yousefhamza](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/yousefhamza/32/18734_2.png) [@yousefhamza](https://discuss.circleci.com/u/yousefhamza)\
**Post date:** [February 23, 2021, 1:13pm UTC](https://discuss.circleci.com/t/add-option-for-job-requires-to-be-or-ed-instead-of-and-ed/39222/1 "2021-02-23T13:13:09Z")

</div>

I have a case where I want multiple a job to depend on only 1 of multiple jobs

```auto
workflows:
  version: 2
  build-test-and-generate-binary:
    jobs:
      - job1
      - job2
      - job3:
          type: approval
          requires: # Want to have the option here so that if *either* job1 *or* job2 ends, job3 will start.
            - job1
            - job2
      - job4:
          requires:
            - job3

```

---

<div class="post-metadata">

**Author:** ![danielzen](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/danielzen/32/27598_2.png) [@danielzen](https://discuss.circleci.com/u/danielzen)\
**Post date:** [June 11, 2021, 3:20pm UTC](https://discuss.circleci.com/t/add-option-for-job-requires-to-be-or-ed-instead-of-and-ed/39222/2 "2021-06-11T15:20:17Z")

</div>

[~~@~~~~ yousefhamza~~](https://discuss.circleci.com/u/yousefhamza)~~Did ~~~~you~~~~ ever ~~~~come~~~~ up ~~~~with~~~~ a ~~~~solution~~~~ for ~~~~this~~~~?~~

---

<div class="post-metadata">

**Author:** ![yousefhamza](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/yousefhamza/32/18734_2.png) [@yousefhamza](https://discuss.circleci.com/u/yousefhamza)\
**Post date:** [June 13, 2021, 8:49am UTC](https://discuss.circleci.com/t/add-option-for-job-requires-to-be-or-ed-instead-of-and-ed/39222/3 "2021-06-13T08:49:56Z")

</div>

No I didn’t 😕

---

<div class="post-metadata">

**Author:** ![yannCI](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/yannci/32/24866_2.png) [@yannCI](https://discuss.circleci.com/u/yannCI)\
**Post date:** [August 4, 2021, 11:12pm UTC](https://discuss.circleci.com/t/add-option-for-job-requires-to-be-or-ed-instead-of-and-ed/39222/4 "2021-08-04T23:12:09Z")

</div>

👋 Hi @yousefhamza,

Maybe you could use the same logic as [this workaround](https://discuss.circleci.com/t/workaround-run-jobs-sequentially-regardless-of-the-outcome-of-the-required-jobs/40807) 🤔

In your case though, the loop in the `waiter` job would be slightly different:

```auto
      - run: |
          until [[$(curl --location --request GET "https://circleci.com/api/v2/workflow/$CIRCLE_WORKFLOW_ID/job" --header "Circle-Token: $CCI_TOKEN"| jq -r '.items[]|select(.name == "job1" or .name == "job2")|.status' | grep -c "success") -gt 0 ]]; do
            sleep 1
          done

```

And then your workflow would be:

```auto
workflows:
  version: 2
  build-test-and-generate-binary:
    jobs:
      - job1
      - job2
      - waiter
      - job3:
          type: approval
          requires:
            - waiter
      - job4:
          requires:
            - job3

```

With the above configuration, `job3` will start as soon as either `job1` or `job2` finishes successfully.

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/circleci/original/3X/5/1/511608acda8e85906e15909b57bd0a46c1dbe291.png) [@system](https://discuss.circleci.com/u/system)\
**Post date:** [October 8, 2021, 11:58pm UTC](https://discuss.circleci.com/t/add-option-for-job-requires-to-be-or-ed-instead-of-and-ed/39222/5 "2021-10-08T23:58:19Z")

</div>

Closed on October 8, 2021, 11:58pm UTC

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.
