Kinh Nghiệm về Github action run python script Mới Nhất
Lã Tuấn Dũng đang tìm kiếm từ khóa Github action run python script được Cập Nhật vào lúc : 2022-09-29 12:30:32 . Với phương châm chia sẻ Bí kíp Hướng dẫn trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi Read nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Mình lý giải và hướng dẫn lại nha.Run Python Script Action
Write Python scripts in an Actions workflow file!
Nội dung chính- Run Python Script ActionHandling errorsUtility functionsStop commandsResume commandsCan I run Python script in GitHub actions?How do I run Python code in GitHub?Can I run scripts in GitHub?How do I run an action Pytest in GitHub?
This action lets you define a custom Python script inside the workflow YAML file. Write your Python code as the script argument, and use the YAML multiline string feature to define multiline scripts.
The only requirement is that you set up the Python environment before running the action. Here is an example workflow that prints the repository root directory contents to the Actions logs:
name: Run Script on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/[email protected] - uses: actions/[email protected] - uses: jannekem/[email protected] with: script: | import os print("Directory contents:") for f in os.listdir(): print(f)Handling errors
By default, the action will fail if it encounters any errors when trying to run your script. You can override this with the fail-on-error input.
The action sets three outputs:
- stdout contains any text that your program prints to the consolestderr contains any text that is routed to STDERR, such as exception messageserror is a string with either "true" or "false" depending on if errors were present or not, use this to check for errors when you opt
not to fail the step
Look the following snippet to see how the error handling works in practice:
name: Run Script on: push: jobs: build: runs-on: ubuntu-latest steps: - uses: actions/[email protected] - uses: actions/[email protected] - uses: jannekem/[email protected] id: script with: fail-on-error: false script: | print("Doing something that will fail") a = [] a[10] - name: Print errors if: steps.script.outputs.error == 'true' run: | printenv "SCRIPT_STDOUT" printenv "SCRIPT_STDERR" env: SCRIPT_STDOUT: $ steps.script.outputs.stdout SCRIPT_STDERR: $ steps.script.outputs.stderrUtility functions
The action comes bundled with utilities that you can use to interact with the workflow. If you want to disable these utilities you can set util: false as an input for the step. You can call these functions directly from your script without having to import anything.
Example:
- uses: jannekem/[email protected] with: script: | add_path("/usr/local/test") set_env("HELLO", "WORLD") group("Messages") print("Sending a message") warning("There might be an issue") end_group()Add path
Signature: add_path(path)
Prepend to the system path. The change will affect later steps only.
Get input
Signature: get_input(name)
Returns the value of the given input as a string.
Set output
Signature: set_output(name, value)
Sets an output parameter.
Set env
Signature: set_env(name, value)
Sets an environment variable for use in later steps.
Debug
Signature: debug(message)
Sends a debug message. The message will be visible only when debug logging has been enabled.
Warning
Signature: warning(message)
Sends a warning message that will be highlighted with yellow color in the worklow log.
Error
Signature: error(message)
Sends an error message that will be higlighted with red color in the workflow log.
Group
Signature: group(title)
Creates an expandable group in the workflow log.
End group
Signature: end_group()
Ends a group. All printed lines before calling end_group() belong to the previously defined group.
Add mask
Signature: add_mask(value)
Masks out sensitive data and replaces it with ***. The value can be a string ("my sensitive data"), or it can point to an environment variable ("$DB_PASSWORD").
Stop commands
Signature: stop_commands()
All commands will stop processing. It allows you to log anything without accidentally triggering workflow commands.
Resume commands
Signature: resume_commands()
Resume command processing.
Get state
Signature: get_state(name)
Share environment variables with your workflow's pre: and post: actions. See official documentation for more details.
Save state
Signature: save_state(name, value)
Saves a value as an environment variable with the STATE_ prefix. See official documentation for more details.