ice/.forgejo/workflows
Claude Code 49b1c84399 Update all actions to use Forgejo-specific URLs
- Replace actions/checkout@v4 with https://code.forgejo.org/actions/checkout@v4
- Use fully qualified URLs for better compatibility with Forgejo
- Keep existing Node.js setup via shell commands since runners have it pre-installed

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-07 21:31:22 -04:00
..
ci.yml Update all actions to use Forgejo-specific URLs 2025-07-07 21:31:22 -04:00
code-quality.yml Add workflow concurrency controls to cancel in-progress runs 2025-07-07 20:00:59 -04:00
dependency-review.yml Fix dependency review workflow for missing build tools 2025-07-07 20:17:34 -04:00
deploy-scripts.yml Update workflow to inject S3 bucket name into deployment script 2025-07-06 18:14:04 -04:00
pr-labeler.yml Fix PR labeler for branches without merge base 2025-07-07 20:07:02 -04:00
README.md Add comprehensive CI/CD workflows for Forgejo Actions 2025-07-07 19:50:57 -04:00
release.yml Use system Node.js instead of downloading in workflows 2025-07-07 19:56:39 -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