Usando SVN com CruiseControl?
-
03-07-2019 - |
Pergunta
Eu estou tentando usar CruiseControl 2.7.3 , (o original), para construir um projeto Java que está em um repositório SVN.
A minha configuração de cruzeiro está usando o SVN plug-in para o conjunto de modificação. Quando uma modificação é detectada, uma compilação está programado usando Ant. Esse arquivo de construção Ant, em seguida, usa o svnant Ant tarefas para fazer uma checagem completa do projeto. Por um tempo, tivemos este conjunto apenas para check-out "cabeça", mas nós tivemos casos em que a construção não dispara para um check-in ou dois, porque o check-in ocorreu após a verificação de modificação set, mas antes da chamada formiga svn checkout. Como resultado, estamos a tentar alterar o arquivo de construção Ant para usar o número de revisão que os recupera de verificação modificação.
A página CruiseControl configuração de referência alegações de que uma propriedade, svnrevision , é definir e passado para os construtores, assim como a propriedade label é pela labelincrementers . Parece não ser definido quando eu pressionar o força de construção botão.
Existe Eu preciso de algo para fazer para fazer este movimento?
Solução
Olhando para o código para o controle de origem SVN parece que svnrevision devem ser repassados ??para o construtor e, assim, ao longo de sua invocação Ant. Você já tentou usar a propriedade do seu script Ant?
Em resposta à pergunta no comentário:
Isso porque, no caso de força de construção não houve modificação, então não há nenhum número de modificação de revisão. Nesse caso, o svnlabelincrementer vai passar o número revisão mais recente para o que você tem localmente, que também será o mais tardar.
Outras dicas
A formiga invocação cruisecontrol tem nada a ver com a etiqueta (SVN) que é construído como tal. O rótulo SVN é usado para anotar os acúmulos de nomes enquanto o build.log é realmente apenas a saída de formiga como ele é passado através cruisecontrol.
Se você gostaria de ter o número de revisão escrito na saída de construção Ant, existem basicamente duas formas:
Uma maneira é ter interagem formiga com svn de alguma forma. Svn em formiga só está disponível através de uma contrib formiga tarefa de tigris, por isso não é trivial para colocar em seu arquivo de formiga. Mas com isso em sua construção, você poderia fazer um svn info e obter o número de revisão como propriedades de formigas à sua disposição.
Outra maneira é usar o svnlabelincrementer para atribuir o número de revisão para o rótulo, e passar essa para o script ant usando o buildproperties que são passados ??de cruisecontrol para os scripts de construção. Como Jay mencionado nos comentários, o rótulo contém apenas a última revisão que criar com sucesso, o que não é o que ele quer. Uma correção foi proposto na neste blog , mas fazer o trabalho no arquivo de construção ant parece mais adequado.
Você pode usar a configuração quietperiod? Depois de um commit, CruiseControl pode esperar por algum período de tempo (digamos, 30 segundos) antes de dar início a uma compilação.
Não vai disparar indivíduo constrói para cada commit. Em vez disso, commits ao redor do mesmo tempo, vai lançar uma única construção.