Files
rustfs/pr_description.md
安正超 6244e23451 refactor: simplify workflow skip logic using do_not_skip parameter (#114)
* 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.
2025-07-08 23:08:45 +08:00

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

  1. 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
  2. Updated workflow job conditions:

    • CI Workflow (ci.yml): Modified test-and-lint and e2e-tests jobs
    • Build Workflow (build.yml): Modified build-check, build-rustfs, build-gui, release, and upload-oss jobs
    • All jobs now use condition: startsWith(github.ref, 'refs/tags/') || needs.skip-check.outputs.should_skip != 'true'

🎯 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

  1. Release Quality Assurance: Every version release undergoes complete validation
  2. Consistency: No more uncertainty about whether release builds were properly tested
  3. Multi-platform Support: Ensures all target platforms are built for every release
  4. 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

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.