Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: undo breaking change in releases_created output #915

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Commits on Jul 4, 2024

  1. fix: undo breaking change in releases_created output

    An undocumented breaking change slipped into the v4 release which causes
    the conditional in actions to stop working as documented.
    
    In v3 the following step would only run if no releases were created. In
    v4 the action will still run:
    
    ```yml
    - run: echo "releases happened"
      if: ${{ steps.release.outputs.releases_created }}
    ```
    
    This is because the @actions/core npm package `core.setOutput` method
    always casts values to a string, so when we call the following:
    
    ```js
    core.setOutput('releases_created', releases.length > 0);
    ```
    
    The output of the action will always either be `"true"` or `"false"` as
    a string. This is a problem because our `if` statement above will always
    evaluate this to `true` and run the conditional step.
    
    The only reason this worked in v3 is because the `core.setOutput` was
    called only if `releases.length` was greater than zero rather than being
    passed the condition.
    
      * [Relevant v3 code](https://github.com/google-github-actions/release-please-action/blob/db8f2c60ee802b3748b512940dde88eabd7b7e01/index.js#L223-L224)
    
      * [Equivalent v4 code](https://github.com/google-github-actions/release-please-action/blob/cc61a07e2da466bebbc19b3a7dd01d6aecb20d1e/src/index.ts#L165)
    
    So in v3 the possible values for `releases_created` was actually
    `"true"` or `undefined`. This was never an issue because `"true"` is
    truthy and `undefined` is falsy so the conditions in our actions worked
    as expected.
    
    I've moved the `releases_created` output back inside the conditional to
    switch the behaviour to match `v3`.
    rowanmanning committed Jul 4, 2024
    Configuration menu
    Copy the full SHA
    845a6f3 View commit details
    Browse the repository at this point in the history