Pergunta

Nós começamos usando CC.NET para integração contínua e como o número de projetos monitorados acumula gostaria configure os alertas de e-mail através de um único arquivo de configuração.

O que quero dizer com isto é que eu gostaria de ter uma lista de usuários em diferentes grupos em um único arquivo de configuração que é referenciada por todos os arquivos de configuração do projeto:

<user name="user1" group="buildmasters" address="user1@company.com"/>
<user name="user2" group="internalapplications" address="user2@company.com"/>
<user name="user3" group="internalapplications" address="user3@company.com"/>
<user name="user4" group="externalapplications" address="user4@company.com"/>
<user name="user5" group="externalapplications" address="user5@company.com"/>

Em seguida, o arquivo de configuração do projeto irá referenciar o grupo correto:

<group name="internalapplications" notification="change"/>

Assim, para os diferentes projetos que são aplicações internas eu importar o arquivo de configuração única, em seguida, defina o grupo de aplicações interno. Eu também gostaria de adicionar buildmasters de tudo para que agora eu possa manter o controle de pessoas se eles estão tendo problemas.

Isto significaria que eu gostaria de ter um usuário em dois ou mais grupos, por exemplo, mas eu não sei se é possível:

<user name="user1" group="buildmaster, externalapplications" address="user1@company.com"/>

Eu estive trabalhando sob a suposição de que um dia eu poderia configurar isso e ter apenas um único arquivo com todos os endereços a usuários de email em, mas hoje eu fui para fazê-lo e eu não tenho certeza se ele funciona como isso.

Alguém pode descrever como eles têm abordado este?

Foi útil?

Solução

O que você quer fazer é usar CC.Net Configuração Preprocessor

Eu fiz uma email.config

<cb:define name="email-template" xmlns:cb="urn:ccnet.config.builder">
    <email from="buildadmin@server.com" mailhost="server" includeDetails="TRUE"
         mailhostUsername="buildadmin" mailhostPassword="pass">
      <users>
        <user name="dev" group="dev" address="dev@server.com"/>

      </users>
      <groups>
        <group name="buildmaster" notification="always"/>
        <group name="developers" notification="always"/>
      </groups>

    </email>
</cb:define>

e incluiu-se necessário ...

<cruisecontrol xmlns:cb="urn:ccnet.config.builder">

    <cb:include href="C:\email.config" />

<project name="MyProject" queue="Build" queuePriority="1" >

    <cb:email-template >

    </cb:email-template>

</project>

<project name="MyProject2" queue="Build" queuePriority="1" >

    <cb:email-template >

    </cb:email-template>

</project>

</cruisecontrol>

Outras dicas

Que tal tomar uma abordagem um pouco diferente.

Gerenciar os grupos através de seu servidor de e-mail e enviar e-mails para o alias do grupo.

Dessa forma, é trivial para ter os mesmos usuários em diferentes grupos, e você não precisa mudar seus arquivos de configuração, se alterada a associação do grupo.

Fazer isso com o Exchange é muito fácil, não sei sobre outros sistemas de e-mail.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top