This directory contains all GitHub-specific configuration for the Student Management System project.
.github/
βββ workflows/ # 21 GitHub Actions workflows
β βββ ci-cd-pipeline.yml # β Main CI/CD pipeline
β βββ docker-publish.yml # β Docker image publishing
β βββ release-on-tag.yml # β Release automation
β βββ commit-ready-cleanup-smoke.yml # Pre-commit validation
β βββ codeql.yml # Code security scanning
β βββ dependency-review.yml # Dependency security
β βββ e2e-tests.yml # End-to-end testing
β βββ quickstart-validation.yml # Onboarding validation
β βββ doc-audit.yml # Documentation checks
β βββ markdown-lint.yml # Markdown validation
β βββ apply-branch-protection.yml # Branch rule enforcement
β βββ operator-approval.yml # Multi-approval gates
β βββ labeler.yml # Auto issue labeling
β βββ stale.yml # Stale issue handling
β βββ dependabot-auto.yml # Dependency updates
β βββ backend-deps.yml # Backend dependencies
β βββ frontend-deps.yml # Frontend dependencies
β βββ native-setup-smoke.yml # Native dev validation
β βββ native-deepclean-safety.yml # Cleanup safety
β βββ commit-ready-smoke.yml # Smoke testing
β βββ archive-legacy-releases.yml # Release archival
βββ CODEOWNERS # Team responsibility assignment
βββ GITHUB_QUICK_START.md # 5-minute quick start guide
βββ README.md # This file
π Root-level related:
βββ GITHUB_DEPLOYMENT_SETUP_COMPLETE.md # Setup completion guide
βββ GITHUB_DEPLOYMENT_SUMMARY.md # Detailed configuration
βββ COMMIT_READY.ps1 # Pre-commit validation
βββ DOCKER.ps1 # Docker deployment
βββ NATIVE.ps1 # Native development
βββ VERSION # Current version
See GITHUB_QUICK_START.md for quick reference.
See GITHUB_DEPLOYMENT_SUMMARY.md for complete details.
See GITHUB_DEPLOYMENT_SETUP_COMPLETE.md for verification steps.
Runs on: Push to main, Pull Requests, Release tags
Stages:
- Setup (Python, Node.js, cache)
- Validation (type check, lint, format)
- Testing (pytest, vitest, smoke tests)
- Security (CodeQL, dependency review)
- Build (Docker images)
- Publish (GHCR, release)
Duration: ~30-50 minutes
Runs on: Successful ci-cd-pipeline on main branch
Actions:
- Build backend Docker image
- Build frontend Docker image
- Scan for vulnerabilities
- Push to GHCR (ghcr.io)
- Generate SBOM
Tags:
latest- Latest stable buildv{VERSION}-build.{BUILD_NUMBER}- Specific build
Runs on: Tag push matching v* pattern
Actions:
- Create GitHub Release
- Generate release notes from commits
- Build final Docker images
- Publish Docker images
- Upload artifacts
Continuous code vulnerability scanning using SAST analysis.
- Triggers on: Push, Pull requests
- Languages: Python, JavaScript/TypeScript
- Severity levels: Critical, High, Medium
- Reports in: Security tab β Code scanning
Prevents PRs with risky or vulnerable dependencies.
- Triggers on: Pull requests
- Checks: License compatibility, known vulnerabilities
- Blocks merge: If high-risk found
- Reports in: PR checks
Automated dependency updates with auto-approval.
- Triggers daily
- Checks: Python, Node.js, Docker, GitHub Actions
- Approves: Patch and minor versions
- Requires review: Major versions
Pre-commit validation and cleanup.
- Code formatting (black, prettier)
- Import organization (isort, eslint)
- Type checking (mypy)
- Linting (ruff, eslint)
- Smoke tests (pytest, vitest)
Run locally: .\COMMIT_READY.ps1 -Quick
Documentation completeness verification.
- Checks required docs exist
- Validates markdown format
- Verifies code examples
- Checks cross-references
Markdown format validation.
- Rule enforcement
- Link validation
- Code block checking
- Line length verification
Enforces branch protection rules.
- Main branch rules:
- Require 1 PR review
- Require status checks pass
- Require branch up to date
- Auto-delete head branches
Requires multiple approvals for sensitive changes.
- Triggers on: PR to main
- Requires: 2 approvals (configurable)
- Blocks: Merge until satisfied
Automatically labels issues and PRs.
- By file changes
- By PR size
- By issue template
- By commit message
Automatically closes stale issues.
- Inactivity period: 30 days
- Reminder period: 14 days
- Labels:
stale,no-response - Excludes: Pinned, labeled
keep-alive
Python package management.
- Runs: Weekly, on demand
- Checks: requirements.txt, constraints.txt
- Updates: Creates PRs for updates
- Approval: Auto-approved for patches
Node.js package management.
- Runs: Weekly, on demand
- Checks: package.json, package-lock.json
- Updates: Creates PRs for updates
- Approval: Auto-approved for patches
End-to-end application testing.
-
Runs: Manual trigger, releases
-
Steps:
- Start Docker container
- Wait for application ready
- Run Playwright tests
- Generate report
- Cleanup
-
Duration: ~15-20 minutes
New developer onboarding validation.
- Runs: Manual trigger, on demand
- Tests:
- Clone repository
- Run setup script
- Start application
- Run smoke tests
- Verify health endpoints
Validates native development environment.
- Runs: On demand, release
- Tests:
- Install dependencies
- Start backend
- Start frontend
- Run pytest
- Run vitest
Safe native environment cleanup.
- Runs: On demand
- Actions:
- Kill running processes
- Clean node_modules
- Clean Python cache
- Verify safety
Archives old releases.
- Runs: Nightly
- Actions:
- List releases
- Archive pre-v1.8.0
- Mark as deprecated
- Add notice in description
See CODEOWNERS file for:
- Code review requirements
- Team assignments
- Required reviewers per area
Before committing, run:
# Quick validation (2-3 min)
.\COMMIT_READY.ps1 -Quick
# Standard validation (5-8 min)
.\COMMIT_READY.ps1 -Standard
# Full validation (15-20 min)
.\COMMIT_READY.ps1 -Full| Document | Purpose |
|---|---|
GITHUB_QUICK_START.md |
5-minute developer reference |
GITHUB_DEPLOYMENT_SUMMARY.md |
Complete setup & pipeline details |
GITHUB_DEPLOYMENT_SETUP_COMPLETE.md |
Setup verification guide |
docs/development/GIT_WORKFLOW.md |
Git conventions & branching |
docs/development/ARCHITECTURE.md |
System architecture |
.github/workflows/*/ |
Individual workflow documentation |
For admins setting up the repository:
- Configure GitHub Secrets
-
GHCR_TOKEN- Container registry token -
REGISTRY_USERNAME- GitHub username
-
- Enable Branch Protection (main)
- Require PR review
- Require status checks
- Require branches up to date
- Enable CodeQL (Security tab)
- Enable Dependabot (Security tab)
- Configure CODEOWNERS
- Set notification preferences
- Check
.github/workflows/files exist - Verify workflow YAML syntax
- Check branch protection rules
- Verify GitHub Actions enabled in repo settings
- Review error logs in Actions tab
- Reproduce locally:
.\COMMIT_READY.ps1 -Full - Check environment differences
- Verify dependencies up to date
- Check Dockerfile syntax
- Verify dependencies in requirements.txt
- Check Docker image size limits
- Review build logs for specific errors
- Verify tag format matches
v* - Check GHCR_TOKEN secret configured
- Review docker-publish.yml logs
- Verify image build succeeded
- Documentation: See GITHUB_DEPLOYMENT_SUMMARY.md
- Quick Help: See GITHUB_QUICK_START.md
- Workflow Issues: Check specific .yml file
- GitHub Actions Logs: Actions tab β Select workflow β View logs
| Metric | Value |
|---|---|
| Total Workflows | 21 |
| Pipeline Duration | 30-50 min |
| Parallel Jobs | 6+ |
| Test Coverage Target | >80% |
| Security Scans | 2 (CodeQL, Dependencies) |
| Artifact Retention | 90 days |
Configuration Version: 1.0 Last Updated: 2025-01-08 Status: β Production Ready
See GITHUB_DEPLOYMENT_SETUP_COMPLETE.md for setup verification and next steps.