mirror of
				https://github.com/fhswf/aki_prj23_transparenzregister.git
				synced 2025-11-03 20:35:21 +01:00 
			
		
		
		
	Added a first draft of a github runner
This commit is contained in:
		
							
								
								
									
										1
									
								
								runner/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								runner/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
.env
 | 
			
		||||
							
								
								
									
										36
									
								
								runner/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								runner/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
# base
 | 
			
		||||
FROM ubuntu:latest
 | 
			
		||||
 | 
			
		||||
# set the github runner version
 | 
			
		||||
ARG RUNNER_VERSION="2.304.0"
 | 
			
		||||
ARG ARCHITECTURE=arm
 | 
			
		||||
 | 
			
		||||
# update the base packages and add a non-sudo user
 | 
			
		||||
RUN apt-get update -y && apt-get upgrade -y && useradd -m docker
 | 
			
		||||
 | 
			
		||||
# install python and the packages the your code depends on along with jq so we can parse JSON
 | 
			
		||||
# add additional packages as necessary
 | 
			
		||||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
 | 
			
		||||
    curl jq build-essential libssl-dev libffi-dev python3 python3-venv python3-dev python3-pip nano vim
 | 
			
		||||
 | 
			
		||||
# cd into the user directory, download and unzip the github actions runner
 | 
			
		||||
RUN cd /home/docker && mkdir actions-runner && cd actions-runner \
 | 
			
		||||
    && curl -O -L https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-${ARCHITECTURE}-${RUNNER_VERSION}.tar.gz \
 | 
			
		||||
    && tar xzf ./actions-runner-linux-${ARCHITECTURE}-${RUNNER_VERSION}.tar.gz \
 | 
			
		||||
    && rm *.tar.gz
 | 
			
		||||
 | 
			
		||||
# install some additional dependencies
 | 
			
		||||
RUN chown -R docker ~docker && /home/docker/actions-runner/bin/installdependencies.sh
 | 
			
		||||
 | 
			
		||||
# copy over the start.sh script
 | 
			
		||||
COPY start.sh .
 | 
			
		||||
 | 
			
		||||
# make the script executable
 | 
			
		||||
RUN chmod +x start.sh
 | 
			
		||||
 | 
			
		||||
# since the config and run script for actions are not allowed to be run by root,
 | 
			
		||||
# set the user to "docker" so all subsequent commands are run as the docker user
 | 
			
		||||
USER docker
 | 
			
		||||
 | 
			
		||||
# set the entrypoint to the start.sh script
 | 
			
		||||
CMD ["./start.sh"]
 | 
			
		||||
							
								
								
									
										14
									
								
								runner/docker-compose.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								runner/docker-compose.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
version: '3'
 | 
			
		||||
services:
 | 
			
		||||
  runner:
 | 
			
		||||
    build:
 | 
			
		||||
      context: .
 | 
			
		||||
      dockerfile: Dockerfile
 | 
			
		||||
      args:
 | 
			
		||||
        - ARCHITECTURE=${ARCHITECTURE}
 | 
			
		||||
    environment:
 | 
			
		||||
      - ORGANIZATION=${ORGANIZATION}
 | 
			
		||||
      - ACCESS_TOKEN=${ACCESS_TOKEN}
 | 
			
		||||
      - TZ=DE 
 | 
			
		||||
    hostname: ${HOSTNAME}
 | 
			
		||||
    restart: unless-stopped
 | 
			
		||||
							
								
								
									
										20
									
								
								runner/start.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								runner/start.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
ORGANIZATION=$ORGANIZATION
 | 
			
		||||
ACCESS_TOKEN=$ACCESS_TOKEN
 | 
			
		||||
 | 
			
		||||
REG_TOKEN=$(curl -sX POST -H "Authorization: token ${ACCESS_TOKEN}" https://api.github.com/orgs/${ORGANIZATION}/actions/runners/registration-token | jq .token --raw-output)
 | 
			
		||||
 | 
			
		||||
cd /home/docker/actions-runner
 | 
			
		||||
 | 
			
		||||
./config.sh --url https://github.com/${ORGANIZATION} --token ${ACCESS_TOKEN}
 | 
			
		||||
 | 
			
		||||
cleanup() {
 | 
			
		||||
    echo "Removing runner..."
 | 
			
		||||
    ./config.sh remove --unattended --token ${ACCESS_TOKEN}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
trap 'cleanup; exit 130' INT
 | 
			
		||||
trap 'cleanup; exit 143' TERM
 | 
			
		||||
 | 
			
		||||
./run.sh & wait $!
 | 
			
		||||
		Reference in New Issue
	
	Block a user