본문 바로가기

ANT/Ivy

[ANT-GIT] ant taks git 설정

3년전에 만들어진 macrodef들이 있었음..

https://github.com/newtriks/Ant-Funk/tree/master/tests


소스 관리를 git으로 하다보니

CI까지는 아니더라도 그냥 주기적으로 소스 내려받고

deploy해주는 shell이 하나 필요했는데.. build-deploy이야 ant의 주무기라쳐도

git하고 연결을 어케해야 하나 싶었는데..

위 예제에 거의 다 되어있어서.. 쉽게(는 아니고.. 좀 헤매다가..) 설정함..


일단 당장 필요한 것은 git pull이라서

아래와 같이 설정.. path는 빠져야 되네..



<macrodef name="git">

                <attribute name = "command" />

                <attribute name = "dir" default = "" />

                <element name = "args" optional = "true" />

                <sequential>

                        <echo file="GIT_COMMAND_LOG" message="git @{command} &#xa;"

                                append="yes" />

                        <exec executable = "git" dir = "@{dir}">

                                <arg value = "@{command}" />

                                <args/>

                        </exec>

                </sequential>

        </macrodef>


        <macrodef name = "git-pull">

                <attribute name = "path" />

                <attribute name = "branch" />

                <attribute name = "head" />

                <sequential>

                        <git command = "pull" >

                                <args>

                                        <arg value = "@{branch}" />

                                        <arg value = "@{head}" />

                                </args>

                        </git>

                </sequential>

        </macrodef>


 <target name="gitpull">

                <git-pull branch="origin" head="+master" />

  </target>


git으로 매크로 설정하고.. 매개변수를 받을 수 있도록 한 후 이걸 이용해서 task까지 만들어내는 예제..

ant gitpull 로 실행해보니 잘 내려받는다.