Usando as funções e permissões no Teamcity, você pode ter um projeto que somente sua implantação equipe tem acesso a. Ele pode ter uma dependência de artefato na compilação principal, e você pode até tê-lo usado "última compilação marcada "para que os desenvolvedores possam controlar o que está disponível.
Eu instalaria um agente de compilação capaz de implantar no (s) sistema (s) de destino e, em seguida, usar o " builds compatíveis " característica desse agente na UI do TeamCity para torná-lo compatível apenas com sua compilação de implantação de produção. (Claro que você também vai querer garantir que seus desenvolvedores não tenham permissões para modificar a configuração do agente.)
Esta é uma desvantagem do Teamcity usando as opções de configuração compatíveis com o Agent: se você deixar o (s) outro (s) agente (s) de compilação compatível com todas as compilações, a implementação de produção poderá ser tentada a partir de uma delas. livre. A única solução que conheço é configurá-los para executar apenas "compilações especificadas" e adicionar todas as outras compilações ao (s) outro (s) agente (s). O problema é que se você adicionar uma nova compilação, ela não poderá ser executada em lugar algum até que você a adicione especificamente como compatível.
Existem outras maneiras de restringir a compilação a ser executada somente em agentes específicos que usam os Requisitos do agente na configuração de compilação.
Um é adicionar um requisito de que teamcity.agent.name
seja igual ao nome do agente no qual deseja que ele seja executado. (ou, inversamente, não é igual ao que você não quer que ele seja executado).
Outra é adicionar um requisito para uma variável de ambiente (existe ou com um valor específico) e, em seguida, definir apenas essa variável de ambiente no (s) agente (s) que você deseja executar essa compilação.
Outra possível solução é ter duas instalações do Teamcity, já que você tem dois conjuntos diferentes de usuários. Você obviamente não pode usar uma dependência de artefato, mas você sempre pode obter os artefatos mais recentes de uma determinada construção usando uma URL como:
* http://teamcity.server/repository/download/bt41/latest.lastSuccessful/setupfile.exe
onde:
-
bt41
é o ID de construção no Teamcity (você pode encontrá-lo no URL quando navega para qualquer construção) -
latest.lastSuccessful
também pode serlastest.lastPinned
, 'latest.lastFinished ou o número de compilação exato -
setupfile.exe
é o arquivo que você deseja extrair da saída de artefatos (isso também pode ser um caminho, se não for publicado no nível superior)