Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 18:16:32 +08:00
commit 8ae15f7b83
4 changed files with 156 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
{
"name": "pipeline-status",
"description": "Summarize the status of the RHCOS pipeline using Slack",
"version": "0.0.0-2025.11.28",
"author": {
"name": "coreos",
"email": "zhongweili@tubi.tv"
},
"commands": [
"./commands"
]
}

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# pipeline-status
Summarize the status of the RHCOS pipeline using Slack

View File

@@ -0,0 +1,96 @@
# CoreOS Pipeline Status Analysis
Analyze CoreOS pipeline build status for a specific date using the containerized CoreOS pipeline status tool.
## Usage
- `coreos_pipeline_status` - Analyze builds for today's date
- `coreos_pipeline_status YYYY-MM-DD` - Analyze builds for specific date
## Implementation
### Step 1: Execute Pipeline Status Query
```bash
# Set date parameter (defaults to current date)
date=${1:-$(date +%Y-%m-%d)}
podman run --rm --env-file .env quay.io/cverna/coreos-pipeline-status:latest --date $date --pretty
```
### Step 2: Analysis Requirements
1. **Build Summary**: Count total builds, failures, and successes
2. **Version Breakdown**: Use exact version names from Jenkins messages (e.g., rhel-10.1, 4.21-9.6, 4.20-10.1)
3. **Job Type Analysis**: Break down by job type (architecture builds, release builds, node-image builds)
4. **Architecture Analysis**: Break down by architecture (x86_64, ppc64le, s390x, aarch64)
5. **Failure Rate**: Calculate overall failure percentage
6. **Notable Issues**: Highlight patterns or user comments about failures
### Step 3: Report Generation
Create a concise summary including:
#### Required Sections:
- **Total Messages**: Count of pipeline notifications
- **Build Status Overview**: Success/failure counts with emoji indicators
- **Builds by Version & Job Type**: Version-specific breakdowns using exact Jenkins message names
- **Job Type Breakdown**: Success/failure rates by job type (arch builds, releases, node-image builds)
- **Architecture Breakdown**: Per-architecture success/failure rates
- **Notable Issues**: Key problems or patterns observed
#### Status Indicators:
- 🔥 Failed builds (red color in Slack)
- ✨ Successful builds (green color in Slack)
- 🚅 Release builds (yellow/orange color in Slack)
#### Formatting Requirements:
- Use markdown headers and bullet points
- Include build numbers and Jenkins url links
- Calculate and display failure percentages
- Highlight architecture-specific issues (e.g., 100% ppc64le failures)
### Step 4: Slack Summary Generation
Finish the status with a short slack message to highlight the failures, see example below:
```
🚨 CoreOS Pipeline Summary - 2025-09-17
21% failure rate (3/14 builds failed)
node-image builds:
- 4.21-10.1: 0/1 🔥
- 4.21-9.6: 0/2 🔥
- 4.20-10.1: 1/1 ✅
RHCOS & Release builds:
- rhel-10.1: 5/5 ✅
- 4.15-9.2: 5/5 ✅
```
#### Summary Guidelines:
- Lead with overall failure percentage
- Highlight job type specific failures (e.g., node-image builds vs arch builds)
- Use exact version names from Jenkins messages
- Group by job type when patterns emerge (e.g., all node-image builds failing)
- End with builds by version table using ✅/🔥 indicators
- Keep under 10 lines for urgent visibility
- Use emojis for quick visual scanning
### Step 5: Post Summary to Slack
After generating the analysis and summary, post the summary to the Slack channel:
```bash
podman run --rm --env-file .env quay.io/cverna/coreos-pipeline-status:latest --summary "SLACK_SUMMARY_TEXT"
```
Example:
```bash
podman run --rm --env-file .env quay.io/cverna/coreos-pipeline-status:latest --summary "🚨 CoreOS Pipeline Summary - 2025-09-17
21% failure rate (3/14 builds failed)
node-image builds:
- 4.21-10.1: 0/1 🔥
- 4.21-9.6: 0/2 🔥
- 4.20-10.1: 1/1 ✅
RHCOS & Release builds:
- rhel-10.1: 5/5 ✅
- 4.15-9.2: 5/5 ✅"
```

45
plugin.lock.json Normal file
View File

@@ -0,0 +1,45 @@
{
"$schema": "internal://schemas/plugin.lock.v1.json",
"pluginId": "gh:coreos/ai-helpers:plugins/pipeline-status",
"normalized": {
"repo": null,
"ref": "refs/tags/v20251128.0",
"commit": "33fffe772454bae604947f5bfc70cf29c700b767",
"treeHash": "eb14da2d28c96abad419817d08fcd3c0ba7fe56c4893d0d1183462c2bd7803d0",
"generatedAt": "2025-11-28T10:15:46.538128Z",
"toolVersion": "publish_plugins.py@0.2.0"
},
"origin": {
"remote": "git@github.com:zhongweili/42plugin-data.git",
"branch": "master",
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
},
"manifest": {
"name": "pipeline-status",
"description": "Summarize the status of the RHCOS pipeline using Slack",
"version": null
},
"content": {
"files": [
{
"path": "README.md",
"sha256": "f42248394e14f8de2960ea6c51c2ad8cf121e7399f93cbc630c1914c2972878d"
},
{
"path": ".claude-plugin/plugin.json",
"sha256": "f07af0fd55908ed78f1b84edc5d1c88fc57ed4f2f8ad0a3e071e64cdbdc8b631"
},
{
"path": "commands/pipeline_status.md",
"sha256": "640f42a6653f65cfe3cbb86a3a8a2290e43e8c098ebf20121e57530c8b400d6a"
}
],
"dirSha256": "eb14da2d28c96abad419817d08fcd3c0ba7fe56c4893d0d1183462c2bd7803d0"
},
"security": {
"scannedAt": null,
"scannerVersion": null,
"flags": []
}
}