From 1d396c827851d09551b34b7cebc367d7015818c6 Mon Sep 17 00:00:00 2001 From: moilanik Date: Mon, 15 Jun 2026 09:20:23 +0300 Subject: [PATCH] =?UTF-8?q?runner=20p=C3=A4ivityksess=C3=A4=20cucumber=20t?= =?UTF-8?q?esti=20meni=20pieleen.=20korjaus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 29 ++++++++++++++++--- scripts/report-status.sh | 4 +-- .../features/step_definitions/common.steps.js | 9 ++++-- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index ed2584e..41130ae 100644 --- a/README.md +++ b/README.md @@ -102,29 +102,50 @@ Act runner suorittaa Gitea Actions workflowt. **IaC-lähde:** alla oleva Helm-sn klusterin totuus — muutokset vain snippetiin, sitten `helm upgrade --install` (ei käsin muokattuja arvoja klusterissa). +> HUOM! Gitea ei ole vielä kunnolla stabiilissa tilassa, ja chart default dind sekä runner versiot ovat tätä tehdessä olleet bugiset. Niistä on olemassa uudemmat versiot, mutta eivät ole chartissa. Tätyy seurata ja päivittää tarpeen tulle. + Asennus Kubernetes-klusteriin Helm chartilla: -### 1. Rekisteröintitoken +### 1. Rekisteröi token Hae token Giteasta: - **Organization-taso:** Org → Settings → Actions → Runners → Create new runner - **Globaali (site admin):** Site Admin → Actions → Runners → Create new runner -### 2. Asenna runner +### 2. variables ```bash GITEA_URL="https://" GITEA_ACTIONS_TOKEN="" GITEA_ACTIONS_NAMESPACE="gitea-actions" +``` -helm repo add gitea https://dl.gitea.com/charts -helm repo update +### 3. Tee secret vain init install yhteydessä +```bash kubectl create secret generic act-runner-token \ --from-literal=token="$GITEA_ACTIONS_TOKEN" \ --namespace "$GITEA_ACTIONS_NAMESPACE" \ --dry-run=client -o yaml | kubectl apply -f - +``` + +### 4. Helm install / upgrade + +Menee samalla komennolla. + +> Muista asettaa variables ennen ajoa. + +Päivittää olemassa olevan installaation, käyttää olemassa olevaa secret +ja sitä kautta Gitea ei tarvitse päivityksessä mitään temppuja. + +Päivityksen jälkeen muista tappaa pod (käynnistyy automaattisesti uudelleen), että lataa varmasti kaikki uudesta. Sillä ConfigMap tms eivät lataudu +mikäli pod jatkaa ajamista. + +```bash +helm repo add gitea https://dl.gitea.com/charts +helm repo update + helm upgrade --install act-runner gitea/actions \ --set enabled=true \ --set giteaRootURL="$GITEA_URL" \ diff --git a/scripts/report-status.sh b/scripts/report-status.sh index a907208..5c70a20 100755 --- a/scripts/report-status.sh +++ b/scripts/report-status.sh @@ -30,13 +30,13 @@ HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" \ -X POST "$GITEA_API_URL/api/v1/repos/$REPO/statuses/$COMMIT" \ -H "Authorization: token $GITEA_TOKEN" \ -H "Content-Type: application/json" \ - -d "{\"state\":\"$STATE\",\"target_url\":\"$URL\",\"description\":\"$DESCRIPTION\",\"context\":\"$KEY\"}") + -d "{\"state\":\"$STATE\",\"target_url\":\"$URL\",\"description\":\"$DESCRIPTION\",\"context\":\"$KEY\"}" || true) if [ "$HTTP_CODE" = "201" ]; then exit 0 fi -if [ -z "$HTTP_CODE" ]; then +if [ -z "$HTTP_CODE" ] || [ "$HTTP_CODE" = "000" ]; then echo "gitea-ci-library - ERROR: Failed to connect to Gitea API at $GITEA_API_URL" >&2 else echo "gitea-ci-library - ERROR: gitea-ci-library, API returned HTTP $HTTP_CODE" >&2 diff --git a/tests/features/step_definitions/common.steps.js b/tests/features/step_definitions/common.steps.js index db54d07..5695fef 100644 --- a/tests/features/step_definitions/common.steps.js +++ b/tests/features/step_definitions/common.steps.js @@ -6,10 +6,15 @@ const PROJECT_ROOT = path.resolve(__dirname, '..', '..', '..'); const MOCK_SCRIPT = path.join(PROJECT_ROOT, 'tests', 'helpers', 'mock-api.sh'); Before({ tags: '@mock' }, function () { - execSync(`bash -c 'source "${MOCK_SCRIPT}" && mock_start'`, { + const out = execSync(`bash -c 'source "${MOCK_SCRIPT}" && mock_start && sleep 0.3 && curl -s -o /dev/null -w "%{http_code}" --max-time 3 http://localhost:18080/api/v1/repos/health/check'`, { cwd: PROJECT_ROOT, - stdio: 'ignore', + encoding: 'utf-8', + stdio: ['pipe', 'pipe', 'pipe'], }); + const trimmed = out.trim(); + if (!trimmed.startsWith('2') && !trimmed.startsWith('4')) { + throw new Error(`Mock server failed to start (HTTP ${trimmed})`); + } }); After({ tags: '@mock' }, function () {