#!/bin/bash # We need RW for the install process sudo mount -o remount rw / # Ensure filesystem is remounted as read-only on script exit trap "sudo mount -o remount ro /" EXIT # Define directories BASE_DIR="/data/gitlab" BIN_DIR="$BASE_DIR/bin" CONFIG_DIR="$BASE_DIR" BUILDS_DIR="$BASE_DIR/builds" OPENPILOT_DIR="$BASE_DIR/openpilot" LOGS_DIR="$BASE_DIR/logs" CACHE_DIR="$BASE_DIR/cache" GITLAB_RUNNER_USERNAME="gitlab-runner" GROUPS_NEEDED="comma,gpu,gpio" # Create necessary directories sudo mkdir -p "$BIN_DIR" "$BUILDS_DIR" "$LOGS_DIR" "$CACHE_DIR" "$OPENPILOT_DIR" # Download the GitLab Runner binary sudo curl -L --output "$BIN_DIR/gitlab-runner" "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm64" # Give it permission to execute sudo chmod +x "$BIN_DIR/gitlab-runner" # Create a GitLab Runner user sudo useradd --comment 'GitLab Runner' --create-home --home-dir ${BASE_DIR} ${GITLAB_RUNNER_USERNAME} --shell /bin/bash -G ${GROUPS_NEEDED} || sudo usermod -aG ${GROUPS_NEEDED} gitlab-runner # Clean bash_logout as it break gitlab pipelines sudo truncate -s 0 ${BASE_DIR}/.bash_logout # Create a configuration file cat <