This document provides comprehensive documentation for all GitHub Actions workflows in the IT-Journey repository.
The IT-Journey repository uses GitHub Actions for continuous integration, automated testing, content validation, and deployment. All workflows are located in .github/workflows/
.
Workflow | Trigger | Purpose | Status |
---|---|---|---|
Link Checker | Schedule, Manual | Validate links with AI analysis | Active |
Build Validation | Push, PR | Verify Jekyll builds successfully | Active |
Frontmatter Validation | PR, Manual | Validate content frontmatter | Active |
AI Content Review | PR, Push | AI-powered content quality review | Active |
Organize Posts | Schedule, Manual | Automated content organization | Active |
CodeQL Analysis | Schedule, Push | Security code scanning | Active |
Dependency Checker | Schedule | Check for outdated dependencies | Active |
Update Settings | Manual | Update repository settings | Manual |
Auto PR | Manual | Automated pull request creation | Manual |
Feature Request | Manual | Create feature request issues | Manual |
File: .github/workflows/link-checker.yml
Purpose: Automated link validation with AI-powered analysis to maintain content quality.
Triggers:
Configuration Options:
scope: # website, internal, external, docs, posts, quests, all
analysis_level: # basic, standard, comprehensive, ai-only
create_issue: # true/false - Create GitHub issue with results
ai_analysis: # true/false - Enable AI-powered analysis
timeout: # 10, 20, 30, 45, 60 seconds
Required Secrets:
OPENAI_API_KEY
(optional, for AI analysis)GITHUB_TOKEN
(automatic)Outputs:
link-check-results/
- Detailed JSON resultslink_analysis.json
- Categorized failuresai_analysis.md
- AI insights (if enabled)github_issue.md
- Issue contentExample Manual Trigger:
# Via GitHub CLI
gh workflow run link-checker.yml \
-f scope=website \
-f analysis_level=comprehensive \
-f create_issue=true \
-f ai_analysis=true \
-f timeout=30
Workflow Steps:
See Also:
File: .github/workflows/build-validation.yml
Purpose: Ensure Jekyll builds successfully before merging changes.
Triggers:
Process:
Failure Scenarios:
_config.yml
Troubleshooting:
# Test locally before pushing
bundle exec jekyll build --verbose
# Check for configuration errors
bundle exec jekyll doctor
File: .github/workflows/frontmatter-validation.yml
Purpose: Validate and auto-fix frontmatter in markdown files.
Triggers:
Configuration Options:
apply_fixes: # true/false - Apply automatic fixes
Validated Fields:
Auto-Fix Capabilities:
Usage:
# Via GitHub Actions UI
Actions > Frontmatter Validation > Run workflow
# Select apply_fixes: true to apply fixes automatically
See Also: Frontmatter Standards
File: .github/workflows/ai-content-review.yml
Purpose: AI-powered content quality analysis using GPT-4.
Triggers:
Required Secrets:
OPENAI_API_KEY
- OpenAI API keyReview Criteria:
Output:
Quality Scores:
Cost Considerations: This workflow uses the OpenAI API and incurs costs. Monitor usage in the OpenAI dashboard.
File: .github/workflows/organize-posts-weekly.yml
Purpose: Automated weekly organization of blog posts by categories.
Triggers:
Process:
Script: scripts/development/content/organize-posts.py
File: .github/workflows/codeql-analysis.yml
Purpose: Automated security scanning for vulnerabilities.
Triggers:
Languages Analyzed:
Outputs:
Viewing Results:
Repository > Security > Code scanning alerts
File: .github/workflows/dependency-checker.yml
Purpose: Monitor for outdated or vulnerable dependencies.
Triggers:
Checks:
Actions Taken:
File: .github/workflows/update-settings.yml
Purpose: Update repository settings and configurations.
Trigger: Manual dispatch only
Uses: scripts/deployment/update-settings.sh
File: .github/workflows/auto-pr.yml
Purpose: Create automated pull requests for batch changes.
Trigger: Manual dispatch only
Use Cases:
File: .github/workflows/new-feature-request.yml
Purpose: Streamlined feature request creation.
Trigger: Manual dispatch with inputs
Inputs:
Required Secrets:
GITHUB_TOKEN # Automatic, no setup needed
OPENAI_API_KEY # For AI-powered features
Adding Secrets:
Repository > Settings > Secrets and Variables > Actions > New repository secret
Security:
View Workflow Runs:
Repository > Actions > Select workflow > View run
Download Artifacts:
Workflow run > Artifacts section > Download
Re-run Failed Workflows:
Failed workflow run > Re-run jobs
Enable Debug Logging: Add repository secrets:
ACTIONS_STEP_DEBUG = true
ACTIONS_RUNNER_DEBUG = true
Caching: Workflows use caching for:
Timeout Settings: Most workflows have 45-minute timeout:
timeout-minutes: 45
Concurrency Control: Some workflows limit concurrent runs:
concurrency:
group: $-$
cancel-in-progress: true
Add to README.md:


Configure in:
Repository > Settings > Notifications
Options:
View past runs:
Actions > All workflows > Filter by status/branch/actor
Retention:
Issue: Workflow doesn’t trigger Solution:
main
branchIssue: Secrets not accessible Solution:
Issue: Build fails on specific step Solution:
Issue: Workflow times out Solution:
timeout-minutes
valueTemplate Structure:
name: Workflow Name
on:
push:
branches: [ main ]
workflow_dispatch:
env:
KEY: value
jobs:
job-name:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Environment
# Setup steps
- name: Run Task
run: |
# Commands
- name: Upload Results
uses: actions/upload-artifact@v4
if: always()
with:
name: results
path: output/
Local Testing:
# Install act (GitHub Actions local runner)
brew install act # macOS
# or
curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
# Run workflow locally
act -W .github/workflows/workflow-name.yml
Branch Testing:
Set appropriate permissions:
permissions:
contents: read # Read repository content
issues: write # Create/update issues
pull-requests: write # Comment on PRs
Weekly:
Monthly:
Quarterly:
Keep actions up to date:
# Check for updates
- uses: actions/checkout@v4 # Current
- uses: actions/setup-python@v5 # Current
- uses: actions/upload-artifact@v4 # Current
Use Dependabot to automate:
# .github/dependabot.yml
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
Last Updated: 2025-10-13
Version: 1.0.0