For a public GitHub 29 repository, Actions is hard to beat: hosted Linux minutes are free and there is nothing to patch. A server of your own earns its upkeep when:
The build must reach private things: databases, hardware test rigs, air-gapped networks, an on-premises registry. Self-hosted Actions runners (Self-Hosted and Pricing) can too, but then you run machines anyway.
The code is not only on GitHub. Jenkins 8,793 builds from GitLab 377 , Bitbucket 2,046 , Gitea 3,896 , Subversion 129 and Perforce 27,942 alike.
Builds are long or heavy. Private-repository minutes are billed; your own hardware costs electricity, and Jenkins has no equivalent of the 6-hour limit on a hosted job.
You must control the orchestrator: its version, data retention, audit log and permitted plugins.
You already have one. Existing Jenkinsfiles, shared libraries and trained people are an asset; many teams run Actions for pull-request checks and Jenkins for release pipelines.
The price is operations: upgrades, plugins, backups and security (Securing Jenkins and Backups and Upgrades).