When using self-hosted runners, you are responsible for patching the operating system and installing all the software required to build the application.
Use jobs.<job_id>.needs to identify any jobs that must complete successfully before this job will run.
You use GitHub secrets to securely store sensitive information like credentials