Files
niko 14a411e340
CI Main / Load example-gitea-env.conf to pipeline env (push) Successful in 18s
CI Main / Check existing artifact (push) Successful in 12s
unit-tests Link to Bats reports
CI Main / Bats tests (push) Successful in 1m41s
acc-tests Link to Cucumber reports
CI Main / Cucumber tests (push) Successful in 1m7s
ci-docker-build-push Docker build & push 0.2.1 OK
CI Main / Build & Push Docker (push) Successful in 34s
CI Main / Report Summary (push) Successful in 4s
consumer project käyttöönotossa tulleitea muutoksia (#12)
Co-authored-by: moilanik <niko.moilanen@tietoevry.com>
Reviewed-on: #12
2026-06-16 04:48:05 +03:00

3.0 KiB

Gitea Actions — Runtime-ympäristö

Kuuluu arkkitehtuuriin: architecture.md. Asennusohjeet: README.md.

Tämä dokumentti kuvaa miten Gitea Actions runner suorittaa workflowt ja minkälaisen runtime-ympäristön se tarjoaa.


Runnerin rooli

Runner on pelkkä suoritin. Se ei sisällä build-työkaluja (Maven, npm, Docker) — ne tulevat workflow'n määrittelemistä konteista. Runner vastaanottaa työt Gitea-palvelimelta, ajaa ne ja raportoi tulokset takaisin.

Gitea → dispatch job → Runner → pull containers → execute steps → report status

Runnerilla on yksi vastuu: suorittaa workflow-steppejä. Kaikki runtime-ympäristön määrittely tapahtuu workflow-tiedostossa.

Kontit ja palvelut

Jokainen job voi määritellä käyttämänsä kontit. Eri jobeilla voi olla eri kontti:

container: — ajonaikainen ympäristö

Workflow-steppi ajetaan tässä kontissa. Eri jobeilla voi olla eri kontti:

jobs:
  build-java:
    runs-on: ubuntu-latest
    container: maven:3.9-eclipse-temurin-21
    steps:
      - run: mvn verify

  build-node:
    runs-on: ubuntu-latest
    container: node:22
    steps:
      - run: npm ci && npm test

services: — rinnakkaiset palvelut

Palvelukontit käynnistyvät jobin ajaksi ja ovat käytettävissä localhost-verkon kautta:

jobs:
  build-with-docker:
    runs-on: ubuntu-latest
    container: maven:3.9-eclipse-temurin-21
    services:
      docker:
        image: docker:dind
        env:
          DOCKER_TLS_CERTDIR: ""
    steps:
      - run: mvn package
      - run: docker build -t my-app .

Kontit vedetään ajonaikaisesti registrystä (Docker Hub, Gitea Packages, mikä tahansa). Runnerin ei tarvitse tietää niistä etukäteen.

Docker-in-Docker

Runner-podilla on kaksi tapaa käyttää Dockeria:

Tapa Kuvaus Sopii
DinD (docker:dind) Oma Docker daemon service-kontissa Suositeltu K8s-ympäristöön
Docker socket Jaettu /var/run/docker.sock Yksinkertainen, vähemmän eristetty

Gitea act runnerin Helm chart tukee DinD:tä oletuksena.

Label-järjestelmä

Runnerit rekisteröidään labelilla. Workflow valitsee runnerin runs-on-kentällä:

jobs:
  build:
    runs-on: ubuntu-latest    # ← label

Labelit asetetaan runnerin rekisteröinnissä:

# Helm
--set runner.labels="ubuntu-latest,docker,arm64"

# Binääri
./act_runner register --labels ubuntu-latest,docker

Eri labelit mahdollistavat erikoistuneet runnerit (ARM, GPU, Windows), mutta MVP:ssä riittää yksi ubuntu-latest.

Runner-tasot

Taso Scope Riski Käyttötapaus
Global Kaikki organisaatiot ja repot Token-vuoto → hyökkääjä voi ajaa koodia missä tahansa Jaettu infra, keskitetty hallinta
Organization Yhden organisaation repot Rajoittuu yhteen orgiin Per organisaatio, eristetty — suositeltu