Google Cloud Builder中同一构建步骤中的多个命令

Dzh*_*eyt 1 google-cloud-build

我想在Google Cloud Builder环境上运行我们的自动化后端测试套件。但是,自然地,我碰巧需要在Cloud Builder中安装各种依赖项和先决条件,以便我们的最终测试php tests/run运行器()可以运行。

这是我当前的cloudbuild.yaml:

steps:

  - name: 'ubuntu'
    args: ['bash', './scripts/install-prerequisites.sh', '&&', 'composer install -n -q --prefer-dist', '&&', 'php init --overwrite=y', '&&', 'php tests/run']
Run Code Online (Sandbox Code Playgroud)

目前,多个命令的链接不起作用。唯一执行的是bash ./scripts/install-prerequisites.sh零件。如何使所有这些命令按顺序执行?

Gus*_*sch 15

目前我相信您有两种选择来实现这一目标:

  1. 创建一个包含您想要的命令序列的脚本并直接调用该脚本:
# cloudbuild.yaml
steps:
  - name: 'ubuntu'
    args: ['./my-awesome-script.sh']
Run Code Online (Sandbox Code Playgroud)
# cloudbuild.yaml
steps:
  - name: 'ubuntu'
    args: ['./my-awesome-script.sh']
Run Code Online (Sandbox Code Playgroud)
  1. bash -c使用您想要遵循的所有命令调用:
steps:
  - name: 'ubuntu'
    args: ['bash', '-c', './scripts/install-prerequisites.sh && composer install -n -q --prefer-dist && php init --overwrite=y && php tests/run']
Run Code Online (Sandbox Code Playgroud)


小智 5

运行脚本的更具可读性的方法可能是使用Breakout语法(来源:掌握云构建语法

steps:
- name: 'ubuntu'
  entrypoint: 'bash'
  args:
  - '-c'
  - |
    ./scripts/install-prerequisites.sh \
    && composer install -n -q --prefer-dist \
    && php init --overwrite=y \
    && php tests/run

Run Code Online (Sandbox Code Playgroud)

但是,这仅在您的构建步骤映像中安装了适当的deps(php,composer)时才有效。