This adds files that can be used to configure Vagrant machines that will be used to test running gem5 alongside Github Actions. Change-Id: I52b0f39b6e6044c22481f02163d5fc01eab76788 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/71098 Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu> Maintainer: Bobby Bruce <bbruce@ucdavis.edu> Tested-by: kokoro <noreply+kokoro@google.com>
50 lines
2.1 KiB
Ruby
50 lines
2.1 KiB
Ruby
# -*- mode: ruby -*-
|
|
# vi: set ft=ruby :
|
|
|
|
Vagrant.configure("2") do |config|
|
|
config.vm.box = "generic/ubuntu2204"
|
|
config.vm.box_check_update = true
|
|
config.vm.define "<VM NAME>"
|
|
config.vm.hostname = "<VM NAME>"
|
|
# allows us to ssh into the machine, addressing the problem below
|
|
# https://www.reddit.com/r/vagrant/comments/sb7hfl/new_to_vagrant_getting_efault_warning/
|
|
config.ssh.username = "vagrant"
|
|
config.ssh.password = "vagrant"
|
|
|
|
config.vm.provider "libvirt" do |vb|
|
|
# Customize the amount of cpus and memory on the VM:
|
|
vb.cpus = "4".to_i
|
|
vb.memory = "16384".to_i
|
|
end
|
|
|
|
# sets up vm
|
|
config.vm.provision :shell, path: "provision_root.sh"
|
|
config.vm.provision :shell, privileged: false, path: "provision_nonroot.sh"
|
|
# The provision_root.sh adds the vagrant user to the docker group, so we need to reload the VM.
|
|
config.vm.provision :reload
|
|
config.vm.provision :shell, privileged: false, run: 'always', inline: <<-SHELL
|
|
if [ -d ~/actions-runner ]; then
|
|
# This will be run everytime the VM is run (once created).
|
|
cd actions-runner
|
|
nohup ./run.sh &
|
|
else
|
|
# This will be run the first time the VM is created.
|
|
mkdir ~/actions-runner && cd ~/actions-runner
|
|
curl -so actions-runner-linux-x64-2.304.0.tar.gz -L \
|
|
https://github.com/actions/runner/releases/download/v2.304.0/actions-runner-linux-x64-2.304.0.tar.gz
|
|
tar xzf ./actions-runner-linux-x64-2.304.0.tar.gz
|
|
|
|
# configure the runner
|
|
# echo automatically sets the name of the runner, and the tags
|
|
# create a personal access token with admin permission and copy it into the curl command
|
|
echo -ne '\n\nbuild\n\n' | ./config.sh --url https://github.com/<GITHUB REPO> --token $(curl -L \
|
|
-X POST -H "Accept: application/vnd.github+json" -H "Authorization: Bearer <PERSONAL ACCESS TOKEN>" \
|
|
-H "X-GitHub-Api-Version: 2022-11-28" \
|
|
https://api.github.com/repos/<GITHUB REPO>/actions/runners/registration-token | jq -r '.token')
|
|
# start the runner
|
|
nohup ./run.sh &
|
|
fi
|
|
SHELL
|
|
|
|
end
|