Como posso fazer com que Jenkins execute um script que ele extraiu do Git?

9

Estou usando o Jenkins para acionar e gerenciar uma série de tarefas de importação. Eu quero colocar o meu script de importação no Github, e quando Jenkins constrói o trabalho, ele deve (a) extrair esse script de versão controlada do Github e (b) executar o script.

O problema que estou correndo é que eu não sei como fazer referência ao nome do script para ser executado dentro do trabalho. Estou assumindo que o código-fonte é puxado para o diretório da área de trabalho. Essa suposição é correta? (Se ao menos houvesse documentação!)

Veja o que eu fiz até agora:

  1. Jenkins instalado (obviamente) no meu Windows Server (não, eu não tive escolha sobre isso)
  2. Criei um repositório na minha conta do github e coloquei meu código nele
    • É público no link
    • Você verá que eu tenho dois scripts, roottest.py e omniture-video \ test.py. O código lá está sob patente da Apple, tenho certeza:)
    • A ideia é que eu queira rodar o roottest.py
  3. Instalou o plug-in do Github
  4. Criou um trabalho da seguinte forma:
    • Nome do projeto="Testando a integração do Github"
    • Projeto do GitHub: link
    • Adicione um comando em lote do Windows: python roottest.py
  5. Executar manualmente o trabalho

O que eu recebo, no entanto, é uma mensagem de erro que o arquivo não pode ser localizado. Isso é estranho, porque suponho que o fluxo de trabalho seria "extrair uma cópia local da origem para o diretório ... (Job) / workspace / e executar o comando batch no contexto do diretório da área de trabalho.

Aqui está a saída completa do console:

Started by user anonymous Building in workspace C:\Program Files (x86)\Jenkins\jobs\Testing Github Integration\workspace [workspace] $ cmd /c call C:\Windows\TEMP\hudson1966342425043540895.bat

C:\Program Files (x86)\Jenkins\jobs\Testing Github Integration\workspace>python roottest.py python: can't open file 'roottest.py': [Errno 2] No such file or directory

C:\Program Files (x86)\Jenkins\jobs\Testing Github Integration\workspace>exit 2 Build step 'Execute Windows batch command' marked build as failure Finished: FAILURE

Obviamente, eu esperava ver apenas os resultados da minha declaração impressa no console.

O que eu baguncei? E por que meu script não está lá?

    
por Affable Geek 13.08.2013 / 19:09

3 respostas

5

Para minha compilação (em um host Linux), eu faço algo assim (como uma etapa de compilação no Jenkins) para executar um script de compilação a partir do espaço de trabalho recém-verificado:

Executar shell   Comando:

 sh -x $WORKSPACE/build/myproject.build

Eu presumo que funcionaria de forma semelhante no Windows, exceto, é claro, que você usaria \ em vez de / e você está usando python em vez de sh para executar seu script.

    
por 13.08.2013 / 22:39
2

Você pode escrever duas linhas em sua compilação:

chmod 777 ./my_script.sh
./my_script.sh
    
por 30.10.2015 / 14:58
0

Você pode armazenar alguns scripts no Git, por exemplo test.sh:

#!/bin/bash
_test_func(){ 
 echo 'test'
}

Em seguida, na entrada "Execute shell", coloque a importação desse script e chame "_test_func":

source test.sh
_test_func

Resultado:

 + source test.sh
 + _test_func
 test
    
por 06.07.2016 / 16:45