ice/.forgejo/workflows
Derek Slenk d9944a6a4c
All checks were successful
Code Quality / Code Quality Checks (pull_request) Successful in 1m41s
CI / Validate i18n Files (pull_request) Successful in 26s
CI / TypeScript Type Check (pull_request) Successful in 1m27s
CI / Run Tests (Node 20) (pull_request) Successful in 1m31s
CI / Lint Code (pull_request) Successful in 1m33s
CI / Security Checks (pull_request) Successful in 1m32s
CI / Run Tests (Node 18) (pull_request) Successful in 1m35s
CI / Build Project (pull_request) Successful in 1m38s
CI / Test Coverage (pull_request) Successful in 1m55s
Refactor checkout actions to use official forgejo actions for consistency
2025-07-17 13:10:18 -04:00
..
auto-tag.yml Refactor checkout actions to use official forgejo actions for consistency 2025-07-17 13:10:18 -04:00
ci.yml Refactor checkout actions to use official forgejo actions for consistency 2025-07-17 13:10:18 -04:00
code-quality.yml Refactor checkout actions to use official forgejo actions for consistency 2025-07-17 13:10:18 -04:00
dependency-review.yml Refactor checkout actions to use official forgejo actions for consistency 2025-07-17 13:10:18 -04:00
deploy-scripts.yml Refactor checkout actions to use official forgejo actions for consistency 2025-07-17 13:10:18 -04:00
README.md Add comprehensive CI/CD workflows for Forgejo Actions 2025-07-07 19:50:57 -04:00
release.yml Refactor checkout actions to use official forgejo actions for consistency 2025-07-17 13:10:18 -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