Steps to follow to add a new self-hosted runner for GitHub. You will need access to the Equinix account for Vitess's CI testing and Admin access to Vitess.
- Spawn a new c3.small instance and name it on the Equinix dashboard
- use ssh to connect to the server
- Install docker on the server by running the following commands
curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh
- Create a new user with a home directory for the action runner
useradd -m github-runner
- Add the user to the docker group so that it can use docker as well
sudo usermod -aG docker github-runner
- Switch to the newly created user
su github-runner
- Goto the home directory of the user and follow the steps in Adding self hosted runners to repository
mkdir github-runner-<num> && cd github-runner-<num>curl -o actions-runner-linux-x64-2.280.3.tar.gz -L https://github.com/actions/runner/releases/download/v2.280.3/actions-runner-linux-x64-2.280.3.tar.gztar xzf ./actions-runner-linux-x64-2.280.3.tar.gz./config.sh --url https://github.com/vitessio/vitess --token <token> --name github-runner-<num>- With a screen execute
./run.sh
- Set up a cron job to remove docker volumes and images every week
crontab -e- Within the file add a line
8 5 * * 6 docker system prune -f --volumes --all
You will need access to the self-hosted runner machine to be able to connect to it via SSH.
- From the output of the run on GitHub Actions, find the
Machine name - Find that machine on the Equinix dashboard and connect to it via ssh
- From the output of the
Print Volume Usedstep find the volume used - From the output of the
Build Docker Imagestep find the docker image built for this workflow - On the machine run
docker run -d -v <volume-name>:/vt/vtdataroot <image-name> /bin/bash -c "sleep 600000000000" - On the terminal copy the docker id of the newly created container
- Now execute
docker exec -it <docker-id> /bin/bash - Use the
/vt/vtdatarootdirectory to find the output of the run along with the debug files