首页 > 解决方案 > 如何将 Github Actions 用户输入传递给 python 脚本

问题描述

我正在尝试将用户输入从 Github Action 传递给 python 脚本,但我似乎无法让它正常工作。

这是我的 yml:

name: Test Python Input
on:
  workflow_dispatch:
    inputs:
      myInput:
        description: 'User Input Here'
        required: true

jobs:
  run-python-test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2.3.4
      - name: Setup Python
        uses: actions/setup-python@v2.2.2
        with:
          python-version: 3.8
      - name: Execute Test Script
        run: |
          echo "Store: ${{ github.event.inputs.myInput }}"
          INPUT_STORE=${{ github.event.inputs.myInput }} python3 test.py

这是我的test.py:

import os
inputvariable = os.environ['INPUT_MYINPUT']
print(inputvariable)
print('Hello World!')

我在这里做错了什么,如何让 Python 打印出用户输入变量?

标签: pythongithub-actions

解决方案


出现问题是因为您在工作流程中设置变量并在 python 脚本中INPUT_STORE提取。INPUT_MYINPUT使用相同的变量,它应该可以工作。

我让它像这样工作:

工作流文件:

name: Test Python Input

on:
   workflow_dispatch:
     inputs:
       myInput:
         description: 'User Input:'
         required: true
         default: "Hello World"

jobs:
  run-python-test:
   runs-on: ubuntu-latest
    steps:
  
  - name: Checkout
    uses: actions/checkout@v2.3.4
  
  - name: Setup Python
    uses: actions/setup-python@v2.2.2
    with:
      python-version: 3.8
  
  - name: Execute Test Script
    run: |
      echo "Store: ${{ github.event.inputs.myInput }}"
      INPUT_STORE=${{ github.event.inputs.myInput }} python3 test.py

test.py文件:

import os

input_variable = os.environ['INPUT_STORE']

print("Input Variable:", input_variable)

结果Test用作输入:

在此处输入图像描述


推荐阅读