mirror of
https://github.com/rustfs/rustfs.git
synced 2026-01-17 01:30:33 +00:00
* feat: ensure workflows never skip execution during version releases - Modified skip-duplicate-actions to never skip when pushing tags - Updated all workflow jobs to force execution for tag pushes (version releases) - Ensures complete CI/CD pipeline execution for releases including: - All tests and lint checks - Multi-platform builds - GUI builds - Release asset creation - OSS uploads This guarantees that version releases always undergo full validation and build processes, maintaining release quality and consistency. * refactor: simplify workflow skip logic using do_not_skip parameter - Replace complex conditional expressions with do_not_skip: ['release', 'push'] - Add skip-duplicate-actions to docker.yml workflow - Ensure all workflows use consistent skip mechanism - Maintain release and tag push execution guarantee - Simplify job conditions by removing redundant tag checks This change makes workflows more maintainable and follows official skip-duplicate-actions best practices.
2.5 KiB
2.5 KiB
Summary
This PR modifies the GitHub Actions workflows to ensure that version releases never get skipped during CI/CD execution, addressing the issue where duplicate action detection could skip important release processes.
Changes Made
🔧 Core Modifications
-
Modified skip-duplicate-actions configuration:
- Added
skip_after_successful_duplicate: ${{ !startsWith(github.ref, 'refs/tags/') }}parameter - This ensures tag pushes (version releases) are never skipped due to duplicate detection
- Added
-
Updated workflow job conditions:
- CI Workflow (
ci.yml): Modifiedtest-and-lintande2e-testsjobs - Build Workflow (
build.yml): Modifiedbuild-check,build-rustfs,build-gui,release, andupload-ossjobs - All jobs now use condition:
startsWith(github.ref, 'refs/tags/') || needs.skip-check.outputs.should_skip != 'true'
- CI Workflow (
🎯 Problem Solved
- Before: Version releases could be skipped if there were concurrent workflows or duplicate actions
- After: Tag pushes always trigger complete CI/CD pipeline execution, ensuring:
- ✅ Full test suite execution
- ✅ Code quality checks (fmt, clippy)
- ✅ Multi-platform builds (Linux, macOS, Windows)
- ✅ GUI builds for releases
- ✅ Release asset creation
- ✅ OSS uploads
🚀 Benefits
- Release Quality Assurance: Every version release undergoes complete validation
- Consistency: No more uncertainty about whether release builds were properly tested
- Multi-platform Support: Ensures all target platforms are built for every release
- Backward Compatibility: Non-release workflows still benefit from duplicate skip optimization
Testing
- Workflow syntax validated
- Logic conditions verified for both tag and non-tag scenarios
- Maintains existing optimization for development builds
- Follows project coding standards and commit conventions
Related Issues
This resolves the concern about workflow skipping during version releases, ensuring complete CI/CD execution for all published versions.
Checklist
- Code follows project formatting standards
- Commit message follows Conventional Commits format
- Changes are backwards compatible
- No breaking changes introduced
- All workflow conditions properly tested
Note: This change only affects the execution logic for tag pushes (version releases). Regular development workflows continue to benefit from duplicate action skipping for efficiency.