Skip to content

feat: add GitHub action outputs #401

@jkowalleck

Description

@jkowalleck

Description

Current GitHub action has some inputs, then it does something, but it has not usable outputs to check what the results were.
As a user of the GitHub action, i want several outputs, so that i can use them programmatically in GitHub workflows.

  • released: bool(-ish) value that indicates whether a released happened
  • version: (new) semantic version that was calculated. if released was false than this would be the current version detected.
  • tag: VCS tag-name was used for the release. if released was false than this would be empty string.
  • url: Github.com URL for the release. if released is false, then this value is empty string
  • id: Release ID. if released is false, then this value is null
  • assets: JSON array containing information about each uploaded asset, in the format given here (minus the uploader field). if released is false, then this value is an empty JSON list
  • assets-dist: JSON object containing information about each uploaded dist asset, in the format given here (minus the uploader field). if released is false, then this value is an empty JSON object
  • upload_url: URL for uploading assets to the release. if released is false, then this value is an empty string

output inspired by https://github.com/softprops/action-gh-release

Use cases

  • released: python-semantic-release GitHub action might detect that no release should happen. To indicate this, you can check this value. As an example, you can use ${{ steps.<step-id>.outputs.released }} to check if a release happened and control other steps based on that information. For example, a DockerHub release can be skipped, if python-semantic-release did not happen, although the GitHub action ended with success() state.
  • version: As an example, you can use ${{ steps.<step-id>.outputs.version }} to get the version that was currently detected/used for the release.
  • tag: As an example, you can use ${{ steps.<step-id>.outputs.tag }} as an input for https://github.com/marketplace/actions/upload-files-to-a-github-release
  • assets: As an example, you can use ${{ fromJSON(steps.<step-id>.outputs.assets-dist)[0].browser_download_url }} to get the download URL of the first asset. This file can then be downloaded and put in a docker image.
  • asset-dist: As an example, you can use ${{ fromJSON(steps.<step-id>.outputs.assets-dist).wheel.browser_download_url }} to get the download URL of the wheel-dist asset. This file can then be downloaded and put in a docker image.
  • upload_url: As an example, you can use ${{ steps.<step-id>.outputs.upload_url }} as an input for https://github.com/actions/upload-release-asset

Possible implementation

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmedPrevent from becoming stalefeatureA new feature or a feature requestgood first issuea good start point for new contributorsneeds-updateNeeds status update from maintainers

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      pFad - Phonifier reborn

      Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

      Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy