ice/.forgejo/workflows
Claude Code c50a07c870 Fix PR labeler for branches without merge base
Add fallback logic when git diff fails due to no merge base between branches. This handles cases where the branch history has diverged significantly.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-07 20:07:02 -04:00
..
ci.yml Improve security check to avoid false positives 2025-07-07 20:06:10 -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 Add workflow concurrency controls to cancel in-progress runs 2025-07-07 20:00:59 -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
test.yml Add .forgejo/workflows/test.yml 2025-07-06 22:53:55 +03: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