mirror of
https://github.com/marcel-dempers/docker-development-youtube-series.git
synced 2025-06-06 17:01:30 +00:00
Merge pull request #7 from marcel-dempers/github-self-hosted
add runner and manifests
This commit is contained in:
commit
f0c8be9554
40
github/actions/self-hosted-runner/dockerfile
Normal file
40
github/actions/self-hosted-runner/dockerfile
Normal file
@ -0,0 +1,40 @@
|
||||
FROM debian:buster
|
||||
|
||||
ARG RUNNER_VERSION="2.169.1"
|
||||
|
||||
ENV GITHUB_PERSONAL_TOKEN ""
|
||||
ENV GITHUB_OWNER ""
|
||||
ENV GITHUB_REPOSITORY ""
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
curl \
|
||||
sudo \
|
||||
git \
|
||||
jq \
|
||||
tar \
|
||||
gnupg2 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN useradd -m github && \
|
||||
usermod -aG sudo github && \
|
||||
echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
#setup docker runner
|
||||
RUN curl -sSL https://get.docker.com/ | sh
|
||||
RUN usermod -aG docker github
|
||||
|
||||
USER github
|
||||
WORKDIR /home/github
|
||||
|
||||
RUN curl -O -L https://github.com/actions/runner/releases/download/v$RUNNER_VERSION/actions-runner-linux-x64-$RUNNER_VERSION.tar.gz
|
||||
RUN tar xzf ./actions-runner-linux-x64-$RUNNER_VERSION.tar.gz
|
||||
RUN sudo ./bin/installdependencies.sh
|
||||
|
||||
COPY --chown=github:github entrypoint.sh ./entrypoint.sh
|
||||
RUN sudo chmod u+x ./entrypoint.sh
|
||||
|
||||
ENTRYPOINT ["/home/github/entrypoint.sh"]
|
25
github/actions/self-hosted-runner/entrypoint.sh
Normal file
25
github/actions/self-hosted-runner/entrypoint.sh
Normal file
@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
registration_url="https://api.github.com/repos/${GITHUB_OWNER}/${GITHUB_REPOSITORY}/actions/runners/registration-token"
|
||||
echo "Requesting registration URL at '${registration_url}'"
|
||||
|
||||
payload=$(curl -sX POST -H "Authorization: token ${GITHUB_PAT}" ${registration_url})
|
||||
export RUNNER_TOKEN=$(echo $payload | jq .token --raw-output)
|
||||
|
||||
./config.sh \
|
||||
--name $(hostname) \
|
||||
--token ${RUNNER_TOKEN} \
|
||||
--url https://github.com/${GITHUB_OWNER}/${GITHUB_REPOSITORY} \
|
||||
--work ${RUNNER_WORKDIR} \
|
||||
--unattended \
|
||||
--replace
|
||||
|
||||
remove() {
|
||||
./config.sh remove --unattended --token "${RUNNER_TOKEN}"
|
||||
}
|
||||
|
||||
trap 'remove; exit 130' INT
|
||||
trap 'remove; exit 143' TERM
|
||||
|
||||
./run.sh "$*" &
|
||||
|
||||
wait $!
|
37
github/actions/self-hosted-runner/kubernetes.yaml
Normal file
37
github/actions/self-hosted-runner/kubernetes.yaml
Normal file
@ -0,0 +1,37 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: github-secret
|
||||
type: Opaque
|
||||
data:
|
||||
GITHUB_PERSONAL_TOKEN: XXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: github-runner
|
||||
labels:
|
||||
app: github-runner
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: github-runner
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: github-runner
|
||||
spec:
|
||||
containers:
|
||||
- name: github-runner
|
||||
image: aimvector/github-runner:latest
|
||||
env:
|
||||
- name: GITHUB_OWNER
|
||||
value: marcel-dempers
|
||||
- name: GITHUB_REPOSITORY
|
||||
value: docker-development-youtube-series
|
||||
- name: GITHUB_PERSONAL_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: github-secret
|
||||
key: GITHUB_PERSONAL_TOKEN
|
Loading…
x
Reference in New Issue
Block a user