feat: add GutHub action outputs
See original GitHub issueDescription
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
wasfalse
than this would be the current version detected. - tag: VCS tag-name was used for the release. if
released
wasfalse
than this would be empty string. - url: Github.com URL for the release. if
released
isfalse
, then this value is empty string - id: Release ID. if
released
isfalse
, then this value isnull
- assets: JSON array containing information about each uploaded asset, in the format given here (minus the uploader field). if
released
isfalse
, 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
isfalse
, then this value is an empty JSON object - upload_url: URL for uploading assets to the release. if
released
isfalse
, 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 withsuccess()
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 an 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 an 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
- outputs can be defined in the https://github.com/relekang/python-semantic-release/blob/master/action.yml
- output can be issued via workflow commands on stdOut - see https://docs.github.com/en/actions/learn-github-actions/workflow-commands-for-github-actions
ala
print('::set-output name=version::1.2.3')
- maybe there is a lib for that, or the santizers can be copied from https://github.com/actions/toolkit/blob/daf8bb00606d37ee2431d9b1596b88513dcf9c59/packages/core/src/command.ts#L80-L94 - output
released
should be booleantrue
/`` so it is usable in expressions Therefore it seams like GithubExpression treats every non-empty string as true and empty string as false. - to print the needed output for “workflow commands” only when run in github-action, the code could check if a certain environment variable is present in github-action only. maybe have an extra log-stream just for “workflow commands” that is dis/enabled based on the env
- detection that rnu in a github action can be done via env vars that are set by github actions anyways: ```/usr/bin/docker run … -e GITHUB_ACTIONS=true -e CI=true …`
Issue Analytics
- State:
- Created 2 years ago
- Comments:7 (2 by maintainers)
Top Results From Across the Web
google-github-actions/release-please-action
Add this Action to an existing workflow or create a new one. ... steps.release.outputs.minor }} || true git push origin :v${{ steps.release.outputs.major ...
Read more >feat: Add outputs.skipped #169 - peaceiris/actions-gh-pages
feat : Add outputs.skipped #169. Draft. peaceiris wants to merge 1 commit into main.
Read more >release-please-action - GitHub Marketplace
Reference Release types supported; new types of releases can be added here ... Outputs. Properties that are available after the action executed.
Read more >[Feature] implement an outputs for matrix compatible jobs #530
Implement a outputs.all_changed_files_json or similar that can be used with toJSON and fromJSON to pass the outputs on to a matrix. Thanks!
Read more >feat(release-please): add support for ocaml (#189) - GitHub
Contribute to google-github-actions/release-please-action development by creating an ... git push origin :v${{ steps.release.outputs.major }} || true.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
This feature request has been labelled as help wanted since there has been no activity in the last 3 weeks. It will not be closed.
This feature request has been labelled as help wanted since there has been no activity in the last 3 weeks. It will not be closed.