使用 Codeship 的持续部署无法识别环境变量
Continuous Deployment with Codeship doesn't recognize environment variables
最近我开始使用 Codeship 作为我维护的一个小型网站的 CI/CD 工具。我将我的 Codeship 项目设置为通过 sftp 部署为 described in their guide here.
它失败的部分在生产脚本中。我创建了一个 deploy
文件夹和一个 production.sh
脚本,其中包含以下行:
put -rp "${HOME}/clone/build/*" /path/to/remote/dir
然而,当 运行 构建时,我收到以下错误:
sftp> put -rp "${HOME}/clone/build/*" /path/to/remote/dir
stat ${HOME}/clone/build/*: No such file or directory
直接在 Codeship 中的测试脚本中回显 $HOME
为我提供了我的主目录,因此环境变量有效。但是,目前批处理脚本是运行,无法识别环境变量。
我该如何解决这个问题?我宁愿不在我的部署脚本中硬编码路径。这似乎也不太可能发生,因为我在 production.sh
后缀,而在文档中他们只有一个 production
脚本?
由于没有来自 Codeship 的人的回答,我将绝对路径写入 ${HOME}
目录。我已经在几个不同的项目中这样做了一段时间,而且似乎一切正常。
用 ~/clone 替换 ${HOME}/clone
这对我有用
最近我开始使用 Codeship 作为我维护的一个小型网站的 CI/CD 工具。我将我的 Codeship 项目设置为通过 sftp 部署为 described in their guide here.
它失败的部分在生产脚本中。我创建了一个 deploy
文件夹和一个 production.sh
脚本,其中包含以下行:
put -rp "${HOME}/clone/build/*" /path/to/remote/dir
然而,当 运行 构建时,我收到以下错误:
sftp> put -rp "${HOME}/clone/build/*" /path/to/remote/dir
stat ${HOME}/clone/build/*: No such file or directory
直接在 Codeship 中的测试脚本中回显 $HOME
为我提供了我的主目录,因此环境变量有效。但是,目前批处理脚本是运行,无法识别环境变量。
我该如何解决这个问题?我宁愿不在我的部署脚本中硬编码路径。这似乎也不太可能发生,因为我在 production.sh
后缀,而在文档中他们只有一个 production
脚本?
由于没有来自 Codeship 的人的回答,我将绝对路径写入 ${HOME}
目录。我已经在几个不同的项目中这样做了一段时间,而且似乎一切正常。
用 ~/clone 替换 ${HOME}/clone
这对我有用