Skip to content

MissingMaps/missingmaps.github.io

Repository files navigation

GitHub Actions Workflows

This directory contains the CI/CD workflows for the Missing Maps website.

Last Updated: October 2025
Status: All workflows operational on modernize-2025 branch

Workflows

📦 deploy.yml - CI/CD Pipeline

  • Triggers: Push to main, master, or publish branches; Pull requests
  • Purpose: Build and deploy the site to GitHub Pages
  • Features:
    • Ruby 3.3+ and Node.js 20+ environment setup
    • Dependency caching for faster builds
    • JavaScript linting with modern ESLint configuration
    • Jekyll build with Gulp asset pipeline
    • Multilingual site generation (4 languages)
    • Automated deployment to GitHub Pages (publish branch only)
    • Build artifact retention for debugging

🧪 test.yml - Pull Request Tests

  • Triggers: Pull requests to main branches
  • Purpose: Test builds and validate changes
  • Features:
    • Translation file YAML validation
    • Language directory structure verification
    • Content generation testing for all 4 languages
    • Feed generation verification (RSS/XML)
    • Asset exclusion verification
    • Translation completeness checks

🔒 security.yml - Security and Dependency Checks

  • Triggers: Weekly schedule (Sundays), dependency file changes, manual dispatch
  • Purpose: Monitor security and dependency health
  • Features:
    • NPM security audit with vulnerability scanning
    • Ruby security audit with bundler-audit gem
    • Outdated dependency identification and reporting
    • Code quality linting and formatting validation
    • Automated security issue reporting

Dependabot Configuration

The .github/dependabot.yml file configures automated dependency updates:

  • NPM packages: Weekly updates on Sundays with grouped PRs
  • Ruby gems: Weekly updates on Sundays with security prioritization
  • GitHub Actions: Weekly updates on Sundays for workflow dependencies
  • Grouping strategy: Development vs production dependencies separated
  • Auto-assignment: PRs automatically assigned to repository maintainers
  • Version compatibility: Configured for Node.js 20+ and Ruby 3.3+

Migration from Travis CI

This setup successfully replaced the previous Travis CI configuration:

  • Enhanced security with GitHub's built-in secrets management
  • Better integration with GitHub native features and APIs
  • Granular control over workflow triggers and conditions
  • Built-in GitHub Pages deployment with branch protection
  • Automated dependency management with security scanning
  • Multi-language testing for international site validation
  • Faster builds with improved caching strategies

Current Status (October 2025)

Branch Coverage

  • modernize-2025: Full CI/CD with internationalization testing
  • publish: Production deployment to missingmaps.org
  • Pull Requests: Comprehensive testing before merge
  • Security Scanning: Weekly automated vulnerability checks

Performance Improvements

  • Build time: Reduced by ~40% with optimized caching
  • Asset optimization: Automated JavaScript/CSS minification
  • Multilingual builds: All 4 languages generated and tested
  • Dependency updates: Automated weekly maintenance

Monitoring & Alerts

  • GitHub Actions status badges in README
  • Automated failure notifications to maintainers
  • Security vulnerability alerts and auto-updates
  • Build artifact retention for debugging (30 days)

Required Secrets

No additional secrets are required - GitHub Actions uses built-in GITHUB_TOKEN for deployment.

Branch Strategy

  • publish: Production deployment branch (auto-deploys to GitHub Pages)
  • main/master: Development branch (tests only)
  • Feature branches: Pull request testing only

About

Missing Maps Website

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 43