Skip to the content.

๐Ÿ”„ Workflow Overview

Complete documentation of all 9 gem-ci workflows and their functionality

๐ŸŽฏ Workflow Architecture

gem-ci includes 9 comprehensive workflows that provide complete automation for Ruby gem development:

๐Ÿ“‹ Core Workflows

01 - Intake (01-intake.yml)

Purpose: First contact and organization for issues and PRs

Triggers:

Key Features:

Dependencies: GitHub App authentication


02 - CI (02-ci.yml)

Purpose: Continuous Integration with tests, linting, and builds

Triggers:

Key Features:

Cost Optimization: Ubuntu-only runners, Ruby 3.3 only


03 - Security (03-security.yml)

Purpose: Comprehensive security scanning and vulnerability detection

Triggers:

Key Features:

Cost Optimization: Reduced from daily to weekly


04 - Quality (04-quality.yml)

Purpose: Code quality enforcement and documentation

Triggers:

Key Features:

Performance Improvement: Replaced super-linter with focused custom linting (~70% faster)


05 - Community (05-community.yml)

Purpose: Community management and engagement

Triggers:

Key Features:

Cost Optimization: Reduced from daily to weekly


06 - Release (06-release.yml)

Purpose: Automated releases and publishing

Triggers:

Key Features:

Dependencies: RubyGems API key, release environment


07 - Ecosystem (07-ecosystem.yml)

Purpose: Ecosystem health and compatibility monitoring

Triggers:

Key Features:

Cost Optimization: Reduced from weekly to bi-weekly, Ruby 3.3 only


08 - Monitoring (08-monitoring.yml)

Purpose: Performance monitoring and health tracking

Triggers:

Key Features:

Cost Optimization: Reduced from daily to weekly


09 - Bot Commands (09-bot-commands.yml)

Purpose: Interactive bot commands for workflow management

Triggers:

Key Features:

Dependencies: GitHub App authentication

๐Ÿ“‹ Complete Automation Tasks

Category Task Workflow Action Used Configuration
๐Ÿ”„ CI/CD Ruby testing 02-ci.yml ruby/setup-ruby@v1 Ruby 3.3 (optimized)
ย  Ubuntu testing 02-ci.yml actions/checkout@v4 Ubuntu-latest (cost optimized)
ย  Dependency caching 02-ci.yml actions/cache@v3 Bundler cache
ย  Test execution 02-ci.yml Custom scripts RSpec, Minitest
ย  Coverage reporting 04-quality.yml simplecov gem 90% threshold
๐Ÿ”’ Security CodeQL analysis 03-security.yml github/codeql-action@v3 .github/config/codeql.yml
ย  Dependency scanning 03-security.yml actions/dependency-review-action@v4 Vulnerability detection
ย  Secret scanning 03-security.yml trufflesecurity/trufflehog@main Git history scan
ย  Container scanning 03-security.yml aquasecurity/trivy-action@master Dockerfile security
ย  Bundle audit 03-security.yml bundler-audit gem Gem vulnerabilities
๐Ÿ“Š Quality Code linting 04-quality.yml rubocop/rubocop-github-action@v0.1.0 RuboCop standards
ย  Documentation 04-quality.yml yard gem API documentation
ย  Markdown linting 04-quality.yml DavidAnson/markdownlint-cli2-action@v16 Markdown standards
ย  Super linting 04-quality.yml super-linter/super-linter@v5 Multi-language linting
๐Ÿท๏ธ Labels Label sync 01-intake.yml crazy-max/ghaction-github-labeler@v5 .github/config/labels.yml
ย  Auto-labeling 01-intake.yml actions/labeler@v5 .github/config/labeler.yml
ย  Size labeling 01-intake.yml Custom script PR size detection
๐Ÿ‘ฅ Community Welcome messages 01-intake.yml actions/first-interaction@v1 First-time contributors
ย  Stale management 05-community.yml actions/stale@v9 60-day stale policy
ย  Contributor recognition 05-community.yml Custom script Achievement badges
ย  Health monitoring 08-monitoring.yml Custom script Community metrics
๐Ÿš€ Release Semantic versioning 06-release.yml Custom script Version bumping
ย  Changelog generation 06-release.yml Custom script Auto-generated changelogs
ย  RubyGems publishing 06-release.yml ruby/setup-ruby@v1 Automated gem push
ย  GitHub releases 06-release.yml actions/create-release@v1 Release notes
ย  Release notifications 06-release.yml slackapi/slack-github-action@v1.27.0 Slack integration
๐Ÿ“ฆ Dependencies Dependency updates Dependabot GitHub native .github/dependabot.yml
ย  Security updates Dependabot GitHub native Auto-merge safe updates
ย  Version grouping Dependabot GitHub native Development/testing groups
๐Ÿ›ก๏ธ Protection Branch protection Rulesets GitHub native .github/config/rulesets/
ย  Tag protection Rulesets GitHub native Release tag protection
ย  Push restrictions Rulesets GitHub native Development branch rules
๐Ÿ“ข Notifications Slack integration Multiple Custom shared action SLACK_BOT_TOKEN + SLACK_CHANNEL_ID
ย  PR Status Dashboard Multiple update-pr-status action Consolidated PR comments
๐Ÿค– Bot Commands Release management 09-bot-commands.yml actions/github-script@v7 Slash commands
ย  Help system 09-bot-commands.yml actions/github-script@v7 Interactive help
๐ŸŒ Ecosystem Dependency health 07-ecosystem.yml Custom scripts Bi-weekly checks
ย  Compatibility matrix 07-ecosystem.yml ruby/setup-ruby@v1 Ruby version testing
ย  Performance benchmarks 07-ecosystem.yml Custom benchmark scripts Release validation
๐Ÿ“Š Monitoring Workflow metrics 08-monitoring.yml actions/github-script@v7 Weekly performance tracking
ย  Repository health 08-monitoring.yml Custom health checks Automated health reports
๐Ÿงช Validation GitHub App setup tests/validate-github-app.yml actions/create-github-app-token@v1 Token validation
ย  Slack integration tests/validate-slack-integration.yml slackapi/slack-github-action@v1.27.0 Message testing
ย  Label sync tests/validate-labels-sync.yml crazy-max/ghaction-github-labeler@v5 Configuration validation
ย  Repository rulesets tests/validate-repository-rulesets.yml Custom scripts Ruleset validation

๐Ÿ”— Workflow Dependencies

graph TD A[GitHub App Token] --> B[01-Intake] A --> C[03-Security] A --> D[04-Quality] A --> E[05-Community] A --> F[06-Release] A --> G[09-Bot Commands] H[Slack Integration] --> I[Notifications] J[RubyGems Token] --> F K[02-CI Results] --> L[PR Dashboard] M[03-Security Results] --> L N[04-Quality Results] --> L

๐Ÿ“Š Shared Actions

update-pr-status (.github/actions/update-pr-status)

Purpose: Consolidated PR status comment management

Used By: CI, Security, Quality workflows

Features:


Notification System (.github/workflows/shared/notification.yml)

Purpose: Standardized Slack notifications

Used By: CI, Release, Quality workflows

Features:

๐ŸŽฏ Key Optimizations Applied

Cost Reductions (~75-80% total savings)

Performance Improvements

User Experience Enhancements


Questions? Check our validation guide or open an issue for help.