# -*- 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 "" config.vm.hostname = "" # 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" # To ensure we don't run out of memory, we enable dynamic Swap Space. This is # done via the "swapspace" daemon: https://pqxx.org/development/swapspace/ config.vm.provision :shell, inline: "sudo apt install swapspace -y" # 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, run: 'always', inline: <<-SHELL # When running gem5 in SE mode we must overcommit memory. # This is run on every startup of the VM. /sbin/sysctl vm.overcommit_memory=1 SHELL 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/ --token $(curl -L \ -X POST -H "Accept: application/vnd.github+json" -H "Authorization: Bearer " \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos//actions/runners/registration-token | jq -r '.token') # start the runner nohup ./run.sh & fi SHELL end