From 66ead03f4980b03685b2e138cf71577eb6595d71 Mon Sep 17 00:00:00 2001 From: zv Date: Sat, 13 Jun 2026 20:05:53 +0200 Subject: [PATCH] ci: add gitea quality workflow --- .gitea/workflows/ci.yml | 35 +++++++++++++++++++++++++++++++++++ .gitignore | 1 + AGENTS.md | 3 ++- README.md | 15 ++++++++++++++- docs/deployment.md | 3 ++- package.json | 1 + 6 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 .gitea/workflows/ci.yml diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..012af4f --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,35 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + +jobs: + quality: + name: Lint, typecheck and build + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + cache-dependency-path: package-lock.json + + - name: Install dependencies + run: npm ci + + - name: Lint + run: npm run lint + + - name: Typecheck + run: npm run typecheck + + - name: Build + run: npm run build diff --git a/.gitignore b/.gitignore index 39c80b7..db2fd84 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ out !.env.example npm-debug.log* .DS_Store +tsconfig.tsbuildinfo diff --git a/AGENTS.md b/AGENTS.md index 9f6c743..e304aba 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -23,12 +23,13 @@ Wymagany jest Node.js 20.9 lub nowszy. npm install npm run dev npm run lint +npm run typecheck npm run build npm run start npm run notifications:worker ``` -Repozytorium nie ma obecnie skryptu testów, osobnego skryptu type-check ani formattera. `npm run build` uruchamia kontrolę TypeScript wykonywaną przez Next.js. `npm run notifications:worker` uruchamia osobny proces Node do cyklicznego wywoływania endpointów Web Push na self-hostingu; wczytuje `.env` i `.env.local`, ale nadal wymaga równolegle działającego `npm run start` albo poprawnego `WTR_APP_URL`. Nie opisuj ani nie uruchamiaj nieistniejących komend jako standardowego workflow. +Repozytorium nie ma obecnie skryptu testów ani formattera. `npm run typecheck` uruchamia `tsc --noEmit`, a `npm run build` uruchamia produkcyjny build Next.js. `npm run notifications:worker` uruchamia osobny proces Node do cyklicznego wywoływania endpointów Web Push na self-hostingu; wczytuje `.env` i `.env.local`, ale nadal wymaga równolegle działającego `npm run start` albo poprawnego `WTR_APP_URL`. Nie opisuj ani nie uruchamiaj nieistniejących komend jako standardowego workflow. ## Konwencje kodu diff --git a/README.md b/README.md index 44e8618..2d98bab 100644 --- a/README.md +++ b/README.md @@ -63,11 +63,24 @@ Przykład znajduje się w [.env.example](.env.example). | --- | --- | | `npm run dev` | Uruchamia serwer deweloperski Next.js. | | `npm run lint` | Uruchamia ESLint. | +| `npm run typecheck` | Uruchamia `tsc --noEmit`. | | `npm run build` | Buduje aplikację produkcyjnie i uruchamia kontrolę TypeScript wykonywaną przez Next.js. | | `npm run start` | Uruchamia zbudowaną aplikację. | | `npm run notifications:worker` | Uruchamia self-hostowany worker powiadomień. Wymaga działającej aplikacji Next.js. | -Repozytorium nie ma obecnie osobnego skryptu testów, type-check ani formattera. +Repozytorium nie ma obecnie skryptu testów ani formattera. + +## CI + +Repozytorium używa Gitea Actions. Workflow znajduje się w [.gitea/workflows/ci.yml](.gitea/workflows/ci.yml) i uruchamia się przy pushu do `main` oraz przy pull requestach. + +Pipeline działa na `ubuntu-latest`, instaluje zależności przez `npm ci`, a następnie uruchamia: + +- `npm run lint`, +- `npm run typecheck`, +- `npm run build`. + +Na instancji Gitea musi być włączony Actions runner kompatybilny z etykietą `ubuntu-latest`. ## Struktura Projektu diff --git a/docs/deployment.md b/docs/deployment.md index 70f5489..e69f6ba 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -73,10 +73,11 @@ Przed zakończeniem zmian uruchamiaj: ```bash npm run lint +npm run typecheck npm run build ``` -Repozytorium nie ma obecnie osobnego skryptu testów, osobnego skryptu type-check ani formattera. +Repozytorium nie ma obecnie skryptu testów ani formattera. ## Bezpieczeństwo Zależności diff --git a/package.json b/package.json index cb49fd5..8dafd82 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "build": "next build", "start": "next start", "lint": "eslint .", + "typecheck": "tsc --noEmit", "notifications:worker": "node scripts/notification-worker.mjs" }, "dependencies": {