How to skip steps or jobs in GitHub Actions for PRs from forks

‚ÄčEncrypted secrets in GitHub actions aren't available for builds from forks, so if your build script includes PRs, like Avatar:

branches: [ main, dev, 'feature/*', 'rel/*' ]
types: [opened, synchronize, reopened]

You may need to limit steps or entire jobs from running when PRs are coming from forks due to missing secrets (i.e. pushing an output package to a CI nuget feed, say).

The "magic" thing is to use an if condition with the following expression:

name: push
runs-on: ubuntu-latest
needs: [build, acceptance]
if: ${{ !github.event.pull_request.head.repo.fork }}

Note that in the above case, an entire job is skipped, but you can also apply it to a step instead.