• Voytrekk@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 days ago

    You can have certain jobs run based on what directories or files were modified. If projectA was the only one modified, it can run just projectA’s tests.

    • nous@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 days ago

      Yes. They can. But they do not mix well with required checks. From githubs own documentation:

      If a workflow is skipped due to path filtering, branch filtering or a commit message, then checks associated with that workflow will remain in a “Pending” state. A pull request that requires those checks to be successful will be blocked from merging.

      If, however, a job within a workflow is skipped due to a conditional, it will report its status as “Success”. For more information, see Using conditions to control job execution.

      So even with github actions you cannot mix a required check and path/branch or any filtering on a workflow as the jobs will hang forever and you will never be able to merge the branch in. You can do either or, but not both at once and for larger complex projects you tend to want to do both. But instead you need complex complex workflows or workflows that always start and instead do internal checks to detect if they need to actually run or not. And this is with github actions - it is worst for external CICD tooling.