Run a test build¶
We recommend you run the following build without changes to confirm that everything is working as expected. After that, you can modify an existing build and start using actuated for your team.
The below steps should take less than 10 minutes.
Create a repository and workflow¶
This build will show you the specs, OS and Kernel name reported by the MicroVM.
Note that if you're running on an Arm64 machine, instead of
runs-on: actuated, you'll need to specify
runs-on: actuated-arm64 instead.
Create a test repository and a GitHub Action
name: CI on: pull_request: branches: - '*' push: branches: - master - main workflow_dispatch: jobs: specs: name: specs # runs-on: actuated-arm64 runs-on: actuated steps: - uses: actions/checkout@v1 - name: Check specs run: | ./specs.sh
Note that the
ubuntu-latest. This is how the actuated control plane knows to send this job to your agent.
specs.shto the root of the repository, and remember, that you must run
chmod +x specs.shafterwards to make it executable.
#!/bin/bash echo Information on main disk df -h / echo Memory info free -h echo Total CPUs: echo CPUs: $(nproc) echo CPU Model cat /proc/cpuinfo |grep -i "Model"|head -n 2 echo Kernel and OS info uname -a echo Generally, KVM should not be available unless specifically enabled if ! [ -e /dev/kvm ]; then echo "/dev/kvm does not exist" else echo "/dev/kvm exists" fi echo OS cat /etc/os-release echo Egress IP: curl -s -L -S https://checkip.amazonaws.com echo Speed test of Internet sudo pip install speedtest-cli speedtest-cli echo Checking Docker docker run alpine:latest cat /etc/os-release
Don't leave out this step!
chmod +x ./specs.sh
Hit commit, and watch the VM boot up.
You'll be able to see the runners registered for your organisation on the Actuated Dashboard along with the build queue and stats for the current day's builds.
If you're curious
You can view the logs of the agent by logging into one of the Actuated Servers with SSH and running the following commands:
sudo journalctl -u actuated -f -o cat # Just today's logs: sudo journalctl -u actuated --since today -o cat
And each VM writes the logs from its console and the GitHub Actions Runner to
sudo cat /var/log/actuated/*
Do you have any questions or comments? Feel free to reach out to us over Slack in the
Enable actuated for an existing repository¶
To add actuated to an existing repository, simply edit the workflow YAML file and change
runs-on: actuated and for Arm builds, change it to:
Recommended: Enable a Docker Hub mirror¶
Do you use the Docker Hub in your builds? Any Dockerfile with a
FROM that doesn't include a server name will be pulled from
docker.io, and there are strict rate-limits for unauthenticated users.
Option 1 - authenticate
docker loginor use the Docker Login Action just before you run Docker build or pull down any images with tooling like KinD 2. Option 2 - use a cache/mirror
Use our guide to Set up a registry cache and mirror - this uses less bandwidth and increases the speed of builds where images are already present in the cache.