1

我是蚂蚁的新手。我正在尝试使用 GoCD 对 index.html 进行简单的部署。基本上我正在尝试将文件从一个文件夹复制到 /var/www/html (这基本上需要 sudo 权限)。这是我的蚂蚁脚本:

<project name="My Project" default="help" basedir=".">
<condition property="rootTasksEnabled">
   <equals arg1="ec2-user" arg2="root" />
</condition>
<target name="copy" description="Copy New Web Page" if="rootTasksEnabled">
    <copy file="/var/lib/go-agent/pipelines/Test-Pipeline/index.html" todir="/var/www/html"/>
</target>
</project>

我正在尝试构建此 build.xml,部署成功,但文件未按脚本复制。

我尝试用以下内容替换复制目标:

<project name="My Project" default="help" basedir=".">
  <condition property="rootTasksEnabled">
     <equals arg1="ec2-user" arg2="root" />
  </condition>
  <copy todir="/var/www/html" flatten="true" if="rootTasksEnabled">
     <resources>
       <file file="/var/lib/go-agent/pipelines/Test-Pipeline/index.html"/>
     </resources>
  </copy>
</project>

这里抛出错误,如“BUILD FAILED /var/lib/go-agent/pipelines/Test-Pipeline/build.xml:5: copy doesn't support the "if" attribute”

有人可以帮助我,因为我没有正确的方向。我想要实现的是将文件复制到具有 sudo 权限的文件夹中。

4

2 回答 2

0

“sudo cp”可以这样实现:

   <exec executable="/usr/bin/sudo">
        <arg value="cp"/>
        <arg value="${name}.war"/>
        <arg value="${deploy.path}"/>
    </exec>

它不是 x 平台/便携式的,但可以为 linux 工作

于 2020-04-22T03:06:25.067 回答
0

如果您查看有关Copy 任务的 Ant 文档,您会注意到在“Parameters”下以及“Attributes”列下,“if”属性在对 Copy 任务的调用中不受支持 - 因此出现错误消息您收到:“BUILD FAILED /var/lib/go-agent/pipelines/Test-Pipeline/build.xml:5:副本不支持“if”属性”。

我可以建议尝试以下方法:

<project name="My Project" default="help" basedir=".">
 <condition property="rootTasksEnabled">
  <equals arg1="ec2-user" arg2="root" />
 </condition>
 <if>
  <isset property="rootTasksEnabled" />
  <then>
   <copy todir="/var/www/html" flatten="true">
    <resources>
     <file file="/var/lib/go-agent/pipelines/Test-Pipeline/index.html"/>
    </resources>
   </copy>
  </then>
 </if>
</project>

代替在对复制任务的调用中嵌入“if”条件(因为它不受支持),另一种方法是利用 if/then 任务。

*注意:这种方法确实需要使用 Ant Contrib

于 2017-06-21T21:56:14.713 回答