- Notifications
You must be signed in to change notification settings - Fork6
Collection of python functions that can be used to run GitHub Action Workflow Commands
License
saadmk11/github-action-utils
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This package is a collection of python functions that can be used to runGitHub Action Workflow Commands from a python script inside an action workflow run.
Python: 3.6, 3.7, 3.8, 3.9, 3.10, 3.11
Installgithub-action-utils
using pip:
pip install github-action-utils
importgithub_action_utilsasgha_utilswithgha_utils.group("My Group"):gha_utils.set_output("test_var","test_value")gha_utils.save_state("state","val")gha_utils.debug("Debug message")gha_utils.warning("Warning message",title="Warning Title",file="example.py",col=1,end_column=2,line=5,end_line=6, )gha_utils.warning("Another warning message")gha_utils.error("Error message",title="Error Title",file="example.py",col=1,end_column=2,line=1,end_line=2, )gha_utils.notice("Another notice message")gha_utils.append_job_summary("# Hello World")gha_utils.append_job_summary("- Point 1")gha_utils.append_job_summary("- Point 2")
name:run-python-scripton:pull_request:branches:[ "main" ]jobs:build:runs-on:ubuntu-lateststeps: -uses:actions/checkout@v3 -name:Set up Python 3.10uses:actions/setup-python@v3with:python-version:"3.10" -name:Install dependenciesrun:python -m pip install github-action-utils -name:Run Python Scriptshell:pythonrun:| import github_action_utils as gha_utils with gha_utils.group("My Group"): gha_utils.error( "Error message", title="Error Title", file="example.py", col=1, end_column=2, line=1, end_line=2, ) gha_utils.notice("Another notice message") gha_utils.append_job_summary("# Hello World")
This section documents all the functions provided bygithub-action-utils
. The functions in the package should be used inside a workflow run.
Note: You can run the commands using python'ssubprocess
module by usinguse_subprocess
function parameter orCOMMANDS_USE_SUBPROCESS
environment variable.
Prints specified message to the action workflow console.
example:
>>fromgithub_action_utilsimportecho>>echo("Hello World")# Output:# Hello World
Prints colorful debug message to the action workflow console.GitHub Actions Docs:debug
example:
>>fromgithub_action_utilsimportdebug>>debug("Hello World")# Output:# ::debug ::Hello World
notice(message, title=None, file=None, col=None, end_column=None, line=None, end_line=None, use_subprocess=False)
Prints colorful notice message to the action workflow console.GitHub Actions Docs:notice
example:
>>fromgithub_action_utilsimportnotice>>notice("test message",title="test title",file="abc.py",col=1,end_column=2,line=4,end_line=5,)# Output:# ::notice title=test title,file=abc.py,col=1,endColumn=2,line=4,endLine=5::test message=
warning(message, title=None, file=None, col=None, end_column=None, line=None, end_line=None, use_subprocess=False)
Prints colorful warning message to the action workflow console.GitHub Actions Docs:warning
example:
>>fromgithub_action_utilsimportwarning>>warning("test message",title="test title",file="abc.py",col=1,end_column=2,line=4,end_line=5,)# Output:# ::warning title=test title,file=abc.py,col=1,endColumn=2,line=4,endLine=5::test message
error(message, title=None, file=None, col=None, end_column=None, line=None, end_line=None, use_subprocess=False)
Prints colorful error message to the action workflow console.GitHub Actions Docs:error
example:
>>fromgithub_action_utilsimporterror>>error("test message",title="test title",file="abc.py",col=1,end_column=2,line=4,end_line=5,)# Output:# ::error title=test title,file=abc.py,col=1,endColumn=2,line=4,endLine=5::test message
Sets a step's output parameter by writing toGITHUB_OUTPUT
environment file. Note that the step will need anid
to be defined to later retrieve the output value.GitHub Actions Docs:set_output
example:
>>fromgithub_action_utilsimportset_output>>set_output("my_output","test value")
Creates an environment variable by writing this to theGITHUB_STATE
environment file which is available to workflow's pre: or post: actions.GitHub Actions Docs:save_state
example:
>>fromgithub_action_utilsimportsave_state>>save_state("my_state","test value")
Gets state environment variable from running workflow.
example:
>>fromgithub_action_utilsimportget_state>>get_state("test_name")# Output:# test_value
Gets user input from running workflow.
example:
>>fromgithub_action_utilsimportget_user_input>>get_user_input("my_input")# Output:# my value
begin_stop_commands(token=None, use_subprocess=False)
andend_stop_commands(token, use_subprocess=False)
Stops processing any workflow commands. This special command allows you to log anything without accidentally running a workflow command.GitHub Actions Docs:stop_commands
example:
>>fromgithub_action_utilsimportecho,begin_stop_commands,end_stop_commands,stop_commands>>begin_stop_commands(token="my_token")>>echo("Hello World")>>end_stop_commands("my_token")# Output:# ::stop-commands ::my_token# Hello World# ::my_token::# ====================# Using Stop Commands Context Manager# ====================>>withstop_commands(token="my_token"):...echo("Hello World")# Output:# ::stop-commands ::my_token# Hello World# ::my_token::
Creates an expandable group in the workflow log.GitHub Actions Docs:group
example:
>>fromgithub_action_utilsimportecho,start_group,end_group,group>>start_group("My Group Title")>>echo("Hello World")>>end_group()# Output:# ::group ::My Group Title# Hello World# ::endgroup::# ====================# Using Group Context Manager# ====================>>withgroup("My Group Title"):...echo("Hello World")# Output:# ::group ::My Group Title# Hello World# ::endgroup::
Masking a value prevents a string or variable from being printed in the workflow console.GitHub Actions Docs:add_mask
example:
>>fromgithub_action_utilsimportadd_mask>>add_mask("test value")# Output:# ::add-mask ::test value
Creates an environment variable by writing this to theGITHUB_ENV
environment file which is available to any subsequent steps in a workflow job.GitHub Actions Docs:set_env
example:
>>fromgithub_action_utilsimportset_env>>set_env("my_env","test value")
Gets all environment variables from theGITHUB_ENV
environment file which is available to the workflow.GitHub Actions Docs:set_env
example:
>>fromgithub_action_utilsimportget_workflow_environment_variables>>get_workflow_environment_variables()# Output:# {"my_env": "test value"}
Gets all environment variables fromos.environ
or theGITHUB_ENV
environment file which is available to the workflow.This can also be used to getenvironment variables set by GitHub Actions.GitHub Actions Docs:set_env
example:
>>fromgithub_action_utilsimportget_env>>get_env("my_env")>>get_env("GITHUB_API_URL")# Output:# test value# https://api.github.com
Sets some custom Markdown for each job so that it will be displayed on the summary page of a workflow run.GitHub Actions Docs:append_job_summary
example:
>>fromgithub_action_utilsimportappend_job_summary>>append_job_summary("# test summary")
Clears all content for the current step, and adds new job summary.GitHub Actions Docs:overwrite_job_summary
example:
>>fromgithub_action_utilsimportoverwrite_job_summary>>overwrite_job_summary("# test summary")
completely removes job summary for the current step.GitHub Actions Docs:remove_job_summary
example:
>>fromgithub_action_utilsimportremove_job_summary>>remove_job_summary()
Prepends a directory to the system PATH variable (GITHUB_PATH
) and automatically makes it available to all subsequent actions in the current job.GitHub Actions Docs:add_system_path
example:
>>fromgithub_action_utilsimportadd_system_path>>add_system_path("var/path/to/file")
Get GitHub Event payload that triggered the workflow.
More details:GitHub Actions Event Payload
example:
>>fromgithub_action_utilsimportevent_payload>>event_payload()# Output:# {"action": "opened", "number": 1, "pull_request": {"url": "https://api.github.com/repos/octocat/Hello-World/pulls/1"}, "repository": {"url": "https://api.github.com/repos/octocat/Hello-World"}, "sender": {"login": "octocat"}...}
The code in this project is released under theMIT License.
About
Collection of python functions that can be used to run GitHub Action Workflow Commands
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors3
Uh oh!
There was an error while loading.Please reload this page.