最近我开始使用 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
回声
$HOME
在 Codeship 中的测试脚本中直接为我提供了我的主目录,因此环境变量可以工作。但是,在运行批处理脚本时,环境变量无法识别。我怎样才能解决这个问题?我宁愿不在我的部署脚本中硬编码路径。这似乎也不可能发生,因为我添加了后缀
production.sh
,而在文档中他们只有 production
脚本?
最佳答案
在 Codeship 的人没有回答的情况下,我导致写了 ${HOME}
的绝对路径。目录。我已经在几个不同的项目中这样做了一段时间,而且一切似乎都奏效了。
关于environment-variables - 使用 Codeship 进行持续部署无法识别环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31849555/