segunda-feira, 9 de
junho de
2008.
|
Ainda sobre o MSBuild, para quem está planejando utilizar integração contínua em seus projetos e utilizará o MSBuild como ferramenta de geração de builds, recomendo dar uma olhada no projeto msbuildtracks, que é um repósitrório open source de tasks para o MSBuild.
Existem tasks bastante úteis, como por exemplo, para o SVN (SvnCheckout, SvnClient, SvnCommit, SvnCopy, SvnInfo, SvnExport, SvnUpdate, SvnVersion) manipulação de arquivos XML (Xml.XmlMassUpdate, Xml.XmlQuery, Xml.XmlQuery, XmlWrite) e etc…
A implementação destas tasks, é feita como falei em Executando Testes com o MSbuild, utilizando o arquivo do projeto.
No caso do Subversion (SVN) segue um exemplo retirado do projeto que mencionei acima
<Target Name="Checkout"> <RemoveDir Directories="$(TestWorkingFolder)" /> <SvnCheckout RepositoryPath="$(TestRepositoryPath)" LocalPath="$(TestWorkingFolder)"> <Output TaskParameter="Revision" PropertyName="Revision" /> </SvnCheckout> <Message Text="Revision: $(Revision)" /> </Target> <Target Name="Update" DependsOnTargets="Checkout"> <Delete Files="$(TestWorkingFolder)\SvnClientTest.cs" /> <SvnUpdate LocalPath="$(TestWorkingFolder)"> <Output TaskParameter="Revision" PropertyName="Revision" /> </SvnUpdate> <Message Text="Revision: $(Revision)" /> </Target> <ItemGroup> <CommitFiles Include="$(TestWorkingFolder)\test.txt" /> <CommitFiles Include="$(TestWorkingFolder)\Blah.txt" /> </ItemGroup> <Target Name="Commit"> <RemoveDir Directories="$(TestWorkingFolder)" /> <SvnCheckout RepositoryPath="$(LocalTestRepositoryPath)" LocalPath="$(TestWorkingFolder)"> <Output TaskParameter="Revision" PropertyName="Revision" /> </SvnCheckout> <Message Text="Checked out revision: $(Revision)" /> <WriteLinesToFile File="%(CommitFiles.FullPath)" Lines="This is a test append." /> <SvnCommit Targets="@(CommitFiles)" Message="Auto commit from MSBuild."> <Output TaskParameter="Revision" PropertyName="Revision" /> </SvnCommit> <Message Text="Committed revision: $(Revision)" /> </Target>
Note as tasks Checkout > Update > Commit que realizam as operações do SVN.
Opine!
(Comente)





