O Build Forge usa um conjunto simples de objetos para construir descrições de automação de processo.
Esta seção fornece uma visão geral dos principais conceitos e objetos e como eles estão relacionados. Links para explicações mais detalhadas são incluídos para fins de comodidade.
Usuários e Funções
Para acessar o Build Forge, os usuários
precisam ter um objeto de usuário configurado para eles. Nos sistemas de produção, isso é executado configurando o Build Forge para acessar um sistema de gerenciamento de identidade, LDAP.
O Build Forge usa um sistema de autorização para controlar o acesso de usuário a todos os objetos. Os objetos Grupo de Acesso contêm listas de permissões. Um usuário pertence a um ou mais grupos de acesso.
Você pode criar seus próprios grupos de acesso ou modificar aqueles fornecidos. Os grupos de acesso definidos no sistema são:
- Engenheiro de Construção - define processos (cria projetos e etapas)
- Gerenciador do Sistema - administra servidores e outros recursos em todo o sistema
- Segurança - administra usuários, acesso e segurança
- Desenvolvedor - ajuda a desenvolver processos, executa tarefa, visualiza resultados
- Operador - copia projetos, executa tarefa, visualiza resultados
- Convidado - copia projetos, executa tarefa, visualiza resultados
Servidores
Um objeto do servidor define um local onde os projetos e as etapas podem ser executados. Os projetos e as etapas podem usar o mesmo servidor ou selecionar um independentemente.
Os objetos do servidor representam hosts em que o trabalho é executado. O host deve estar
executando um agente do Build Forge para receber o trabalho do sistema e
retornar resultados.
Outros objetos estão relacionados a servidores e precisam ser configurados antes de definir projetos e etapas:
- Autenticações de Servidor: uma autenticação de servidor armazena informações de login para o servidor usar para acessar o host especificado pelo servidor. Uma autenticação de servidor deve ser criada antes de criar o servidor que a usa. Na definição do servidor, você escolhe a autenticação de servidor na lista de todas as autenticações de servidor definidas no sistema.
- Coletores: um objeto de coletor reúne as propriedades especificadas de um servidor. Os dados são armazenados em um manifesto. Os servidores têm um conjunto padrão de propriedades designado. Essas propriedades integradas incluem informações sobre a arquitetura do host, as conexões de rede e os recursos (CPU, memória, carregamento). É possível incluir outras propriedades definindo objetos de coletor. Um coletor deve ser criado antes de incluí-lo no servidor.
Na definição do servidor, você escolhe o coletor na lista de todos os coletores definidos no sistema.
- Seletores: um objeto de seletor define como um servidor é selecionado para ser usado por um projeto ou uma etapa. Um seletor deve ser criado antes de incluí-lo no projeto que o usará. Na definição de projeto, você escolhe o seletor na lista de todos os seletores definidos no sistema.
- Ambientes: um objeto de ambiente é um conjunto de variáveis que podem ser usadas por uma etapa. Durante uma tarefa, as variáveis são configuradas no host do servidor antes da etapa ser executada. Os ambientes podem ser associados a objetos do servidor, objetos do projeto e objetos de etapa.
Quando a mesma variável está configurada para diferentes valores em ambientes diferentes, um esquema de herança determina que valor é usado. Um ambiente deve ser criado antes de incluí-lo em um servidor, um projeto ou uma etapa. Nessas definições de objeto, você escolhe o ambiente na lista de todos os ambientes definidos no sistema.
Ambientes
Um ambiente é um conjunto de variáveis. Os ambientes podem ser especificados para os objetos de servidor, de projeto e de etapa. Quando uma etapa é executada, os ambientes configurados em cada um desses
objetos são combinados para fornecer variáveis para a etapa a ser usada. Consulte o Sobre Ambientes.
Variáveis podem ser alteradas à medida que uma etapa é executada. (Consulte Alterando Valores de Variáveis Durante a Execução da Etapa.) O escopo da mudança pode ser local para a etapa, local para o projeto ou permanente (a variável é alterada no ambiente armazenado).
As variáveis do sistema predefinidas estão disponíveis, assim como as variáveis que você define.
Projetos
Um projeto define o trabalho a ser executado em um processo. Quando um projeto é iniciado, ele é executado como uma tarefa.
O trabalho a ser executado está contido na lista de etapas.
Outros objetos estão relacionados a projetos:
- Seletores: um seletor determina onde o projeto será iniciado. Se um seletor não for especificado para o projeto, ele não poderá ser executado independentemente e será chamado de biblioteca. O seletor já deverá estar definido
para que seja designado a uma tarefa.
- Ambientes: um objeto de ambiente é um conjunto de variáveis que podem ser usadas por uma etapa. Durante uma tarefa, as variáveis são configuradas no host do servidor antes da etapa ser executada. Os ambientes podem ser associados a objetos do servidor, objetos do projeto e objetos de etapa.
Um esquema de herança determina os valores que serão usados se a mesma variável estiver configurada para valores diferentes. Um ambiente deve ser criado antes de criar o servidor, o projeto ou a etapa que o usa. Nessas definições de objeto, você escolhe o ambiente na lista de todos os ambientes definidos no sistema.
- Modelos de notificação: um modelo de notificação define como enviar notificações sobre atividade da tarefa (início da tarefa, aprovação da tarefa, falha da tarefa, outros). Um objeto de notificação define quem notificar por meio dos grupos de acesso. Você especifica o local do seu servidor SMTP em uma configuração do sistema.
- Classes: um objeto de classe é usado para agrupar projetos para fins de manutenção. Geralmente, as classes são usadas para limpar ou arquivar tarefas concluídas periodicamente. Todas as tarefas que foram executadas usando o projeto são afetadas pela classe.
- Adaptadores: um adaptador define uma integração com um sistema externo, geralmente, um sistema de gerenciamento de código de origem.
Vários modelos de amostra são fornecidos como um ponto de início. É necessário configurá-los posteriormente para gerenciar a conexão e executar as ações especificadas no sistema.
- Links de Adaptadores: um link de adaptador define o relacionamento entre um adaptador e o projeto que o usa.
Etapas
Uma etapa define a menor unidade de trabalho a ser executada. (Consulte Sobre Etapas.) Seu componente-chave é sua propriedade Comando, que inclui um comando a ser executado no servidor selecionado.
A propriedade Comando também pode ser usada para executar comandos dot.
Comandos dot são comandos que executam no mecanismo do processo e fornecem funcionalidade adicional.
Outros objetos estão relacionados a projetos:
- Seletores: uma etapa pode ter seu próprio seletor.
Se não for especificado, ela usará o seletor de seu projeto.
- Ambientes: uma etapa pode ter seu próprio ambiente.
Os ambientes fornecidos pelo servidor, pelo projeto e pela etapa são combinados. Por padrão, eles são aplicados nessa ordem, de forma que todas as variáveis definidas pelo ambiente da etapa tenha precedência sobre as definições da mesma variável. A precedência pode ser controlada nas configurações do sistema.
- Filtros de Log: um filtro de log pode ser designado a uma etapa em sua propriedade Resultado. Um objeto de filtro de log é usado para especificar condições que indicam se a etapa é aprovada ou reprovada.
Você usa expressões Perl para varrer o log de um padrão específico.
Normalmente, o status de saída do comando é usado, mas os filtros de log fornecem um meio alternativo. Um filtro de log deve ser criado antes de ser especificado em uma etapa. Na propriedade Resultado da etapa, você escolhe o filtro de log na lista de todos os filtros de log definidos no sistema.
- Modelos de notificação: um modelo de notificação define como enviar notificações sobre atividade da etapa (início da etapa, aprovação da etapa, falha da etapa, outros). Um objeto de notificação define quem notificar por meio dos grupos de acesso. Você especifica o local do seu servidor SMTP em uma configuração do sistema.
- Build Catalyst: uma etapa pode executar o rafmake, o principal utilitário no Build
Catalyst. O Build Catalyst fornece os meios para acelerar construções baseadas em make. O Build Catalyst deve ser instalado no mesmo host em que as construções make são executadas, além de um agente Build Forge.
Tarefas
Uma tarefa é um projeto em execução. Quando a tarefa é iniciada,
o mecanismo de processo a enfileira e, em seguida, a executa. É possível verificar o seu status no Tarefas. Quando ela é concluída, as seguintes informações ficam disponíveis:
- Resultados: é possível revisar os resultados de todas as etapas abrindo a tarefa. Também é possível abrir uma tarefa em execução para monitorar o seu progresso.
- Log de Etapas: o log de etapas registra informações extensivas sobre como uma etapa foi executada, incluindo informações sobre as configurações de manifesto e ambiente, bem como os resultados da execução. Clique no link de resultados da etapa na página Resultados para visualizar o log.
- Lista de Materiais: a Lista de
Materiais (BOM) contém informações sobre etapas da tarefa e manifestos
da etapa. É possível usar o comando dot .bom para formatar informações adicionais referentes à BOM e gravar dados nele. É possível usar o comando dot .scan para incluir linhas de base e pontos de verificação na BOM.
É possível cancelar e reiniciar tarefas. É possível incluir projetos no Planejamento para que sejam executados nos horários planejados.