289 words
1 minute
Gitea act runner setup

Gitea has their own runner service that is a drop in replacement for GitHub actions. While I was using Gitea actions it ran workflows directly from GitHub actions without having to alter most of the steps. I was quite happy about it. In order to use Gitea Actions you do need to turn it in, I made a post on Monday about how to add that to your Gitea config

apiVersion: v1 stringData: token: "" # your registration token, can be found in the admin page kind: Secret metadata: name: runner-secret namespace: gitea type: Opaque --- apiVersion: apps/v1 kind: StatefulSet metadata: labels: app: act-runner name: act-runner namespace: gitea spec: replicas: 3 # will create 3 instances on separate nodes selector: matchLabels: app: act-runner template: metadata: labels: app: act-runner spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: app.kubernetes.io/name operator: In values: - act-runner topologyKey: kubernetes.io/hostname volumes: - name: docker-certs emptyDir: {} securityContext: fsGroup: 1000 containers: - name: act-runner image: gitea/act_runner:nightly command: ["sh", "-c", "while ! nc -z localhost 2376 </dev/null; do echo 'waiting for docker daemon...'; sleep 5; done; /sbin/tini -- /opt/act/run.sh"] resources: limits: memory: "2Gi" requests: memory: "2Gi" env: - name: DOCKER_HOST value: tcp://localhost:2376 - name: DOCKER_CERT_PATH value: /certs/client - name: DOCKER_TLS_VERIFY value: "1" - name: GITEA_RUNNER_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: GITEA_INSTANCE_URL value: http://gitea-http:3000 - name: GITEA_RUNNER_REGISTRATION_TOKEN valueFrom: secretKeyRef: name: runner-secret key: token volumeMounts: - name: docker-certs mountPath: /certs - name: daemon image: docker:24.0.7-dind env: - name: DOCKER_TLS_CERTDIR value: /certs securityContext: privileged: true volumeMounts: - name: docker-certs mountPath: /certs volumeClaimTemplates: - metadata: name: gitea namespace: gitea spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: nfs-client

The start command is mostly there as a workaround for docker in docker as It’s not properly supported yet.

Gitea act runner setup
https://edwardbeazer.com/posts/gitea-act-runner-setup/
Author
Edward Beazer
Published at
2024-03-08