【发布时间】:2018-04-28 15:46:59
【问题描述】:
在 gitlab-ci 作业中,我想创建一个带有作业 ID 的目录(在远程服务器上)并或多或少地执行一些操作,如下所示:
- ssh user@server mkdir -p /user/$CI_JOB_ID
- ssh user@server <perform_some_action_that_creates_several_zip_files>
- LAST_MODIFIED_FILE=$(ssh user@server bash -c 'find /user/$CI_JOB_ID -iname "*.zip" | tail -n 1 | xargs readlink -f')
确实创建了目录,并且创建了多个 zip 的操作也成功了。
但是,我用于获取最后修改/创建的.zip 的最后一个命令不起作用,因为$CI_JOB_ID 似乎没有得到扩展。
有什么建议吗?
【问题讨论】:
-
CI_JOB_ID是远程机器中的环境变量吗? -
不,但这有效:
ssh user@server mkdir -p /tmp/$CI_JOB_ID -
尝试使用双引号代替:
"find /user/$CI_JOB_ID -iname '*.zip' | tail -n 1 | xargs readlink -f"。在这里,单引号可能会阻止$CI_JOB_ID的变量扩展 -
我已经尝试过了...也不行...我还制作了一个本地副本
variables文件,其中包含export CI_JOB_ID=$CI_JOB_ID等条目,将其复制到远程服务器并采购它......也没有运气...... -
想一想,(在获取
variables文件时)变量不可用是有道理的......这些是不同的ssh会话
标签: bash shell gitlab gitlab-ci