bash - “/bin/bash : - : Invalid option” 与 gitlab-CI 和 makefile 与 .ONESHELL
问题描述
我有一个与 gitlab-CI 配合使用的 CI。
我的(YAML gitlab-CI)管道脚本调用生成文件。
Build:
stage: ThisIsAnExample
script:
- export OPTION1=true; make -C build/ myTarget
在我的 makefile 中,我有以下选项 .ONESHELL 选项:
.ONESHELL:
SHELL = /bin/bash
.SHELLFLAGS = -ec -o pipefail
myTarget:
@echo "A";echo ""; print "B\n"; echo "C"; echo "";
这在本地有效,但在 CI 中失败并出现错误/bin/bash: - : invalid option
如果我删除-o pipefail
,错误会在 CI 中修复(但我没有更多的管道故障)。
有什么提示可以让它在 CI 中工作吗?
笔记:
本地控制台的 bash 版本:
GNU bash, version 4.4.20(1)-release (x86_64-pc-linux-gnu)
用于 ci 服务器的 bash 版本:
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
解决方案
推荐阅读
- java - 使用 Opencv4Android 的 AugmentedFace 网格
- gps - 如何下载 GPS 和谷歌地图的完整源代码
- c - 在 C 中打印 UTF-8 多字节字符
- c# - 带有 Timer 的对象没有触发其处理程序,而是关闭了线程
- string - Haskell 中的 Data.Text 常量
- javascript - 使用 javascrip 将响应 XMLHttpRequest 转换为 JSON,但对象为空
- java - jenkins 和 android 名称存档文件名
- node.js - 在 OpenShift 上安装 npm
- mysql - 如何计算“每个 item_id 首次访问和购买之间的平均时间”
- javascript - 如何我可以将字符串数组转换为对象