...
1#!/usr/bin/env bash
2
3# Install and upgrade basic packages
4export DEBIAN_FRONTEND="noninteractive"
5echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
6echo 'APT::Get::Assume-Yes "true";' | sudo tee /etc/apt/apt.conf.d/assumeyes
7sudo apt-get update
8sudo apt-get full-upgrade
9sudo apt-get install ca-certificates curl gnupg jq
10
11# Install GCP OS Config Agent
12sudo 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"
13curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
14sudo apt-get update
15sudo apt-get install google-osconfig-agent
16
17# Download Actions runner
18version="2.317.0"
19sudo mkdir -p /opt/github/actions-runner
20cd /opt/github/actions-runner || exit
21sudo curl -O -L https://github.com/actions/runner/releases/download/v$version/actions-runner-linux-x64-$version.tar.gz
22sudo tar xzf ./actions-runner-linux-x64-$version.tar.gz
23
24# Move startup and shutdown scrips into place
25sudo mv /tmp/startup_script.sh /opt/github/actions-runner/startup_script.sh
26sudo mv /tmp/shutdown_script.sh /opt/github/actions-runner/shutdown_script.sh
27
28# Set up Docker (https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository)
29sudo install -m 0755 -d /etc/apt/keyrings
30curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
31sudo chmod a+r /etc/apt/keyrings/docker.gpg
32echo \
33 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
34 $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
35 sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
36sudo apt-get update
37sudo 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
38sudo usermod -aG docker "$USER"
39
40# Configure build user
41sudo groupadd -g 21700 build
42sudo adduser --disabled-password --uid 21700 --gid 21700 --gecos "" build
43sudo usermod -aG sudo build
44echo "build ALL=(ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers
45sudo usermod -aG docker build
46sudo chown -R build /opt/github/actions-runner
47
48# Pre-pull build container
49gcloud auth print-access-token | sudo docker login -u oauth2accesstoken --password-stdin https://us-east1-docker.pkg.dev
50sudo docker pull us-east1-docker.pkg.dev/ret-edge-pltf-infra/workloads/build-fractions:dev
51
52sudo reboot
View as plain text