mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-09-07 08:26:11 +00:00
72 lines
2.4 KiB
YAML
72 lines
2.4 KiB
YAML
name: Quality Checks
|
|
|
|
on:
|
|
workflow_call:
|
|
|
|
jobs:
|
|
format:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 5
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
|
with:
|
|
node-version: 20
|
|
cache: npm
|
|
cache-dependency-path: package-lock.json
|
|
- run: npm ci
|
|
- run: npx prettier --check .
|
|
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
|
with:
|
|
node-version: 20
|
|
cache: npm
|
|
cache-dependency-path: package-lock.json
|
|
- run: npm ci
|
|
- run: npx eslint .
|
|
|
|
typecheck:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- uses: ./.github/actions/setup-gitnexus
|
|
- run: npx tsc --noEmit
|
|
working-directory: gitnexus
|
|
|
|
typecheck-web:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- uses: ./.github/actions/setup-gitnexus-web
|
|
- run: npx tsc -b --noEmit
|
|
working-directory: gitnexus-web
|
|
|
|
# Enforces the convention documented in CONTRIBUTING.md → "GitHub Actions —
|
|
# Concurrency Convention":
|
|
# 1. Every entry-point (non-reusable) workflow declares a top-level
|
|
# `concurrency:` block.
|
|
# 2. Reusable workflows (`on: workflow_call` only) do NOT declare one —
|
|
# they inherit concurrency from the caller.
|
|
# 3. The concurrency group key starts with `${{ github.workflow }}` or
|
|
# the literal `CI-` prefix (the documented ci.yml exception for
|
|
# reusable-workflow-safe grouping).
|
|
# Reusability is detected by parsing each workflow's `on:` block, not an
|
|
# allowlist, so new reusable workflows never produce false positives.
|
|
workflow-convention:
|
|
name: Workflow concurrency convention
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 5
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- name: Validate workflow concurrency convention
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
python3 .github/scripts/check-workflow-concurrency.py .github/workflows
|