๐ CI Workflow Overview
Diagram 1: Repository Lifecycle & Tasks
graph TD
subgraph "๐ Phase 1: Repository Setup"
A1[๐ Create Repository]
A2[โ๏ธ Configure Secrets & Settings]
A3[๐ท๏ธ Setup Labels & Rules]
A4[๐ก๏ธ Configure Branch Protection]
end
subgraph "๐ป Phase 2: Development Cycle"
B1[๐ Write Code & Tests]
B2[๐ค Push to Branch]
B3[๐งช Run Tests & Checks]
B4[๐ง Create Pull Request]
B5[๐ Welcome Contributors]
B6[๐ท๏ธ Auto-label Issues/PRs]
B7[๐ฅ Code Review Process]
B8[๐ Merge to Main]
end
subgraph "๐ฆ Phase 3: Dependency Management"
C1[๐ Check for Updates]
C2[๐ Create Update PRs]
C3[๐งช Test Dependency Changes]
C4[โ
Auto-merge Safe Updates]
end
subgraph "๐ Phase 4: Release Process"
D1[๐ท๏ธ Create Release Tag]
D2[๐๏ธ Build Gem Package]
D3[๐งช Test Built Gem]
D4[๐ Publish to RubyGems]
D5[๐ Generate Changelog]
D6[๐ข Send Notifications]
end
subgraph "๐ Phase 5: Ongoing Maintenance"
E1[๐งน Manage Stale Issues]
E2[๐ Check Ecosystem Health]
E3[๐ Monitor Performance]
E4[๐ฅ Engage Community]
end
%% Phase flows
A1 --> A2 --> A3 --> A4 --> B1
B1 --> B2 --> B3 --> B4 --> B5
B5 --> B6 --> B7 --> B8 --> B1
C1 --> C2 --> C3 --> C4 --> C1
B8 --> D1 --> D2 --> D3 --> D4 --> D5 --> D6 --> B1
E1 --> E2 --> E3 --> E4 --> E1
%% Styling
classDef setup fill:#e3f2fd
classDef dev fill:#f3e5f5
classDef deps fill:#fff3e0
classDef release fill:#e8f5e8
classDef maintain fill:#fce4ec
class A1,A2,A3,A4 setup
class B1,B2,B3,B4,B5,B6,B7,B8 dev
class C1,C2,C3,C4 deps
class D1,D2,D3,D4,D5,D6 release
class E1,E2,E3,E4 maintain
Diagram 2: Lifecycle Tasks โ CI/CD Workflows Mapping
graph LR
subgraph "๐ Repository Tasks"
T1[โ๏ธ Configure Secrets & Settings]
T2[๐ท๏ธ Setup Labels & Rules]
T3[๐งช Run Tests & Checks]
T4[๐ Welcome Contributors]
T5[๐ท๏ธ Auto-label Issues/PRs]
T6[๐ Check for Updates]
T7[๐ Create Update PRs]
T8[๐๏ธ Build Gem Package]
T9[๐ Publish to RubyGems]
T10[๐ Generate Changelog]
T11[๐ข Send Notifications]
T12[๐งน Manage Stale Issues]
T13[๐ Check Ecosystem Health]
T14[๐ Monitor Performance]
T15[๐ค Interactive Commands]
end
subgraph "๐ค Our CI/CD Workflows"
W1[01-intake.yml
๐ท๏ธ Intake & Labels] W2[02-ci.yml
๐งช CI - Ruby 3.3 + Ubuntu] W3[03-security.yml
๐ Security - Weekly] W4[04-quality.yml
๐ Quality - Custom Linting] W5[05-community.yml
๐ฅ Community - Weekly] W6[06-release.yml
๐ Release & Publishing] W7[07-ecosystem.yml
๐ Ecosystem - Bi-weekly] W8[08-monitoring.yml
๐ Monitoring - Weekly] W9[09-bot-commands.yml
๐ค Bot Commands] W10[Dependabot
๐ฆ Dependency Updates] end %% Task to Workflow Mappings T1 -.-> W1 T2 --> W1 T3 --> W2 T3 --> W3 T3 --> W4 T4 --> W1 T5 --> W1 T6 --> W10 T7 --> W10 T8 --> W6 T9 --> W6 T10 --> W6 T11 --> W6 T12 --> W5 T13 --> W7 T14 --> W8 T15 --> W9 %% Styling classDef task fill:#e8f5e8 classDef workflow fill:#f3e5f5 class T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 task class W1,W2,W3,W4,W5,W6,W7,W8,W9,W10 workflow
๐ท๏ธ Intake & Labels] W2[02-ci.yml
๐งช CI - Ruby 3.3 + Ubuntu] W3[03-security.yml
๐ Security - Weekly] W4[04-quality.yml
๐ Quality - Custom Linting] W5[05-community.yml
๐ฅ Community - Weekly] W6[06-release.yml
๐ Release & Publishing] W7[07-ecosystem.yml
๐ Ecosystem - Bi-weekly] W8[08-monitoring.yml
๐ Monitoring - Weekly] W9[09-bot-commands.yml
๐ค Bot Commands] W10[Dependabot
๐ฆ Dependency Updates] end %% Task to Workflow Mappings T1 -.-> W1 T2 --> W1 T3 --> W2 T3 --> W3 T3 --> W4 T4 --> W1 T5 --> W1 T6 --> W10 T7 --> W10 T8 --> W6 T9 --> W6 T10 --> W6 T11 --> W6 T12 --> W5 T13 --> W7 T14 --> W8 T15 --> W9 %% Styling classDef task fill:#e8f5e8 classDef workflow fill:#f3e5f5 class T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 task class W1,W2,W3,W4,W5,W6,W7,W8,W9,W10 workflow
๐ Repository Lifecycle Timeline
Phase | Duration | Key Activities | Frequency |
---|---|---|---|
๐ Setup | 1-2 days | Initial configuration, secrets, labels | Once |
๐ป Development | Ongoing | Code, test, review, merge | Daily |
๐ฆ Dependencies | Background | Automated dependency updates | Weekly |
๐ Release | 30 minutes | Tag, build, publish, notify | As needed |
๐ Maintenance | Background | Community management, monitoring | Daily/Weekly |
๐ฏ Task โ Workflow Mapping Table
Repository Task | Our CI/CD Solution | Trigger | Frequency |
---|---|---|---|
โ๏ธ Configure Settings | Manual setup | One-time | Once |
๐ท๏ธ Setup Labels | 01-intake.yml |
Manual/Push | Once + updates |
๐งช Run Tests | 02-ci.yml , 03-security.yml , 04-quality.yml |
Push/PR | Every change |
๐ Welcome Contributors | 01-intake.yml |
First PR/Issue | Per new contributor |
๐ท๏ธ Auto-label | 01-intake.yml |
PR/Issue created | Every PR/Issue |
๐ฆ Update Dependencies | Dependabot + CI workflows | Schedule | Weekly + testing |
๐ Build & Publish | 06-release.yml |
Tag created | Per release |
๐งน Manage Community | 05-community.yml |
Schedule | Weekly - 85% reduction |
๐ Check Ecosystem | 07-ecosystem.yml |
Schedule | Bi-weekly - 50% reduction |
๐ Monitor Health | 08-monitoring.yml |
Schedule | Weekly - 85% reduction |
๐ค Interactive Commands | 09-bot-commands.yml |
Issue comments | On-demand |
๐ Complete Development Flow
1
2
3
4
5
6
Repository Lifecycle:
Setup โ Development โท Dependencies โ Release โ Maintenance
โ โ โ โ โ
Our Workflows:
Manual โ 01,02,03,04 โ Dependabot+CI โ 06 โ 05,07,08,09
Ruby 3.3+Ubuntu Security Weekly/Bi-weekly
This separation makes it much clearer:
- First diagram: Shows the natural lifecycle and tasks
- Second diagram: Shows how our optimized workflows handle those tasks
- Tables: Provide detailed mapping and timing information
Key Optimizations Applied:
- 75-80% cost reduction through Ruby 3.3 only, Ubuntu only, reduced schedules
- 70% performance improvement with custom linting vs super-linter
- Zero comment spam with consolidated PR dashboard
- Enhanced security with weekly scanning and release validation