
- GitHub-hosted runners: GitHub provisions and scales virtual machines for you, maintains the execution environment, and provides logs and workflow reporting.
- Self-hosted runners: You provide and manage the machines (physical or virtual) that run your jobs, which lets you control hardware, software, and networking.
actions/cache) which you can configure in workflows to speed up repeated runs and reduce network usage.

main, sets up Python, installs dependencies, and runs tests:
Use the GitHub Actions Marketplace to find reusable actions for common tasks such as checking out code, setting up runtimes, caching dependencies, or deploying to cloud providers. Also consider
actions/cache for dependency caching to speed up pipeline runs: https://github.com/actions/cache.- Integrated: Workflows live with your code, reducing context switching.
- Flexible: Support for multiple OSes and custom runners.
- Scalable: GitHub-hosted runners scale automatically; self-hosted lets you control resources.
- Extensible: Marketplace offers many prebuilt actions to streamline common steps and integrations.
- GitHub Actions docs: https://docs.github.com/actions
- GitHub Actions Marketplace: https://github.com/marketplace?type=actions
actions/cacheaction: https://github.com/actions/cache