name: Documentation Validation on: push: branches: [ main ] paths: - 'documentation/**' - 'README.md' pull_request: branches: [ main ] paths: - 'documentation/**' - 'README.md' jobs: validate-docs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Check for broken links run: | # Install link checker pip install linkchecker # Check documentation links find documentation/ -name "*.md" -exec linkchecker --check-extern {} \; - name: Validate markdown structure run: | # Check for required documentation sections echo "Validating documentation structure..." # Check root README if [ ! -f "README.md" ]; then echo "❌ Missing root README.md" exit 1 fi # Check documentation directory exists if [ ! -d "documentation/" ]; then echo "❌ Missing documentation/ directory" exit 1 fi echo "✅ Documentation structure validation passed" - name: Run markdown lint uses: DavidAnson/markdownlint-cli2-action@v9 with: globs: 'documentation/**/*.md README.md' terraform-validation: runs-on: ubuntu-latest if: contains(github.event.head_commit.message, 'terraform') || contains(github.event.head_commit.message, 'infrastructure') steps: - uses: actions/checkout@v3 - name: Setup Terraform uses: hashicorp/setup-terraform@v2 with: terraform_version: 1.5.0 - name: Terraform Format id: fmt run: terraform fmt -check -recursive infrastructure/ - name: Terraform Init run: terraform init infrastructure/aws-org/ - name: Terraform Validate run: terraform validate infrastructure/aws-org/