зеркало из https://github.com/github/vitess-gh.git
2.4 KiB
2.4 KiB
Setting up and using GitHub Self hosted runners
Adding a new self-hosted runner
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.sh
sudo 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.gz
tar 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
Using a self-hosted runner to debug a flaky test
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 Used
step find the volume used - From the output of the
Build Docker Image
step 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/vtdataroot
directory to find the output of the run along with the debug files