SliTaz GNU/Linux official and community documentation wiki.
.png
This translation is older than the original page and might be outdated. See what has changed.
Translations of this page:

Build Bot

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 bb.slitaz.org. Colaborações podem ser feitas na Tazbb Wiki.

Como funciona

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'.

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.

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.

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.

Comandos

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'.

Repositório Hg e Wok em modo chroot

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.

Arquivos de Log

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.

Interface Web

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.

Hg hook

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:

[hooks]
commit = tazbb cook-commit

Cron Job

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:

*/2 * * * * /usr/bin/tazbb cook-commit
03 02 * * * /usr/bin/tazbb cook-all

Arquivos da base de dados

  • blocked : Lista de pacotes bloqueados.
  • cooklist : Lista de compilação atual ou da próxima compilação.
  • corrupted : Lista de pacotes corrompidos.
  • packaged : Todos os pacotes contidos no wok de compilação.
  • removed : Últimos pacotes removidos.
  • report : Último relatório gerado por check_{wok,commit}.
  • running : Tarefas rodando atualmente.
  • summary : Último resumo gerado para a interface web.
  • unbuilt : Lista de pacotes não compilados.
 
pt/cookbook/buildbot.txt · Last modified: 2010/07/08 17:14 (external edit)