2016-04-02 91 views
0

我有任務在Ant中運行,我很新,作爲構建事件的CI鏈的一部分。我使用了一個教程來創建測試/ linting/etc等PHP應用程序的文件。螞蟻行內執行參數

在build.xml第一個重要的指令包括:

<property name="phpmd" value="phpmd"/> 
<property name="phpunit" value="phpunit"/> 

這工作正常如,假定phpmd/PHPUnit的是在路徑上,並使用作爲的PHPUnit進一步的例子中,根據運行以下目標:

<target name="phpunit" unless="phpunit.done" depends="prepare" description="Run unit tests with PHPUnit"> 
    <exec executable="${phpunit}" resultproperty="result.phpunit" taskname="phpunit"> 
     <arg value="--configuration"/> 
     <arg path="${basedir}/phpunit.xml"/> 
    </exec> 
    <property name="phpunit.done" value="true"/> 
</target> 

這一切都工作得很好,但是是 - 我想用碼頭工人從現在起,我曾希望只是意味着改變<property name="phpunit" value="phpunit"/><property name="phpunit" value="docker-compose run php phpunit"/>,但這反而給了我以下錯誤:

Execute failed: java.io.IOException: Cannot run program "docker-compose run -w /var/www/src php phpunit" (in directory "/var/lib/jenkins/jobs/Blah blah blah/workspace/src"): error=2, No such file or directory

我知道,你通常會增加額外的<arg/>節點targets-但它是不可能在所有提供初始<property>內聯參數的完整的命令?

螞蟻顯然是抱怨,因爲,以及這些內聯參數,可執行文件不存在。我必須使用arg節點並更新每個目標嗎?


使用docker-compose單獨工作正常,但我需要正確的容器和工作目錄的參數傳遞給適當地嵌入used-,否則我要插入許多ARG節點。

回答

1

最後,我剛剛爲phpunit參數創建了一個property,然後使用<args line="${phpunitArgs}">添加它。

絕對不是理想的,但至少它做它應該的。我當然更喜歡使用Gulp! XML對於構建系統來說是一個糟糕的選擇。