Skip to content

[ci] release.yml has three silently-ignored workflow_dispatch inputs #262

@rdeago

Description

@rdeago

Affected version(s)

All preview versions up to and including 2.0.103-preview.

Is this a regression?

No — the wiring has been latently broken across previews; this issue surfaces the problem and proposes the fix that needs to land with the next bv version bump.

Context

bv reads option defaults from environment variables: each OptionsService key (e.g. versionSpecChange) is converted to UPPER_SNAKE (VERSION_SPEC_CHANGE) and looked up in the environment. .github/workflows/release.yml exposes workflow_dispatch inputs that bind to env vars consumed by dotnet bv release.

Three of the four bound env vars don't match what bv actually consumes:

Input → env var (today) bv option key Env var bv looks up Working?
versionSpecChangeVERSION_SPEC_CHANGE versionSpecChange VERSION_SPEC_CHANGE yes
checkPublicApiCHECK_PUBLIC_API checkPublicApiFiles CHECK_PUBLIC_API_FILES no
forceUpdateChangelogFORCE_UPDATE_CHANGELOG updateChangelogOnPrerelease UPDATE_CHANGELOG_ON_PRERELEASE no
checkChangelogCHECK_CHANGELOG ensureChangelogNotEmpty ENSURE_CHANGELOG_NOT_EMPTY no

Expected behavior

Toggling a workflow_dispatch input changes the corresponding bv release behavior.

Actual behavior

Three of the four toggles ("Check public API files", "Update changelog on preview", "Check changelog before update") are no-ops on the current published bv.

How to reproduce

Dispatch the release workflow with forceUpdateChangelog=true on a prerelease build whose 'Unreleased changes' section is empty. Expected: changelog updated (or build failed with checkChangelog=true). Actual: behavior identical to the default regardless of input value.

Configuration

Tenacom/Buildvana@main, .github/workflows/release.yml, any bv version up to and including 2.0.103-preview.

Other information

PR #261 renames the bv release options. The fix must land synchronized with the dogfood commit that pins the new bv version (otherwise the workflow runs against old bv with new option names, or new bv with old option names — both broken).

The cleanest forward-looking fix is to bind dispatch inputs to CLI args rather than env vars (e.g. dotnet bv release --bump %BUMP_INPUT% --unstable-changelog %UNSTABLE_CHANGELOG_INPUT% …). This dovetails with the planned retirement of the env-var-as-option fallback (#263).

Acceptance criteria

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug[issue/PR] reports / solves a bug.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions