Skip to content

Commit

Permalink
Merge branch 'lintao/ci/gitlab-runner' into 'master'
Browse files Browse the repository at this point in the history
add gitlab runner.

See merge request cepc/CEPCSW!4
  • Loading branch information
mirguest committed Mar 13, 2024
2 parents 77bae08 + 88e6d19 commit 3e9d626
Showing 1 changed file with 110 additions and 0 deletions.
110 changes: 110 additions & 0 deletions .ci/gitlab/setup-gitlab-runner.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
#!/bin/bash
############################################
# Description:
# Manage the gitlab runners
# Usage:
# $ ./setup-gitlab-runner new <TOKEN>
# $ ./setup-gitlab-runner start
#
# Register in crontab:
#
# */10 * * * * $HOME/setup-github-runner.sh start >& /tmp/$USER/github-runner/start.log
#
# Author: Tao Lin <lintao AT ihep.ac.cn>
############################################

#############################################
# Configuration
#############################################
export RUNNER_TOP_DIR=/tmp/$USER/gitlab-runner
export SINGULARITY_BINDPATH=/cvmfs
export RUNNER_URL=https://code.ihep.ac.cn

[ -d "$RUNNER_TOP_DIR" ] || mkdir $RUNNER_TOP_DIR

#############################################
# Create a new gitlab runner (glr)
#############################################

# ./gitlab-runner register --url https://code.ihep.ac.cn --token XXXXXX

function glr-preq() {
# if $HOME/gitlab-runner exists
if [ -f "$HOME/gitlab-runner" ]; then
cp $HOME/gitlab-runner .
else
curl -L --output gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
fi

chmod +x gitlab-runner

}

function glr-new() {
local runner_url=$1; shift
local token=$1; shift
local executor=${1:-shell}; shift
local shell=${1:-bash}; shift

pushd $RUNNER_TOP_DIR

# check if gitlab-runner exists
if [ ! -f gitlab-runner ]; then
glr-preq
fi

./gitlab-runner register --url $runner_url --token $token --executor $executor --shell $shell

popd
}

function new() {
local token=$1; shift
if [ -z "$token" ]; then
echo "Please pass the token to this script" 1>&2
exit -1
fi
glr-new $RUNNER_URL $token

}

#############################################
# Create a new gitlab runner (glr)
#############################################

function glr-start() {
local glr=gitlab-runner

pushd $RUNNER_TOP_DIR

apptainer instance start ~/github-runner.sif ${glr}
apptainer run instance://${glr} bash -c "./gitlab-runner run -c ./config.toml &"

popd
}

function start() {
glr-start
}

#############################################
# Command line options
#############################################

cmd=$1; shift
if [ -z "$cmd" ]; then
echo "Please specify the command to be invoked" 1>&2
exit -1
fi

case $cmd in
new)
new $*
;;
start)
start $*
;;
*)
echo "Unknown command '$cmd'" 1>&2
;;
esac

0 comments on commit 3e9d626

Please sign in to comment.