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 |
|
This pull request has been inactive for 90 days. If you plan to continue working on this PR, please leave a comment to keep it open. |
|
This pull request was automatically closed due to inactivity. If you'd like to continue this work, please reopen the PR or create a new one. |
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