-
-
Notifications
You must be signed in to change notification settings - Fork 273
feat(ci): additional Improvements #1267
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
This commit implements Phase 5 of the workflow improvements plan:
1. **Extract Release Command to Script**
- Created `.github/scripts/trigger-package-releases.sh` script
- Extracted complex melos command from release-tag.yml
- Added error handling and logging to the script
- Made script executable and self-documenting
- Improved maintainability by separating logic from workflow
2. **Enhanced Error Handling for Release Workflows**
- Added step IDs to track success/failure of each step
- Added workflow summaries to release-tag.yml showing:
- Overall status (success/failure)
- Commit message and ref information
- Added workflow summaries to release-publish.yml showing:
- Pub.dev publishing status
- GitHub release creation status
- Overall package release status
- Summaries help quickly identify which step failed
3. **Dependency Vulnerability Scanning**
- Created new `dependency-scan.yml` workflow
- Runs weekly on Mondays at 9:00 UTC
- Triggers on pubspec.yaml/pubspec.lock changes
- Can be manually triggered via workflow_dispatch
- Generates two reports:
- Outdated dependencies report (dart pub outdated)
- Security audit report (checks for vulnerabilities)
- Uploads reports as artifacts with 30-day retention
- Generates formatted summary in GitHub Actions UI
- Helps proactively identify security issues
These improvements enhance reliability, maintainability, and security
of the CI/CD pipeline.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added comprehensive Slack notification system for release workflows, matching the implementation pattern from supabase-js repository. **New Workflow:** - Created `.github/workflows/slack-notify.yml` reusable workflow - Sends formatted Slack messages with rich content blocks - Includes status indicators (✅/❌/ℹ️), repository info, commit details - Supports success, failure, and info notification types - Displays version and package information - Provides action buttons to view workflow run and commit **Integration:** - Updated `release-publish.yml` to notify on success/failure - Sends notification after package publishing completes - Includes package version in notification - Updated `release-tag.yml` to notify on success/failure - Sends notification after release tags are created - Helps track release pipeline progress **Configuration:** - Uses `secrets.SLACK_CLIENT_LIBS_WEBHOOK` for Slack webhook URL - Must be configured in repository secrets to enable notifications - Notifications only sent if secret is available **Additional:** - Added dependency-scan workflow badge to README This enables real-time visibility into release status via Slack, improving team awareness and enabling faster response to release issues. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
🔔 Slack Notifications AddedAdded comprehensive Slack notification system for release workflows, following the implementation pattern from supabase-js. What's New1. Reusable Slack Notification WorkflowCreated
2. Release Publish NotificationsUpdated
3. Release Tag NotificationsUpdated
Configuration RequiredTo enable Slack notifications, the repository needs:
Benefits
Example NotificationThe Slack message will look like: Additional: Also added a badge for the dependency-scan workflow to the README. |
Pull Request Test Coverage Report for Build 19304934579Details
💛 - Coveralls |
Summary
This PR implements Phase 5: Additional Improvements from the workflow improvement plan tracked in SDK-516.
Changes
1. Extract Release Command to Script
Problem: The release-tag workflow had a complex inline melos command that was hard to read, maintain, and debug.
Solution:
.github/scripts/trigger-package-releases.shscriptBenefits:
2. Enhanced Error Handling for Release Workflows
Problem: When release workflows failed, it was hard to quickly identify what went wrong.
Solution:
release-tag.yml:
release-publish.yml:
Benefits:
3. Dependency Vulnerability Scanning
Problem: No proactive monitoring of dependency vulnerabilities or outdated packages.
Solution:
dependency-scan.ymlworkflowdart pub outdatedto check for available updatescontinue-on-errorto ensure complete scan even if some packages failBenefits:
Files Changed
New Files:
.github/scripts/trigger-package-releases.sh- Release triggering script.github/workflows/dependency-scan.yml- Vulnerability scanning workflowModified Files:
.github/workflows/release-tag.yml- Uses new script, added summaries.github/workflows/release-publish.yml- Added error handling and summariesTechnical Details
Script Implementation:
set -e)Workflow Summaries:
$GITHUB_STEP_SUMMARYfor formatted outputif: always()) to show results even on failureDependency Scanning:
Testing
This PR should be tested by:
Related Issues
Security Considerations
The dependency scan workflow:
contents: readpermission (minimal access)security-eventsandissuesfor reporting🤖 Generated with Claude Code