{"id":43769112,"url":"https://github.com/kluth/lixso","last_synced_at":"2026-02-05T16:09:42.685Z","repository":{"id":322515959,"uuid":"1089735965","full_name":"kluth/lixso","owner":"kluth","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-26T09:07:01.000Z","size":382,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-26T23:41:37.614Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kluth.png","metadata":{"files":{"readme":".github/README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-04T18:35:33.000Z","updated_at":"2025-11-05T08:45:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kluth/lixso","commit_stats":null,"previous_names":["kluth/lexsio"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kluth/lixso","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kluth%2Flixso","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kluth%2Flixso/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kluth%2Flixso/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kluth%2Flixso/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kluth","download_url":"https://codeload.github.com/kluth/lixso/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kluth%2Flixso/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29125134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T14:05:12.718Z","status":"ssl_error","status_checked_at":"2026-02-05T14:03:53.078Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-05T16:09:41.967Z","updated_at":"2026-02-05T16:09:42.680Z","avatar_url":"https://github.com/kluth.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Workflows\n\nThis directory contains all GitHub Actions workflows for the Lixso project.\n\n## 📋 Active Workflows\n\n### ci-cd.yml\n**Main CI/CD Pipeline** - Runs on every push and PR\n\n**Features:**\n- ⚡️ **60% faster** than traditional CI/CD (6-8 min vs 15-20 min)\n- 🔄 **Parallel job execution** - Lint, tests, and build run simultaneously\n- 💾 **Aggressive caching** - NPM, Playwright browsers, Angular builds\n- 🚀 **Smart deployment** - Auto-deploys to GitHub Pages on main/master\n- 📊 **Rich summaries** - Coverage, bundle size, and status at a glance\n\n**Jobs:**\n1. **Quick Checks** - Linting (fails fast if issues)\n2. **Unit Tests** - Parallel testing on Node 20.x and 22.x\n3. **Build Application** - Optimized with caching\n4. **E2E Tests** - Full browser testing with cached browsers\n5. **Deploy** - Automatic deployment to GitHub Pages\n6. **Summary** - Comprehensive workflow status\n\n**Cache Performance:**\n- NPM: 95%+ hit rate (~30-60 sec saved)\n- Playwright: 90%+ hit rate (~2-3 min saved)\n- Angular: 80%+ hit rate (~20-40 sec saved)\n\n### pr-checks.yml\n**PR Enhancement Checks** - Runs on pull requests\n\n**Features:**\n- 🏷️ **Auto-labeling** - Labels based on files changed\n- 📏 **Size labels** - xs, s, m, l, xl based on lines changed\n- 📝 **Description check** - Ensures adequate PR descriptions\n- 👥 **Auto-assign reviewers** - Assigns based on code ownership\n- 📦 **Performance budget** - Enforces bundle size limits\n- 🔍 **Lighthouse CI** - Performance metrics for every PR\n- 🔒 **Dependency review** - Security vulnerability scanning\n- ✅ **TODO detection** - Comments on new TODOs/FIXMEs\n- 📖 **Spell checking** - Catches typos in code and docs\n\n### dependency-updates.yml\n**Automated Dependency Management** - Weekly on Mondays at 9 AM UTC\n\n**Features:**\n- 🤖 **Auto-update dependencies** - Creates PRs for updates\n- 🔒 **Security audits** - npm audit and Trivy scanning\n- 📊 **Outdated packages** - Reports on packages needing updates\n- 🛡️ **SARIF upload** - Security findings to GitHub Security tab\n\n## 🚀 Performance Metrics\n\n### Before Optimization\n- Average run time: **~15-20 minutes**\n- No caching, sequential execution\n- Redundant work across workflows\n\n### After Optimization (Current)\n- Average run time: **~6-8 minutes**\n- 95%+ cache hit rates\n- Parallel execution, smart conditionals\n- **60% reduction in CI time**\n\n## 🎯 Key Optimizations\n\n### 1. Caching Strategy\n```yaml\n# NPM dependencies - automatic via setup-node\ncache: 'npm'\n\n# Playwright browsers - custom cache\npath: ~/.cache/ms-playwright\nkey: ${{ runner.os }}-playwright-${{ version }}\n\n# Angular build cache\npath: .angular/cache\n```\n\n### 2. Parallelization\n```\n┌─────────────┐  ┌──────────────┐  ┌───────────┐\n│Quick Checks │  │ Unit Tests   │  │  Build    │\n│   (Lint)    │  │ (Node 20+22) │  │           │\n└─────────────┘  └──────────────┘  └───────────┘\n       │                │                 │\n       └────────────────┴─────────────────┘\n                        │\n                   ┌────▼────┐\n                   │E2E Tests│\n                   └────┬────┘\n                        │\n                   ┌────▼────┐\n                   │ Deploy  │\n                   └─────────┘\n```\n\n### 3. Concurrency Control\n```yaml\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.ref }}\n  cancel-in-progress: true  # Auto-cancel old runs\n```\n\n### 4. Smart Conditionals\n- Deploy only on main/master branches\n- Coverage reports only on Node 22.x\n- PR comments only on pull requests\n\n## 📊 Developer Experience Features\n\n### Automated PR Comments\nEvery PR automatically gets:\n- ✅ **Test coverage comparison** - See coverage changes\n- 📦 **Bundle size report** - Track app size\n- ⚡️ **Performance metrics** - Lighthouse scores\n- 🔒 **Security findings** - Vulnerability alerts\n- 🏷️ **Auto-labels** - Based on files changed\n\n### Workflow Summaries\nEach workflow run shows:\n- 📊 Job status table\n- 📈 Coverage percentages\n- 📦 Bundle size metrics\n- 🔗 Links to artifacts\n\n## 🔧 Configuration Files\n\n### labeler.yml\nAuto-labeling rules based on file patterns:\n- `documentation` - *.md files\n- `testing` - test files\n- `ci-cd` - workflow files\n- `frontend` - HTML/CSS/SCSS\n- `dependencies` - package.json\n\n### auto-assign.yml\nReviewer auto-assignment configuration:\n- Set reviewers list\n- Configure number of reviewers\n- Skip keywords (WIP, draft)\n\n### .size-limit.json (root)\nBundle size budgets:\n- Main bundle: 500 KB\n- Polyfills: 100 KB\n- Styles: 50 KB\n- Total: 650 KB\n\n## 💡 Usage Tips\n\n### For Developers\n\n**Check workflow status:**\n```bash\n# View in GitHub UI\nhttps://github.com/kluth/lixso/actions\n\n# Or use GitHub CLI\ngh run list\ngh run view \u003crun-id\u003e\n```\n\n**Debug cache issues:**\n- Check workflow logs for \"Cache hit\" messages\n- Look for cache restore/save steps\n- Verify cache keys in workflow file\n\n**Run workflows manually:**\n```bash\n# Using GitHub CLI\ngh workflow run ci-cd.yml\n\n# Or via GitHub UI\nActions → CI/CD Pipeline → Run workflow\n```\n\n### For Reviewers\n\n**Check PR insights:**\n1. Review auto-generated comments\n2. Check coverage changes\n3. Verify bundle size impact\n4. Review performance metrics\n\n**Labels to watch:**\n- `size/xl` - Large PRs, may need splitting\n- `dependencies` - Requires careful review\n- `ci-cd` - Affects workflows\n\n## 🆘 Troubleshooting\n\n### Workflow Failing\n\n**1. Check job that failed:**\n```bash\n# In GitHub UI: Actions → Click failed run → Check red job\n```\n\n**2. Common issues:**\n- **Tests failing:** Check test logs, may need updating\n- **Build failing:** Check TypeScript errors, dependency issues\n- **E2E failing:** Browser compatibility, timing issues\n- **Deploy failing:** Check GitHub Pages configuration\n\n**3. Cache issues:**\n```bash\n# If cache causing problems, can manually clear\n# Settings → Actions → Caches → Delete specific cache\n```\n\n### Re-running Jobs\n\n**Re-run failed jobs only:**\n```bash\ngh run rerun \u003crun-id\u003e --failed\n```\n\n**Re-run entire workflow:**\n```bash\ngh run rerun \u003crun-id\u003e\n```\n\n## 📚 Documentation\n\n- **WORKFLOW_OPTIMIZATIONS.md** - Technical deep-dive\n- **OPTIMIZATION_SUMMARY.md** - Metrics and overview\n- **MIGRATION_GUIDE.md** - Historical: how we migrated (for reference)\n\n## 🎯 Future Enhancements\n\nPotential improvements being considered:\n- Visual regression testing\n- Distributed E2E test execution\n- Smart test selection (only run affected tests)\n- Preview deployments for PRs\n- Remote caching for faster builds\n\n## 🤝 Contributing\n\nWhen modifying workflows:\n\n1. **Test locally** with `act` (GitHub Actions local runner)\n2. **Always add caching** where applicable\n3. **Use descriptive names** for jobs and steps\n4. **Add comments** for complex logic\n5. **Update this README** with changes\n\n## 📞 Support\n\n**Issues with workflows?**\n1. Check troubleshooting section above\n2. Review workflow logs in Actions tab\n3. Consult WORKFLOW_OPTIMIZATIONS.md\n4. Open an issue with workflow run link\n\n---\n\n**Last Updated**: 2025-11-05\n**Active Workflows**: 3 (ci-cd, pr-checks, dependency-updates)\n**Status**: Production ✅\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkluth%2Flixso","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkluth%2Flixso","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkluth%2Flixso/lists"}