Posts Deploy your self-hosted github action runner
Post
Cancel

Deploy your self-hosted github action runner

Prerequisites

Purpose of this documentation to setup self-hosted github action runner and use it for continuous integration and deployment.

  • create work directory and give user permissions
1
2
sudo mkdir /devops
sudo chown $USER -R /devops
  • Go to work directory
1
cd /devops
  • Create actions-runner directory
1
2
mkdir actions-runner
cd actions-runner
  • Pull actions runner code

    While creating this documentation github action runner version was 2.317.0. Kindly note that this version may not be the latest one.

1
2
3
4
curl -o actions-runner-linux-x64-2.317.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.317.0/actions-runner-linux-x64-2.317.0.tar.gz
echo "9e883d210df8c6028aff475475a457d380353f9d01877d51cc01a17b2a91161d  actions-runner-linux-x64-2.317.0.tar.gz" | shasum -a 256 -c
tar xzf ./actions-runner-linux-x64-2.317.0.tar.gz
rm ./actions-runner-linux-x64-2.317.0.tar.gz
  • Configure action runner
1
./config.sh --url https://github.com/<organization-name> --token <token>
  • Create service file
1
sudo touch /etc/systemd/system/github-runner.service
  • Add following content to service file
1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=GitHub Runner
After=network.target

[Service]
ExecStart=/devops/actions-runner/run.sh
User=<user-name>
WorkingDirectory=/devops/actions-runner
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
  • Reload daemon
1
sudo systemctl daemon-reload
  • Enable service
1
sudo systemctl enable github-runner
  • Start service
1
sudo systemctl start github-runner