Enviar e-mail Configuração do grupo em CC.NET usando um único arquivo de configuração
-
05-07-2019 - |
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?
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.