Onde e como o Hudson / Jenkins armazena dados?

18

Instalei o Jenkins no Ubuntu 10.10 e não encontrei nenhuma menção à configuração do banco de dados para persistência de dados.

Portanto, a primeira pergunta é onde os dados são armazenados e, em segundo lugar, podemos configurar o Hudson / Jenkins com o mySQL? ou bancos de dados semelhantes?

Kamal
fonte
Em um sistema de arquivos, normalmente, algo como /var/lib/jenkins/, /var/jenkins_home/ou /home/jenkins/.
Ondra Žižka

Respostas:

11

Hudson / Jenkins não funciona dessa maneira. Ele armazena configurações e informações de trabalho /var/lib/jenkinspor padrão (se você estiver usando o pacote .deb). Se você deseja configurar a persistência para um aplicativo específico, é algo que você deseja cuidar - o Hudson é um servidor de integração contínua, não uma estrutura de teste.

Confira o artigo da Wiki sobre Integração Contínua para obter uma visão geral do que esperar.

Andrew M.
fonte
2
@ Redmumba eu entendo que é um servidor CI, mas eu estava apenas analisando a possibilidade de ele ser usado para conduzir testes de unidade e persistir os resultados em um banco de dados em vez de arquivos flar. Como o Jenkins PODE ser usado para conduzir e exibir testes. Alguma ideia?
kamal
Uma compilação é muito mais que uma compilação (ou suas variações dinâmicas de linguagem). Uma compilação pode consistir na compilação, teste, inspeção e implantação - entre outras coisas. Uma compilação atua como o processo para reunir o código-fonte e verificar se o software funciona como uma unidade coesa.
Kamal
1
Como eu disse, Jenkins é apenas um servidor de IC - não é uma estrutura. Para todos os efeitos, Jenkins está apenas executando scripts que você especificar - não se preocupa com armazenamento persistente, os idiomas que você usa ou mesmo o que está fazendo. Isso é onde eu acho que a desconexão é - não Jenkins não fornece armazenamento persistente para a sua aplicação, etc ..
Andrew M.
1
ref: do livro "Integração Contínua: Muitos consideram o IC sem teste automatizado e contínuo não como CI. Não podíamos concordar mais. Sem testes automatizados, é difícil para os desenvolvedores ou outras partes interessadas no projeto confiar nas alterações de software. os desenvolvedores de projetos que usam um sistema de IC usam ferramentas de teste de unidade como JUnit, NUnit ou outras estruturas xUnit para executar testes.Além disso, você pode executar diferentes categorias de testes de um sistema de IC para acelerar suas compilações. unidade, componente, sistema de carga / desempenho, segurança e outros.
Kamal
1
Certo; então estamos na mesma página. Jenkins executa essas coisas - ele não gerencia camadas de persistência, estruturas de teste, ferramentas de construção (exceto ant), etc. Você precisará criar sua camada de persistência e testes separadamente. Jenkins pode representar graficamente unittests se forem gerados no formato xunit, algo que as estruturas de teste Java fornecem; muitas outras linguagens (como o nariz do Python) também serão exibidas nesse formato.
Andrew M.
6

O Jenkins pode parecer que está armazenando dados, com base no que seus scripts estão fazendo e como.

Como um exemplo; os scripts que executam suas compilações de confirmação diária podem ser configurados para entregar os resultados de "aprovação / reprovação" ao Jenkins para armazenar em um arquivo XML. Então, se você estiver interessado em obter os resultados históricos de "aprovação / reprovação" e usá-los em outro lugar que não a GUI do Jenkins, poderá fazer uma chamada para a API do Jenkins e obter um retorno desse XML. Analise-o e você terá os dados necessários.

Mas - além de fazer isso, o Jenkins não possui um sistema de repositório por si só.

Além disso, a seguir estão as informações da API do jenkins: https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API

Entalhe
fonte
2

A resposta é que Jenkins não configurará isso para você. Você precisa dizer como configurar o ambiente e como executar seus testes. Isso normalmente é feito na seção de etapas de construção. Se você fornecer mais informações sobre qual plataforma as está usando, talvez possamos fornecer uma resposta mais concreta. Você pode ter um script de shell que instalará seu aplicativo e executará seus testes, e então o chamará de hudson. Tornar o executor de teste a saída de dados de uma maneira amigável para hudson para finalmente obter os resultados de seus testes na webUI para visualizá-los.

Jorge Vargas
fonte
2

Ele armazena dados em seu diretório pessoal em um .jenkinsdiretório. Você pode encontrar todas as informações relevantes relacionadas às suas construções neste diretório.

O Jenkins não fornece suporte de compilação para conectar-se a qualquer banco de dados.

user257831
fonte