title: "No Stages/Jobs jobs for this pipeline" for branch pipeline
body: <p>Given the following <code>.gitlab-ci.yml</code>:</p>
  <pre><code>---
  stages:
    - .pre
    - test
    - build
  
  compile-build-pipeline:
    stage: .pre
    script: [...]
    artifacts:
      paths: [&quot;.artifacts/build.yaml&quot;]
  
  lint-source:
    stage: .pre
    script: [...]
  
  run-tests:
    stage: test
    rules:
      - if: '$CI_COMMIT_BRANCH == &quot;$CI_DEFAULT_BRANCH&quot;'
    trigger:
      strategy: depend
      include:
        artifact: .artifacts/tests.yaml
        job: &quot;compile-test-pipeline&quot;
    needs: [&quot;compile-test-pipeline&quot;]
  
  build-things:
    stage: test
    rules:
      - if: '$CI_COMMIT_BRANCH == &quot;$CI_DEFAULT_BRANCH&quot;'
    trigger:
      strategy: depend
      include:
        artifact: .artifacts/build.yaml
        job: &quot;compile-build-pipeline&quot;
    needs: [&quot;compile-build-pipeline&quot;]
  ...
  </code></pre>
  <p>The configuration should always run (any branch, any source). Tests and build jobs should be run only on the default branch.</p>
  <p><em>However</em>, no jobs are run for merge requests, and manually triggering the pipeline on branches other than the default one give the error <code>No Jobs/Stages for this Pipeline</code>.</p>
  <p>I've tried explicitly setting an always run rule using <code>rules: [{if: '$CI_PIPELINE_SOURCE'}]</code> to the jobs in the <code>.pre</code> stage, but no dice.</p>
  <p>What am I doing wrong?</p>