Estou usando o Jenkins para acionar e gerenciar uma série de trabalhos de importação. Quero colocar meu script de importação no Github e, quando o Jenkins criar o trabalho, ele deverá (a) extrair o script controlado por versão do Github e (b) executar o script.
O problema que estou enfrentando é que não sei como referenciar o nome do script para executar no trabalho. Estou assumindo que o código fonte é puxado para o diretório do espaço de trabalho. Essa suposição está correta? (Se ao menos houvesse documentação!)
Aqui está o que eu fiz até agora:
- Instalei o Jenkins (obviamente) no meu Windows Server (não, não tive escolha)
- Criei um repositório na minha conta do github e coloquei meu código nele
- É público em https://github.com/mcholl/SARS-Import/
- Você verá que tenho dois scripts, roottest.py e omniture-video \ test.py. O código que está sob patente da Apple, tenho certeza :)
- A ideia é que eu gostaria de rodar o roottest.py
- Instalou o plug-in Github
- Criou um trabalho da seguinte maneira:
- Nome do Projeto = "Testando a Integração do Github"
- Projeto GitHub: https://github.com/mcholl/SARS-Import.git/
- Adicione um comando em lote do Windows: python roottest.py
- Executar manualmente o trabalho
O que recebo, no entanto, é uma mensagem de erro informando que o arquivo não pode ser localizado. Isso é estranho, porque eu assumo que o fluxo de trabalho seria "puxe uma cópia local da fonte para o diretório ... (Trabalho) / espaço de trabalho /, depois execute o comando em lote no contexto do diretório do espaço de trabalho.
Aqui está a saída completa do console:
Iniciado pelo usuário anônimo Criando na área de trabalho C: \ Arquivos de Programas (x86) \ Jenkins \ jobs \ Testing Github Integration \ workspace [área de trabalho] $ cmd / c, chame C: \ Windows \ TEMP \ hudson1966342425043540895.bat
C: \ Arquivos de programas (x86) \ Jenkins \ jobs \ Testando a integração do Github \ espaço de trabalho> python roottest.py python: não é possível abrir o arquivo 'roottest.py': [Erro 2] Nenhum arquivo ou diretório existe
C: \ Arquivos de programas (x86) \ Jenkins \ jobs \ Testando a integração do Github \ espaço de trabalho> saída 2 Etapa de compilação 'Executar comando em lote do Windows' marcou a compilação como falha Concluído: FAILURE
Obviamente, eu esperava apenas ver os resultados da minha declaração impressa no console.
O que eu errei? E por que meu script já não está lá?
Respostas:
Para minha compilação (em um host Linux), faço algo assim (como uma etapa de compilação no Jenkins) para executar um script de compilação no espaço de trabalho com check-out recente:
Executar comando shell:
Presumo que funcionaria de maneira semelhante no Windows, exceto, é claro, que você usaria \ em vez de / e você está usando python em vez de sh para executar seu script.
fonte
Você pode escrever duas linhas em sua compilação:
fonte
Você pode armazenar algum script no Git, por exemplo, test.sh:
Em seguida, na entrada "Executar shell", coloque a importação desse script e chame "_test_func":
Resultado:
fonte