ice/.forgejo/workflows
Claude Code 3b48e804da Add .zip extension to coverage report artifact name
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>
2025-07-07 21:58:21 -04:00
..
auto-tag.yml Add automatic release tagging workflow 2025-07-07 21:49:47 -04:00
ci.yml Add .zip extension to coverage report artifact name 2025-07-07 21:58:21 -04:00
code-quality.yml Update all workflow files to use Forgejo-specific actions 2025-07-07 21:34:07 -04:00
dependency-review.yml Update all workflow files to use Forgejo-specific actions 2025-07-07 21:34:07 -04:00
deploy-scripts.yml Update all workflow files to use Forgejo-specific actions 2025-07-07 21:34:07 -04:00
README.md Add comprehensive CI/CD workflows for Forgejo Actions 2025-07-07 19:50:57 -04:00
release.yml Update all workflow files to use Forgejo-specific actions 2025-07-07 21:34:07 -04:00

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:

[![CI](https://git.deco.sh/deco/ice/actions/workflows/ci.yml/badge.svg)](https://git.deco.sh/deco/ice/actions/workflows/ci.yml)
[![Code Quality](https://git.deco.sh/deco/ice/actions/workflows/code-quality.yml/badge.svg)](https://git.deco.sh/deco/ice/actions/workflows/code-quality.yml)

Best Practices

  1. Keep workflows fast: Use caching and parallel jobs
  2. Fail fast: Put quick checks (lint, type-check) before slow ones (tests)
  3. Be specific: Use path filters to avoid unnecessary runs
  4. Cache dependencies: Always use actions/setup-node with cache
  5. 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