gpt4 book ai didi

travis-ci - Travis 部署脚本多行命令

转载 作者:行者123 更新时间:2023-12-02 00:12:40 29 4
gpt4 key购买 nike

我在 Travis 文件中有以下部署脚本并面临多行命令问题。我尝试了很多组合,但找不到合适的解决方案。如果我将它提取到文件并从脚本属性调用它,它可以正常工作,但我们的目标是将所有命令作为多行命令放在脚本属性中。

deploy:
- provider: script
skip_cleanup: true
script: mvn deploy -B -DskipTests -Dbuild.number="$TRAVIS_BUILD_NUMBER"
on:
tags: false
branch: dev

- provider: script
skip_cleanup: true
script:
pip install something &&
another-command &&
yet-another-command &&
docker push "image-name"
on:
tags: false
all_branches: true

错误日志如下:

sh: 1: Syntax error: "&&" unexpected

如果有人知道如何定义多行命令,我将不胜感激。提前致谢。

最佳答案

长见识

从 YAML 的角度来看,您在描述中给出的示例看起来是合法的。请确保您没有空行或注释,这会阻止脚本部分中的内容成为一个字符串

更长的版本

部署中的script 提供程序要求脚本内容是单个字符串。只允许一行,因此您不能使用 YAML 数组。

这与top level script section不同 .顶级 script 部分允许您使用 YAML 数组,这意味着您可以提供多个以 -

开头的单行字符串

话虽如此,任何 YAML 单行(没有行尾)都可以在部署的脚本部分中正确使用。这里有一些例子

script: pip install something &&
another-command &&
yet-another-command &&
docker push "image-name"
# >- to removing the ending new line
script: >-
pip install something &&
another-command &&
yet-another-command &&
docker push "image-name"

下面的示例对于部署的脚本部分无效,但对于顶级脚本部分有效

# Only works in top level script not deploy script
script:
- pip install something && another-command
- yet-another-command
- docker push "image-name"

关于travis-ci - Travis 部署脚本多行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58379500/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com