如何判断Docker版Python GitHub Action是否启用debug logging运行
判断GitHub Action中的Debug Logging状态
当然可以在你的Docker-based Python GitHub Action中判断是否启用了debug logging,核心方式是利用GitHub自动注入的环境变量,也可以结合自定义输入参数增强灵活性:
1. 利用自动注入的RUNNER_DEBUG环境变量
当用户选择启用debug logging重新运行工作流时,GitHub Actions Runner会自动为所有步骤设置环境变量RUNNER_DEBUG=1。你可以在Python代码中直接读取这个变量来触发详细日志输出:
import os def enable_detailed_logging(): return os.environ.get("RUNNER_DEBUG") == "1" # 使用示例 if enable_detailed_logging(): print("DEBUG: 开始执行数据库连接检查...") print(f"DEBUG: 当前工作目录: {os.getcwd()}") # 加入更多详细的调试逻辑 else: print("INFO: 执行核心任务...")
这个变量是Runner自动注入的,不需要你在action.yml中做任何额外配置,只要用户在重新运行时勾选了debug选项,你的代码就能捕获到。
2. 结合自定义输入参数(可选)
如果想让用户在触发Action时就能手动开启debug模式(无需等到重新运行),可以在action.yml中添加一个可选输入参数:
name: "Your Docker Python Action" inputs: manual_debug: description: "手动启用详细调试日志" required: false default: "false" runs: using: "docker" image: "Dockerfile"
然后在Python代码中同时判断自定义参数和RUNNER_DEBUG,实现双重触发:
import os def is_debug_active(): # 检查手动输入的debug开关 manual_mode = os.environ.get("INPUT_MANUAL_DEBUG", "false").lower() == "true" # 检查Runner自动注入的debug状态 runner_mode = os.environ.get("RUNNER_DEBUG") == "1" return manual_mode or runner_mode if is_debug_active(): print("DEBUG: 调试模式已激活,输出详细日志...") # 执行调试相关操作 else: print("INFO: 常规模式运行...")
注意事项
- 确保你的Docker容器中没有覆盖
RUNNER_DEBUG环境变量,保持Runner注入的值可用。 - 调试日志不要包含敏感信息,避免泄露用户的密钥或私有数据。
内容的提问来源于stack exchange,提问作者pseusys
相关产品推荐
相关产品推荐

