slitaz-doc-wiki-data view pages/pt/cookbook/buildbot.txt @ rev 3

Add pages/pt folder.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Feb 26 12:12:42 2011 +0000 (2011-02-26)
parents
children
line source
1 ====== Build Bot ======
3 O objetivo do Tazbb é automatizar, testar e criar relatórios sobre os pacotes gerados no wok. A execução do comando //tazbb usage// mostra uma lista de comandos disponiveis e sua descrição. O status do Build Bot pode ser acompanhado na interface web do Tazbb em [[http://bb.slitaz.org|bb.slitaz.org]]. Colaborações podem ser feitas na [[http://labs.slitaz.org/wiki/distro/Tazbb|Tazbb Wiki]].
5 ===== Como funciona =====
7 O Tazbb pode ser executado por um cron job e checa pelo último commit feito por algum colaborador, gerando então os pacotes modificados. A execução do comando 'tazbb cook-commit' irá gerar novamente os últimos pacotes modificados. Para gerar novamente todos os pacotes marcados como 'missing', 'modified' ou 'unbuilt' deve-se executar o comando 'tazbb cook-all'.
9 A geração de relatórios procura por todas as receitas (receipts) contidas no wok e verifica se um pacote foi gerado, se não o pacote é inserido à lista de compilação. Para os pacotes existentes são comparadas as datas dos arquivos do repositório (o arquivo 'receipt', o diretório 'stuff', por exemplo) com as datas contidas no arquivo do pacote no formato 'pacote.tazpkg', se houver alguma diferença o pacote também é inserido na lista de compilação.
11 O tazbb também verifica o wok contido no ambiente chroot e checa se o pacote já foi compilado (procura pela existência de um diretório 'taz/'). Caso o pacote não tenha sido compilado, é gerado um log e o pacote é adicionado à lista de compilação. Todos os pacotes são compilados por intermédio de um script, os logs de compilação são armazenados em $LOG_DIR e um link é criado para ser inserido na interface web do tazbb, de modo a permitir que os desenvolvedores verifiquem o processo de compilação e corrijam possíveis bugs.
13 Quando executado com a opção 'cook' o tazbb remove pacotes antigo e/ou corrompidos e reconstroi todas as listas de pacotes (por meio do comando 'tazwok genlist --text'). Para funcionar corretamente, tanto o tazwok quanto o tazbb devem ter seus caminhos (path) configurados igualmente. O arquivo de configuração do tazbb encontra-se em ///etc/slitaz/tazbb.conf//.
15 ===== Comandos =====
17 O Tazbb pode ser instalado em sua máquina e executado pela linha de comando - 'tazbb usage' retorna uma lista de funções disponíveis. Pode-se executar o programa de modo a obter diversas informações com a opção '--verbose'.
19 ===== Repositório Hg e Wok em modo chroot =====
21 O Tazbb utiliza 2 woks: um wok do repositório mercurial e um wok para a compilação de pacotes em um ambiente chroot. A cada vez que o tazbb é executado os arquivos do wok contido no repositório são atualizados e copiados para o wok de compilação, o que possibilita manter o wok principal (do repositório) limpo e permite a modificação manual das receitas (arquivos nomeados 'receipts'). Se configurado corretamente, o comando 'tazdev update-wok' atualiza o wok do repositório, copiando os arquivos necessários para tal atualização.
23 ===== Arquivos de Log =====
25 O Tazbb utiliza as ferramentas existentes no sistema SliTaz, como o tazwok para compilar pacotes, porém gera arquivos de log e possui sua própria base de dados contida num arquivo de texto. Estes arquivos podem ser consultados pela interface web e são encontrados em: ///var/log/tazbb//.
27 ===== Interface Web =====
29 O Tazbb mantem logs de todas suas atividades em arquivos de log e num arquivo que tem por função listar pacotes a serem compilados (cooklist). Estes arquivos podem ser consultados por intermédio de uma interface web, permitindo aos desenvolvedores uma visão geral sobre os resultados das últimas compilações. Esta interface é construida com PHP, CSS e suas imagens são instaladas em ///var/lib/tazbb/web//. A instalação do pacote cria um link simbólico em ///var/www/vhosts//, provendo fácil acesso aos arquivos de log por intermédio de um host virtual na máquina local, que podem ser acessados pelo endereço: http://localhost/vhosts/bb.
31 ===== Hg hook =====
33 O Mercurial possui um mecanismo poderoso que executa tarefas automaticamente em resposta a eventos que ocorrem em um repositórios. Estas tarefas automáticas são chamadas de 'hooks'. Utiliza-se esse mecanismo para executar o tazbb a cada vez que um commit é feito no repositórios, bastando apenas adicionas um 'hook' no arquivo de configuração do repositório mercurial (o arquivo //.hgrc//). Exemplo:
35 <code>[hooks]
36 commit = tazbb cook-commit
37 </code>
39 ===== Cron Job =====
41 O Tazbb também pode ser executado por intermédio de um cron job, compilando os pacotes adicionados ou modificados no repositórios em horários pré determinados. Pode-se também atualizar o relatório gerado pelo tazbb ou compilar todos os pacotes contidos no wok. Deve-se tomar o cuidado de deixar um bom espaço de tempo entre as execuções do tazbb, visto que se uma compilação ainda não tiver terminada ou se o tazbb for executado manualmente e aí for rodado um cron job, o comando será terminado pois o arquivo ///var/lock// será travado. Exemplo de um cron job que executa 'tazbb cook commit' a cada duas horas e que compila todos os pacotes do repositório todos os dias à noite:
43 <code>*/2 * * * * /usr/bin/tazbb cook-commit
44 03 02 * * * /usr/bin/tazbb cook-all
45 </code>
47 ===== Arquivos da base de dados =====
49 * //blocked// : Lista de pacotes bloqueados.
50 * //cooklist// : Lista de compilação atual ou da próxima compilação.
51 * //corrupted// : Lista de pacotes corrompidos.
52 * //packaged// : Todos os pacotes contidos no wok de compilação.
53 * //removed// : Últimos pacotes removidos.
54 * //report// : Último relatório gerado por check_{wok,commit}.
55 * //running// : Tarefas rodando atualmente.
56 * //summary// : Último resumo gerado para a interface web.
57 * //unbuilt// : Lista de pacotes não compilados.