Draft
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>
Contributor
Author
🔔 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 |
Contributor
|
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 file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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