We can implement CI workflow using GitHub's runner and SSH into our server to deploy. However, because of our extra-tier IP restricted firewall. We cannot use GitHub runner as it have the same IP address ranges as Azure Data centers. Furthermore, SSH is not possible unless we request Media3 to turn off DUO authentication for the server web user account. I created a workflow using GitHub Action with our own self-hosted runner (which is installed under my superuser, the web user does not have enough privilege to install and run the runner ) and execute sudo command as the web user account.
...
Adding a self-hosted runner to a repository or an organizationorganization
I added our dev server to the organization as many repositories uses the dev server. For prod server that only related to one repo (such as SPI), it's better to install to a repository.
...
On GitHub, navigate to the main page of the organization.
Under your organization name, click Settings.
In the left sidebar, click Actions.
Under "Self-hosted runners," click Add new, then click New runner.
Select the operating system and architecture of your self-hosted runner machine.
You will see instructions showing you how to download the runner application and install it on your self-hosted runner machine.
Open a shell on your self-hosted runner machine and run each shell command in the order shown.
Note: On Windows, if you want to install the self-hosted runner application as a service, you must open a shell with administrator privileges. We also recommend that you use
C:\actions-runneras the directory for the self-hosted runner application so that Windows system accounts can access the runner directory.The instructions walk you through completing these tasks:
- Downloading and extracting the self-hosted runner application.
- Running the
configscript to configure the self-hosted runner application and register it with GitHub Actions. Theconfigscript requires the destination URL and an automatically-generated time-limited token to authenticate the request.- On Windows, the
configscript also asks if you would like to install the self-hosted runner application as a service. For Linux and macOS, you can install a service after you finish adding the runner. For more information, see "Configuring the self-hosted runner application as a service."
- On Windows, the
- Running the self-hosted runner application to connect the machine to GitHub Actions.
Checking that your self-hosted runner was successfully added
...
Adding a self-hosted runner to an organization
How to use GitHub Actions with your own self-hosted runner (aka build agent)
Adding a self-hosted runner to a repository or an organization
...



