#!/usr/bin/env bash # Install and upgrade basic packages export DEBIAN_FRONTEND="noninteractive" echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections echo 'APT::Get::Assume-Yes "true";' | sudo tee /etc/apt/apt.conf.d/assumeyes sudo apt-get update sudo apt-get full-upgrade sudo apt-get install ca-certificates curl gnupg jq # Install GCP OS Config Agent sudo su -c "echo 'deb http://packages.cloud.google.com/apt google-compute-engine-focal-stable main' > /etc/apt/sources.list.d/google-compute-engine.list" curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo apt-get update sudo apt-get install google-osconfig-agent # Download Actions runner version="2.317.0" sudo mkdir -p /opt/github/actions-runner cd /opt/github/actions-runner || exit sudo curl -O -L https://github.com/actions/runner/releases/download/v$version/actions-runner-linux-x64-$version.tar.gz sudo tar xzf ./actions-runner-linux-x64-$version.tar.gz # Move startup and shutdown scrips into place sudo mv /tmp/startup_script.sh /opt/github/actions-runner/startup_script.sh sudo mv /tmp/shutdown_script.sh /opt/github/actions-runner/shutdown_script.sh # Set up Docker (https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository) sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install --allow-downgrades docker-ce=5:24.0.9-1~ubuntu.22.04~jammy docker-ce-cli=5:24.0.9-1~ubuntu.22.04~jammy containerd.io docker-buildx-plugin sudo usermod -aG docker "$USER" # Configure build user sudo groupadd -g 21700 build sudo adduser --disabled-password --uid 21700 --gid 21700 --gecos "" build sudo usermod -aG sudo build echo "build ALL=(ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers sudo usermod -aG docker build sudo chown -R build /opt/github/actions-runner # Pre-pull build container gcloud auth print-access-token | sudo docker login -u oauth2accesstoken --password-stdin https://us-east1-docker.pkg.dev sudo docker pull us-east1-docker.pkg.dev/ret-edge-pltf-infra/workloads/build-fractions:dev sudo reboot