in root.html). Outputs custom og:image with assets_prefix normalisation and non-Google site verification. --> Configuration Automation System | IT-Journey in _layouts/root.html. What this file adds: - Custom og:image with preview_images.assets_prefix path normalisation for the theme-specific page.preview and page.header.og_image keys. When page.image is set, jekyll-seo-tag handles og:image and this file skips its own og:image output to avoid duplicate tags. - Non-Google site verification tags (Bing, Yandex, Naver, Baidu) Dependencies: - jekyll-seo-tag plugin (loaded in _layouts/root.html via Configuration Automation System | IT-Journey ) - site.preview_images config in _config.yml =================================================================== --> Configuration Automation System | IT-Journey Skip to main content
Settings
Search
Appearance
Theme Mode
About
Jekyll v3.10.0
Environment Production
Last Build
2026-04-11 02:52 UTC
Current Environment Production
Build Time Apr 11, 02:52
Jekyll v3.10.0
Build env (JEKYLL_ENV) production
Page Location
Page Info
Layout default
Collection about
Path _about/automation.md
URL /about/automation/
Date 2025-07-03
Theme Skin
SVG Backgrounds
Layer Opacity
0.6
0.04
0.08

Configuration Automation System

By Amr

Estimated reading time: 5 minutes

Configuration Automation System

This document describes the comprehensive automation system that maintains configuration files, documentation, and site structure information for the IT-Journey platform.

System Overview

The automation system follows IT-Journey’s core principles to ensure consistent, reliable, and maintainable configuration management:

🎯 Automated Synchronization

  • Source: Root _config.yml file
  • Target: pages/_about/settings/ directory
  • Trigger: Changes to configuration or manual workflow dispatch
  • Process: Copy, enhance, and document configuration changes

🔄 Continuous Integration

  • GitHub Actions Workflow: .github/workflows/update-settings.yml
  • Helper Script: scripts/update-settings.sh
  • Documentation: Automatic README and documentation generation

Components

1. GitHub Actions Workflow

File: .github/workflows/update-settings.yml

Triggers:

  • Push to main branch with changes to _config.yml
  • Manual workflow dispatch with force update option

Features:

  • Cross-platform compatibility (Ubuntu runner)
  • Ruby and Jekyll environment setup
  • Tree command installation and fallback
  • Comprehensive error handling
  • Automatic commit and push
  • Detailed workflow summary

2. Helper Script

File: scripts/update-settings.sh

Capabilities:

  • Environment variable configuration
  • Modular function design
  • Error handling with set -e
  • Cross-platform compatibility
  • Manual execution support

Functions:

  • copy_config() - Synchronize configuration files
  • generate_tree() - Create directory structure
  • generate_sitemap() - Build navigation data
  • update_config_md() - Enhance configuration documentation
  • update_tree_md() - Update structure documentation
  • update_sitemap_md() - Refresh navigation documentation

3. Generated Files

Configuration Files

  • _config.yml - Synchronized Jekyll configuration
  • config-utf16.txt - Windows compatibility backup
  • sitemap-data.yml - Structured site navigation data

Documentation Files

  • config.md - Enhanced configuration documentation
  • tree.md - Repository structure visualization
  • sitemap.md - Complete site navigation map

Structure Files

  • tree.txt - ASCII directory structure
  • tree-utf16.txt - Windows-encoded structure backup

Integration with IT-Journey Principles

Design for Failure (DFF)

Error Handling:
  - Workflow: Comprehensive step validation
  - Script: Set -e for immediate error exit
  - Fallback: Manual script execution available
  - Backup: Multiple file format support

Don’t Repeat Yourself (DRY)

Reusability:
  - Functions: Modular script design
  - Templates: Consistent documentation structure
  - Automation: Single workflow for multiple tasks
  - Configuration: Single source of truth

Keep It Simple (KIS)

Simplicity:
  - Interface: Clear script parameters
  - Logic: Straightforward workflow steps
  - Dependencies: Minimal external requirements
  - Maintenance: Self-documenting code

AI-Powered Development (AIPD)

AI Integration:
  - Documentation: AI-enhanced content generation
  - Optimization: Intelligent workflow improvements
  - Maintenance: Automated content updates
  - Learning: AI-assisted script development

Usage Guide

Automatic Operation

The system operates automatically when:

  1. Changes are made to _config.yml
  2. Changes are pushed to the main branch
  3. GitHub Actions workflow executes
  4. Files are updated and committed

Manual Operation

Using GitHub Actions

  1. Navigate to Actions tab in GitHub repository
  2. Select “Update Settings Configuration” workflow
  3. Click “Run workflow”
  4. Optionally check “Force update all settings files”
  5. Click “Run workflow” button

Using Script Directly

# Standard execution
./scripts/update-settings.sh

# With custom settings
SETTINGS_DIR="custom/path" ./scripts/update-settings.sh

# From any directory
cd /path/to/it-journey
./scripts/update-settings.sh

Local Development

# Install dependencies
sudo apt-get install tree  # Linux
brew install tree          # macOS

# Run script locally
./scripts/update-settings.sh

# Verify changes
git status
git diff

Monitoring and Maintenance

Workflow Monitoring

  • GitHub Actions Tab: View execution history and logs
  • Workflow Summary: Detailed step-by-step results
  • Email Notifications: Failure alerts (if configured)

File Validation

# Check generated files
ls -la pages/_about/settings/

# Validate YAML syntax
ruby -ryaml -e "YAML.load_file('pages/_about/settings/sitemap-data.yml')"

# Test Jekyll build
bundle exec jekyll build --dry-run

Troubleshooting

Common Issues

  1. Tree command missing: Fallback generates basic structure
  2. Permission errors: Ensure script is executable (chmod +x)
  3. YAML syntax errors: Validate generated YAML files
  4. Jekyll build failures: Check configuration syntax

Debug Steps

# Check script permissions
ls -la scripts/update-settings.sh

# Run with debug output
bash -x scripts/update-settings.sh

# Validate configuration
bundle exec jekyll doctor

Future Enhancements

Planned Features

  • Content Validation: Automatic link checking and validation
  • Performance Metrics: Build time and file size monitoring
  • Multi-environment: Development, staging, and production configs
  • AI Enhancement: Intelligent content suggestions and optimization

Extension Points

  • Custom Generators: Additional content generation scripts
  • Validation Rules: Custom YAML and Markdown validation
  • Notification Systems: Slack, email, or webhook integrations
  • Metrics Collection: Performance and usage analytics

Contributing

To contribute to the automation system:

  1. Fork the repository and create a feature branch
  2. Test changes locally using the manual script execution
  3. Update documentation for any new features or changes
  4. Submit a pull request with clear description of improvements
  5. Ensure CI passes and all automation works correctly

Development Guidelines

  • Follow existing code style and structure
  • Add comprehensive error handling
  • Include documentation for new features
  • Test on multiple platforms when possible
  • Use meaningful commit messages

This automation system embodies the IT-Journey mission of using AI-powered development practices to create efficient, maintainable, and educational technology solutions.


Last Updated: 2025-06-22T23:35:00.000Z
Automation: update-settings.ymlupdate-settings.sh