lifecycle
lifecycle copied to clipboard
Provision arm runner with Terraform
We currently have a machine in Equinix Metal that is manually provisioned. We should automate its setup.
See github.com/buildpacks/ci for how other self-hosted runners are provisioned.
Blocked on https://github.com/buildpacks/lifecycle/issues/696
Currently, we're installing jq in the test container by downloading from the releases page. However, there doesn't appear to be a binary currently for arm64: https://github.com/stedolan/jq/issues/2275. We may need to think of another solution.
Edit: looks like jq isn't needed for make test on the arm machine. We could see about removing the installation from test-linux-amd64.
make format appears to fail on arm. We might need to update the format of our build directives.
To install actions/runner:
# Create a folder
mkdir actions-runner && cd actions-runner
# Download the latest runner package
curl -O -L https://github.com/actions/runner/releases/download/v2.280.3/actions-runner-linux-arm64-2.280.3.tar.gz
# Optional: Validate the hash
echo "6b838e76a3ee3ead883e1b9b395e2044af473ccf78ed3ae86e94c8801a1b620b actions-runner-linux-arm64-2.280.3.tar.gz" | shasum -a 256 -c
# Extract the installer
tar xzf ./actions-runner-linux-arm64-2.280.3.tar.gz
sudo bin/installdependencies.sh
mkdir $PWD/actions-runner-work
export RUNNER_ALLOW_RUNASROOT="1"
./config.sh --unattended \
--labels "linux-arm64"\
--work $PWD/actions-runner-work \
--url https://github.com/buildpacks/lifecycle \
--token $TOKEN
echo "> Installing service..."
sudo ./svc.sh install
echo "> Starting service..."
sudo ./svc.sh start
Half-finished WIP branch: https://github.com/buildpacks/ci/tree/arm-runner/gh-runners/ubuntu-arm64