This makes the artifact more recognizable in the Forgejo UI as a downloadable zip file. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
---|---|---|
.. | ||
auto-tag.yml | ||
ci.yml | ||
code-quality.yml | ||
dependency-review.yml | ||
deploy-scripts.yml | ||
README.md | ||
release.yml |
Forgejo CI/CD Workflows
This directory contains automated workflows for the Great Lakes Ice Report project.
Workflows
CI (ci.yml)
Runs on every push to main and on all pull requests. Includes:
- Lint: Checks code style with ESLint
- Type Check: Validates TypeScript types
- Test: Runs Jest tests on Node.js 18 and 20
- Build: Verifies all build outputs (backend, frontend, CSS)
- Security: Checks for hardcoded secrets and vulnerabilities
- i18n Validation: Ensures translation files are valid and complete
Code Quality (code-quality.yml)
Runs on pull requests to analyze code quality:
- Complexity analysis
- Detection of console.log statements
- TODO/FIXME comment tracking
- Large file detection
- Import analysis and circular dependency checks
Dependency Review (dependency-review.yml)
Triggered when package.json or package-lock.json changes:
- Identifies major version updates
- Security vulnerability scanning
- Bundle size impact analysis
PR Labeler (pr-labeler.yml)
Automatically suggests labels based on:
- Changed file paths
- PR title and description keywords
- Type of changes (bug, feature, security, etc.)
Release (release.yml)
Triggered on version tags (v*):
- Runs full test suite
- Builds the project
- Generates changelog
- Creates release archive
Running Workflows Locally
You can test workflows locally using act:
# Run all workflows
act
# Run specific workflow
act -W .forgejo/workflows/ci.yml
# Run specific job
act -j lint -W .forgejo/workflows/ci.yml
Workflow Status Badges
Add these to your README:
[](https://git.deco.sh/deco/ice/actions/workflows/ci.yml)
[](https://git.deco.sh/deco/ice/actions/workflows/code-quality.yml)
Best Practices
- Keep workflows fast: Use caching and parallel jobs
- Fail fast: Put quick checks (lint, type-check) before slow ones (tests)
- Be specific: Use path filters to avoid unnecessary runs
- Cache dependencies: Always use
actions/setup-node
with cache - Security first: Never commit secrets, always use repository secrets
Troubleshooting
Workflow not running?
- Check if Forgejo Actions is enabled in repository settings
- Verify workflow syntax with online YAML validators
- Check runner availability
Tests failing in CI but passing locally?
- Ensure Node.js versions match
- Check for missing environment variables
- Verify database initialization in CI environment