gitlab-ci - 检测脚本是否在 Buildbot 的上下文中运行
问题描述
可以由Buildbot运行的脚本ShellCommand
检测它是否确实在 Buildbot 的上下文中运行(例如,与在 shell 中手动启动相反)?
例如,Buildbot 是否设置了任何环境变量(例如CI_JOB_STAGE
脚本可以检查的 GitLab?
我正在寻找一个便携性良好的解决方案,因此设置一个专有环境变量,例如在某些 Buildbot 构建器级别或检查脚本的父进程并不是我想要的。
解决方案
至少,它可以检测它是在交互式会话中(手动启动时)还是非交互式启动(从脚本或在本例中为buildbox builder)。
在 bash 会话中,$-
将显示为 shell 设置的当前选项。
更改您的工作以包含对脚本的调用:
scriptshell=$- ./myscript.sh
在您的脚本中:
if [[ ${scriptshell} != *i* ]]; then
echo "non-interractive (script)"
else
echo "interractive (manual launch)
fi
推荐阅读
- mysql - 将一列中的多行选择到不同的列中(SQL)
- firebase - 使用 php curl 从 google fcm HTTP v1 api 获取 411 错误响应
- c# - JSON数据转C# Winforms TreeView的一些问题
- linux - 在 fedora 版本 21 上安装 Openssl 1.0.2 失败
- c - Web 项目中 AES 加密密钥的位置
- php - 如何使用 PHP 获取或拆分某些特定的 json 值
- href - 在 a-frame 中为光标侦听器添加延迟
- php - 用php解析文本
- node.js - Node.js - 在 excel 中获取上标和下标
- sql - 根据 sql server 中立即可用的数据填充当前行