rusefi-ci/scripts/05_create_new_runner.sh

39 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
LABEL=${2:-"ubuntu-latest"}
IMAGE_HASH=$(docker image inspect rusefi-ci --format "{{.Id}}" 2>/dev/null)
read -p "Enter the rusEFI board serial ID: " HARDWARE_CI_SERIAL
read -p "Enter the STLink ID: " HARDWARE_CI_STLINK_SERIAL
read -p "Enter the CI VBATT: " HARDWARE_CI_VBATT
echo "go to: https://github.com/rusefi/rusefi/settings/actions/runners/new and get a new runner token"
read -p "Enter your runner token: " RUNNER_TOKEN
DOCKER_RUNNER_IMAGE=$(docker images | grep -ioh "\S*rusefi-ci\S*" | head -1)
if CONTAINER_HASH=$(docker container inspect $RUNNER_NAME --format "{{.Image}}" 2>/dev/null) && [ "$IMAGE_HASH" = "$CONTAINER_HASH" ]; then
echo "There is already a runner with the same configuration, skipping"
docker start -i "$RUNNER_NAME"
else
if docker container inspect "$RUNNER_NAME" >/dev/null 2>/dev/null; then
echo "existing runner but there is a more recent base image, recreating"
docker stop "$RUNNER_NAME"
docker rm "$RUNNER_NAME"
fi
if [ -n "$3" ]; then
MOUNT="-v $PWD/$3:/opt/actions-runner/rusefi-env/$RUNNER_NAME:ro"
fi
docker run --name $RUNNER_NAME --detach --privileged --restart=unless-stopped $MOUNT \
-e RUNNER_NAME="$RUNNER_NAME" \
-e RUNNER_LABELS="$RUNNER_NAME" \
-e RUNNER_TOKEN="$RUNNER_TOKEN" \
-e HARDWARE_CI_SERIAL="$HARDWARE_CI_SERIAL" \
-e HARDWARE_CI_STLINK_SERIAL="$HARDWARE_CI_STLINK_SERIAL" \
-e HARDWARE_CI_VBATT="$HARDWARE_CI_VBATT" \
-e RUNNER_REPOSITORY_URL=https://github.com/rusefi/rusefi \
"$DOCKER_RUNNER_IMAGE:main"
fi