我有任務在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節點。