GitHub has a feature called “GitHub Actions". You put a workflow in your repository. When the specified event happens, the workflow starts and executes whatever commands you put in there.
People use the workflows for various activities; typical tasks include compiling, testing, scanning, packaging, and deploying code whenever it changes. That way, developers make a change, push it to GitHub, and just wait for GitHub to do those tasks while the developer moves on to something else. The workflows are basically a script, in yaml syntax, that have features related to coding, and can reuse actions from other people that share them.
The workflows need to run on some actual hardware. GitHub does provide VMs for free (up to a certain amount) to run those workflows. Once the workflow is done, the vm moves on to work on other workflows from other people. These are called the GitHub-hosted runners. They have Linux, Windows, and Mac runners, with different limits. After the free quota is reached, GitHub can charge for additional runner time.
Often, people want to go beyond these limits, or they require the workflows to have access to internal resources. One way to do it is to configure their own computers (at home or datacenter) as runners; these are called self-hosted runners. The workflows will run on your own machines, but managed by GitHub. Up until now, you can run as many workflows as you wanted in your self-hosted runners for free. Now they will charge for workflow execution even if they run in your own hardware.