无法在 CodeBuild 中 运行 bash 编写脚本
Can't run bash script in CodeBuild
我有以下buildspec.yml
version: 0.2
env:
shell: bash
phases:
install:
runtime-versions:
nodejs: 12
commands:
- source cicd/app_cicd.sh
- npm_install
其中cicd/app_cicd.sh
是
#!/bin/bash
function npm_install() {
npm install
}
但是 CodeBuild 输出显示
[Container] 2021/05/23 01:55:32 Phase complete: DOWNLOAD_SOURCE State: SUCCEEDED
[Container] 2021/05/23 01:55:32 Phase context status code: Message:
[Container] 2021/05/23 01:55:33 Entering phase INSTALL
[Container] 2021/05/23 01:55:33 Running command export CICD_ROOT=$(pwd)
[Container] 2021/05/23 01:55:33 Running command source cicd/app_cicd.sh
[Container] 2021/05/23 01:55:33 Running command npm_install
/codebuild/output/tmp/script.sh: line 4: npm_install: command not found
鉴于我已指定在 buildspec.yml
中使用 bash 并且我的 shell 脚本包含一个 shebang,我不确定哪里出了问题。这当然是一个人为的例子
npm_install
必须与您的 source
在同一行,否则它们将完全独立执行。所以你的 source
不会延续到第二个命令。
version: 0.2
env:
shell: bash
phases:
install:
runtime-versions:
nodejs: 12
commands:
- source cicd/app_cicd.sh && npm_install
我有以下buildspec.yml
version: 0.2
env:
shell: bash
phases:
install:
runtime-versions:
nodejs: 12
commands:
- source cicd/app_cicd.sh
- npm_install
其中cicd/app_cicd.sh
是
#!/bin/bash
function npm_install() {
npm install
}
但是 CodeBuild 输出显示
[Container] 2021/05/23 01:55:32 Phase complete: DOWNLOAD_SOURCE State: SUCCEEDED
[Container] 2021/05/23 01:55:32 Phase context status code: Message:
[Container] 2021/05/23 01:55:33 Entering phase INSTALL
[Container] 2021/05/23 01:55:33 Running command export CICD_ROOT=$(pwd)
[Container] 2021/05/23 01:55:33 Running command source cicd/app_cicd.sh
[Container] 2021/05/23 01:55:33 Running command npm_install
/codebuild/output/tmp/script.sh: line 4: npm_install: command not found
鉴于我已指定在 buildspec.yml
中使用 bash 并且我的 shell 脚本包含一个 shebang,我不确定哪里出了问题。这当然是一个人为的例子
npm_install
必须与您的 source
在同一行,否则它们将完全独立执行。所以你的 source
不会延续到第二个命令。
version: 0.2
env:
shell: bash
phases:
install:
runtime-versions:
nodejs: 12
commands:
- source cicd/app_cicd.sh && npm_install