From 4c771f6287d019c76e95a17d89de36462de079ee Mon Sep 17 00:00:00 2001 From: rhentschel Date: Fri, 28 Aug 2026 12:14:13 +0300 Subject: [PATCH] feat: node-check als wiederverwendbarer Workflow --- .gitea/workflows/node-check.yml | 59 +++++++++++++++++++++++++++++++++ README.md | 9 +++++ 2 files changed, 68 insertions(+) create mode 100644 .gitea/workflows/node-check.yml create mode 100644 README.md diff --git a/.gitea/workflows/node-check.yml b/.gitea/workflows/node-check.yml new file mode 100644 index 0000000..30f8372 --- /dev/null +++ b/.gitea/workflows/node-check.yml @@ -0,0 +1,59 @@ +# Wiederverwendbarer CI-Check für Node-Projekte (Gitea 1.26+: workflow_call aus privaten Repos). +# Aufruf im Projekt (.gitea/workflows/ci.yml): +# jobs: +# ci: +# uses: roland/ci-templates/.gitea/workflows/node-check.yml@main +# with: +# check-command: "npm run typecheck && npm test" # was lokal auch läuft +# node-version: "22" +# secrets: +# KUMA_PUSH_TOKEN: ${{ secrets.KUMA_PUSH_TOKEN }} +# Blockend: der Check, npm audit (critical), gitleaks über die Historie. Ergebnis geht an Uptime Kuma. +name: node-check + +on: + workflow_call: + inputs: + check-command: + type: string + default: "npm run check" + node-version: + type: string + default: "22" + secrets: + KUMA_PUSH_TOKEN: + required: true + +jobs: + pruefen: + runs-on: ubuntu-latest + env: + NEXT_TELEMETRY_DISABLED: "1" + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 + with: + fetch-depth: 0 # gitleaks prüft die ganze Historie + + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 + with: + node-version: ${{ inputs.node-version }} + cache: npm + + - run: npm ci + + - name: Check (wie lokal) + run: ${{ inputs.check-command }} + + - run: npm audit --audit-level=critical + - run: npm audit --audit-level=high || echo "::warning::Hohe Audit-Funde, siehe Log" + + - name: Secrets in der Historie (gitleaks) + run: | + curl -fsSL https://github.com/gitleaks/gitleaks/releases/download/v8.30.1/gitleaks_8.30.1_linux_x64.tar.gz | tar xz gitleaks + ./gitleaks git --no-banner --redact --exit-code 1 . + + - name: Ergebnis an Uptime Kuma melden + if: always() + run: >- + curl -fsS "https://uptime.rolandhentschel.de/api/push/${{ secrets.KUMA_PUSH_TOKEN }}?status=${{ job.status == 'success' && 'up' || 'down' }}&msg=${{ job.status }}%20%23${{ github.run_number }}" + > /dev/null diff --git a/README.md b/README.md new file mode 100644 index 0000000..f6819a0 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# ci-templates + +Wiederverwendbare Gitea-Actions-Workflows. Ein Projekt braucht nur noch einen kurzen Aufrufer, +die Prüfschritte (Check, Audit, gitleaks, Kuma-Meldung) leben hier an einer Stelle. + +- `node-check.yml`: Node/npm-Projekte. Eingaben `check-command` (Default `npm run check`) und + `node-version` (Default 22), Secret `KUMA_PUSH_TOKEN` (pro Repo, Kuma-Monitor "CI "). + +Aufruf siehe Kopf der jeweiligen Datei. Actions sind auf Commit-SHAs gepinnt.