Add dry_run_mode input to control when dry-run builds execute

Summary

This MR adds a new dry_run_mode input parameter that allows users to configure when gem building jobs should run in dry-run mode.

Changes

  • New input: dry_run_mode with options:
    • manual (default): Only on MRs with "RELEASE" in the title (existing behavior)
    • always: On all merge requests
  • New rule set: .dry-run-mode-always-rules to enable builds on all MRs
  • Updated jobs: Modified .prepare-release-base and build-native-gems to include the new rules
  • Documentation: Updated README with the new input and usage example

Behavior

When dry_run_mode: "always" is set:

  • Build jobs (build-gem-env, build-regular-gem, build-native-gems, gem-smoke-test) run on all MRs
  • Release jobs (release-creation, gem-publication) remain restricted to default branch pushes and RELEASE MRs
  • Backward compatible - existing behavior unchanged when not specified

Usage Example

include:
  - component: gitlab.com/gitlab-org/components/gem-release/gem-release@main
    inputs:
      dry_run: "true"
      dry_run_mode: "always"

This addresses the use case where projects want to validate gem builds in CI on every MR without triggering releases.

Related

Closes #

Merge request reports

Loading