website view pt/doc/cookbook/build-bot.html @ rev 551

Fix c6b2d9c4e031, pt: localy browseable (with file://)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Mon Oct 26 10:30:55 2009 +0100 (2009-10-26)
parents c6b2d9c4e031
children
line source
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt">
4 <head>
5 <title>Livro de Receitas do SliTaz - Build Bot</title>
6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
7 <meta name="description" content="slitaz portuguese cookbook" />
8 <meta name="expires" content="never" />
9 <meta name="modified" content="2009-06-20 00:10:00" />
10 <meta name="publisher" content="www.slitaz.org" />
11 <meta name="author" content="SliTaz contributors"/>
12 <link rel="shortcut icon" href="favicon.ico" />
13 <link rel="stylesheet" type="text/css" href="book.css" />
14 </head>
15 <body bgcolor="#ffffff">
17 <!-- Header and quick navigation -->
18 <div id="header">
19 <div align="right" id="quicknav">
20 <a name="top"></a>
21 <a href="boot-scripts.html">Scripts de Inicialização</a> |
22 <a href="index.html">Conteúdo</a>
23 </div>
24 <h1><font color="#3E1220">SliTaz Cookbook (pt)</font></h1>
25 </div>
27 <!-- Content. -->
28 <div id="content">
29 <div class="content-right"></div>
31 <h2><font color="#DF8F06">Build Bot (tazbb)</font></h2>
33 <p>
34 O objetivo do Tazbb é automatizar, testar e criar relatórios sobre os
35 pacotes gerados no wok. A execução do comando <code>tazbb usage</code>
36 mostra uma lista de comandos disponiveis e sua descrição. O status
37 do Build Bot pode ser acompanhado na interface web do Tazbb em
38 <a href="http://bb.slitaz.org/">bb.slitaz.org</a>. Colaborações podem ser
39 feitas na <a href="http://labs.slitaz.org/wiki/distro/Tazbb">Tazbb Wiki</a>.
40 </p>
42 <ul>
43 <li><a href="build-bot.html#about">Como funciona</a></li>
44 <li><a href="build-bot.html#cmds">Comandos</a></li>
45 <li><a href="build-bot.html#woks">Hg e chroot Wok</a></li>
46 <li><a href="build-bot.html#log">Arquivos de Log</a></li>
47 <li><a href="build-bot.html#web">Interface Web</a></li>
48 <li><a href="build-bot.html#hg-hook">Hg hook</a></li>
49 <li><a href="build-bot.html#cron">Cron Job</a></li>
50 <li><a href="build-bot.html#db">Arquivos de banco de dados</a></li>
51 </ul>
53 <a name="about"></a>
54 <h3>Como funciona</h3>
55 <p>
56 O Tazbb pode ser executado por um cron job e checa pelo último commit
57 feito por algum colaborador, gerando então os pacotes modificados. A
58 execução do comando 'tazbb cook-commit' irá gerar novamente os últimos
59 pacotes modificados. Para gerar novamente todos os pacotes marcados como
60 'missing', 'modified' ou 'unbuilt' deve-se executar o comando 'tazbb cook-all'.
61 </p>
62 <p>
63 A geração de relatórios procura por todas as receitas (receipts) contidas no wok
64 e verifica se um pacote foi gerado, se não o pacote é inserido à lista de
65 compilação. Para os pacotes existentes são comparadas as datas dos arquivos
66 do repositório (o arquivo 'receipt', o diretório 'stuff', por exemplo)
67 com as datas contidas no arquivo do pacote no formato 'pacote.tazpkg',
68 se houver alguma diferença o pacote também é inserido na lista de
69 compilação.
70 </p>
71 <p>
72 O tazbb também verifica o wok contido no ambiente chroot e checa se o
73 pacote já foi compilado (procura pela existência de um diretório 'taz/').
74 Caso o pacote não tenha sido compilado, é gerado um log e o pacote é adicionado
75 à lista de compilação. Todos os pacotes são compilados por intermédio de
76 um script, os logs de compilação são armazenados em $LOG_DIR e um link
77 é criado para ser inserido na interface web do tazbb, de modo a permitir
78 que os desenvolvedores verifiquem o processo de compilação e corrijam
79 possíveis bugs.
80 </p>
81 <p>
82 Quando executado com a opção 'cook' o tazbb remove pacotes antigo e/ou
83 corrompidos e reconstroi todas as listas de pacotes (por meio do comando
84 'tazwok genlist --text'). Para funcionar corretamente, tanto o tazwok
85 quanto o tazbb devem ter seus caminhos (path) configurados igualmente.
86 O arquivo de configuração do tazbb encontra-se em
87 <code>/etc/slitaz/tazbb.conf</code>
88 </p>
90 <a name="cmds"></a>
91 <h3>Comandos</h3>
92 <p>
93 O Tazbb pode ser instalado em sua máquina e executado pela linha de
94 comando - 'tazbb usage' retorna uma lista de funções disponíveis. Pode-se
95 executar o programa de modo a obter diversas informações com a opção
96 '--verbose'.
97 </p>
99 <a name="woks"></a>
100 <h3>Repositório Hg e Wok em modo chroot</h3>
101 <p>
102 O Tazbb utiliza 2 woks: um wok do repositório mercurial e um wok para a
103 compilação de pacotes em um ambiente chroot. A cada vez que o tazbb é
104 executado os arquivos do wok contido no repositório são atualizados e
105 copiados para o wok de compilação, o que possibilita manter o wok
106 principal (do repositório) limpo e permite a modificação manual das
107 receitas (arquivos nomeados 'receipts'). Se configurado corretamente, o
108 comando 'tazdev update-wok' atualiza o wok do repositório, copiando os
109 arquivos necessários para tal atualização.
110 </p>
112 <a name="log"></a>
113 <h3>Arquivos de Log</h3>
114 <p>
115 O Tazbb utiliza as ferramentas existentes no sistema SliTaz, como o
116 tazwok para compilar pacotes, porém gera arquivos de log e possui sua
117 própria base de dados contida num arquivo de texto. Estes arquivos podem
118 ser consultados pela interface web e são encontrados em:
119 <code>/var/log/tazbb</code>
120 </p>
122 <a name="web"></a>
123 <h3>Interface Web</h3>
124 <p>
125 O Tazbb mantem logs de todas suas atividades em arquivos de log e num
126 arquivo que tem por função listar pacotes a serem compilados (cooklist).
127 Estes arquivos podem ser consultados por intermédio de uma interface web,
128 permitindo aos desenvolvedores uma visão geral sobre os resultados das
129 últimas compilações. Esta interface é construida com PHP, CSS e suas imagens
130 são instaladas em <code>/var/lib/tazbb/web</code>.
131 A instalação do pacote cria um link simbólico em <code>/var/www/vhosts</code>,
132 provendo fácil acesso aos arquivos de log por intermédio de um host
133 virtual na máquina local, que podem ser acessados pelo endereço:
134 <code>http://localhost/vhosts/bb</code>.
135 </p>
137 <a name="hg-hook"></a>
138 <h3>Hg hook</h3>
139 <p>
140 O Mercurial possui um mecanismo poderoso que executa tarefas automaticamente
141 em resposta a eventos que ocorrem em um repositórios. Estas tarefas
142 automáticas são chamadas de 'hooks'. Utiliza-se esse mecanismo para
143 executar o tazbb a cada vez que um commit é feito no repositórios,
144 bastando apenas adicionas um 'hook' no arquivo de configuração do
145 repositório mercurial (o arquivo .hgrc). Exemplo:
146 </p>
147 <pre class="script">
148 [hooks]
149 commit = tazbb cook-commit
150 </pre>
152 <a name="cron"></a>
153 <h3>Cron Job</h3>
154 <p>
155 O Tazbb também pode ser executado por intermédio de um cron job, compilando
156 os pacotes adicionados ou modificados no repositórios em horários pré
157 determinados. Pode-se também atualizar o relatório gerado pelo tazbb
158 ou compilar todos os pacotes contidos no wok. Deve-se tomar o cuidado
159 de deixar um bom espaço de tempo entre as execuções do tazbb, visto que
160 se uma compilação ainda não tiver terminada ou se o tazbb for executado
161 manualmente e aí for rodado um cron job, o comando será terminado pois
162 o arquivo /var/lock será travado. Exemplo de um cron job que executa
163 'tazbb cook commit' a cada duas horas e que compila todos os pacotes do
164 repositório todos os dias à noite:
165 </p>
166 <pre class="script">
167 */2 * * * * /usr/bin/tazbb cook-commit
168 03 02 * * * /usr/bin/tazbb cook-all
169 </pre>
171 <a name="db"></a>
172 <h3>Arquivos da base de dados</h3>
173 <ul>
174 <li>blocked : Lista de pacotes bloqueados</li>
175 <li>cooklist : Lista de compilação atual ou da próxima compilação</li>
176 <li>corrupted : Lista de pacotes corrompidos</li>
177 <li>packaged : Todos os pacotes contidos no wok de compilação</li>
178 <li>removed : Últimos pacotes removidos</li>
179 <li>report : Último relatório gerado por check_{wok,commit}</li>
180 <li>running : Tarefas rodando atualmente</li>
181 <li>summary : Último resumo gerado para a interface web</li>
182 <li>unbuilt : Lista de pacotes não compilados</li>
183 </ul>
185 <!-- End of content -->
186 </div>
188 <!-- Footer. -->
189 <div id="footer">
190 <div class="footer-right"></div>
191 <a href="build-bot.html#top">Topo da Página</a> |
192 <a href="index.html">Conteúdo</a>
193 </div>
195 <div id="copy">
196 Copyright &copy; 2009 <a href="http://www.slitaz.org/en/">SliTaz</a> -
197 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
198 Documentation is under
199 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
200 and code is <a href="http://validator.w3.org/">valid xHTML 1.0</a>.
201 </div>
203 </body>
204 </html>