chore(workflows): 🔧 Add/update Forgejo CI end-to-end test workflow and adjust markdown linting configuration
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
f75489ef4d
commit
a8c0f6b598
2 changed files with 202 additions and 0 deletions
121
.forgejo/workflows/e2e-coop.yml
Normal file
121
.forgejo/workflows/e2e-coop.yml
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
# E2E Integration Tests for Coop System
|
||||
#
|
||||
# Runs Playwright tests that validate the full coop data flow:
|
||||
# - Coop backend API endpoints
|
||||
# - Coop frontend features
|
||||
# - Integration between coop backend and frontend
|
||||
#
|
||||
# Triggers on changes to coop-specific paths in the marketplace feature.
|
||||
|
||||
name: E2E Coop Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- 'feature/**'
|
||||
paths:
|
||||
- 'codebase/features/marketplace/backend-api/src/coop/**'
|
||||
- 'codebase/features/marketplace/frontend-public/src/features/coop/**'
|
||||
- 'codebase/features/marketplace/frontend-public/e2e/tests/coop/**'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'codebase/features/marketplace/backend-api/src/coop/**'
|
||||
- 'codebase/features/marketplace/frontend-public/src/features/coop/**'
|
||||
- 'codebase/features/marketplace/frontend-public/e2e/tests/coop/**'
|
||||
|
||||
env:
|
||||
CI: true
|
||||
NPM_REGISTRY: http://npm.nasty.sh/
|
||||
|
||||
jobs:
|
||||
e2e-tests:
|
||||
name: Coop E2E Tests
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Start E2E environment
|
||||
working-directory: codebase/features/marketplace
|
||||
run: |
|
||||
docker compose -f docker-compose.e2e-coop.yml up -d --build
|
||||
echo "Waiting for services to be healthy..."
|
||||
sleep 30
|
||||
|
||||
- name: Check service health
|
||||
working-directory: codebase/features/marketplace
|
||||
run: |
|
||||
docker compose -f docker-compose.e2e-coop.yml ps
|
||||
docker compose -f docker-compose.e2e-coop.yml logs --tail=50
|
||||
|
||||
- name: Run E2E tests
|
||||
working-directory: codebase/features/marketplace
|
||||
run: |
|
||||
docker compose -f docker-compose.e2e-coop.yml up \
|
||||
--abort-on-container-exit \
|
||||
--exit-code-from e2e-coop \
|
||||
e2e-coop
|
||||
|
||||
- name: Upload test results
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: e2e-coop-test-results
|
||||
path: codebase/features/marketplace/frontend-public/test-results/
|
||||
retention-days: 7
|
||||
|
||||
- name: Upload HTML report
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: e2e-coop-html-report
|
||||
path: codebase/features/marketplace/frontend-public/playwright-report/
|
||||
retention-days: 7
|
||||
|
||||
- name: Cleanup
|
||||
if: always()
|
||||
working-directory: codebase/features/marketplace
|
||||
run: |
|
||||
docker compose -f docker-compose.e2e-coop.yml down -v --remove-orphans
|
||||
|
||||
# Separate job for smoke tests (faster feedback)
|
||||
smoke-tests:
|
||||
name: Smoke Tests Only
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
if: github.event_name == 'pull_request'
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '22'
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 9
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: codebase/features/marketplace/frontend-public/e2e
|
||||
run: pnpm install
|
||||
|
||||
- name: Install Playwright browsers
|
||||
working-directory: codebase/features/marketplace/frontend-public/e2e
|
||||
run: pnpm exec playwright install chromium
|
||||
|
||||
- name: Run smoke tests (mocked)
|
||||
working-directory: codebase/features/marketplace/frontend-public/e2e
|
||||
run: |
|
||||
echo "Note: Smoke tests require running services"
|
||||
echo "This job validates test compilation only"
|
||||
pnpm exec tsc --noEmit
|
||||
81
.markdownlint-cli2.jsonc
Normal file
81
.markdownlint-cli2.jsonc
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
{
|
||||
// Lilith Platform — Markdown Linting Configuration
|
||||
// Mirrors @lilith/eslint-plugin-file-length pattern for TypeScript.
|
||||
// Run: bun run lint:md
|
||||
// Fix: bun run lint:md:fix
|
||||
|
||||
"config": {
|
||||
"default": true,
|
||||
|
||||
// ── Disabled: Cosmetic / Too Noisy ──────────────────────────────
|
||||
|
||||
// MD013: Line length — disabled for prose-heavy documentation
|
||||
"MD013": false,
|
||||
|
||||
// MD025: Multiple top-level headings — many docs use multiple H1s
|
||||
"MD025": false,
|
||||
|
||||
// MD026: Trailing punctuation in headings — question headings are common
|
||||
"MD026": false,
|
||||
|
||||
// MD032: Blanks around lists — 5K+ pre-existing violations, low value
|
||||
"MD032": false,
|
||||
|
||||
// MD033: Inline HTML — allowed for formatting needs
|
||||
"MD033": false,
|
||||
|
||||
// MD034: Bare URLs — docs naturally contain raw URLs
|
||||
"MD034": false,
|
||||
|
||||
// MD036: Emphasis used instead of heading — false positives with
|
||||
// bold inline labels like **One revenue model.**
|
||||
"MD036": false,
|
||||
|
||||
// MD041: First line heading — some docs start with YAML frontmatter
|
||||
"MD041": false,
|
||||
|
||||
// MD044: Proper names — disabled (custom dictionaries not configured)
|
||||
"MD044": false,
|
||||
|
||||
// MD058: Tables surrounded by blank lines — stylistic, low value
|
||||
"MD058": false,
|
||||
|
||||
// MD060: Table column style — 14K+ pre-existing violations, cosmetic
|
||||
"MD060": false,
|
||||
|
||||
// ── Kept: Meaningful Quality ────────────────────────────────────
|
||||
|
||||
// MD024: Multiple headings with same content — allow among siblings
|
||||
"MD024": { "siblings_only": true },
|
||||
|
||||
// MD022: Blanks around headings (auto-fixable)
|
||||
// MD031: Blanks around fences (auto-fixable)
|
||||
// MD040: Fenced code language specified
|
||||
// MD001: Heading increment
|
||||
// MD012: No multiple blank lines
|
||||
// MD018: Space after hash on heading
|
||||
// MD029: Ordered list item prefix
|
||||
// MD051: Link fragments valid
|
||||
// (all enabled via "default": true)
|
||||
|
||||
// ── Custom: File Length (dual-threshold word count, matches TS pattern) ──
|
||||
// Counts words (not lines). Tables can be excluded with:
|
||||
// <!-- wordcount:off --> ...table... <!-- wordcount:on -->
|
||||
|
||||
"file-length": {
|
||||
"warnThreshold": 2500,
|
||||
"errorThreshold": 3000
|
||||
}
|
||||
},
|
||||
|
||||
"customRules": [
|
||||
"./tooling/markdownlint-rules/file-length.cjs"
|
||||
],
|
||||
|
||||
"ignores": [
|
||||
"**/node_modules/**",
|
||||
"**/dist/**",
|
||||
"**/.vite-cache/**",
|
||||
"**/CHANGELOG.md"
|
||||
]
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue