Como posso executar um script Shell em Jenkinsfile?

estou a manter um ficheiro de script shell chamado urltest.sh em /var/lib/jenkins e a executar o ficheiro de jenkins build.

Quando eu executar a construção, ela falha.

The Environment Variables are - 
HOME -          /var/lib/jenkins ;
JENKINS_HOME -  /var/lib/jenkins

a saída da consola é como:

Started by user anonymous
Building in workspace /var/lib/jenkins/workspace/AutoScript
[AutoScript] $ /bin/sh -xe /tmp/hudson2777728063740604479.sh
+ sh urltest.sh
sh: 0: Can't open urltest.sh
Build step 'Execute shell' marked build as failure
Finished: FAILURE

estou confuso onde devo guardar o ficheiro de script da shell para que seja executado.

Author: Heemanshu Bhalla, 2014-01-22

4 answers

Se vires a tua mensagem de erro, ela diz

Edifício no espaço de trabalho / var / lib / jenkins/workspace / AutoScript

E de acordo com os seus comentários, colocou urltest.sh em

/var / lib / jenkins

Por isso o Jenkins não consegue encontrar o ficheiro. Em seu passo de construção fazer esta coisa, ele vai funcionar
cd             # which will point to /var/lib/jenkins
./urltest.sh   # it will run your script

Se ele ainda falhar tente cortar o arquivo como usuário jenkin pode não ter permissão de arquivo, mas eu acho que se você fizer acima passo você será capaz de executar.

 22
Author: Avinash Agrawal, 2016-11-30 12:25:39

Baseado no número de visualizações que esta pergunta tem, parece que muitas pessoas estão visitando isso para ver como configurar um trabalho que executa um script shell.

Estes são os passos para executar um script shell no Jenkins:

  • na página principal do Jenkins seleccione O Novo Item .
  • Indique um nome de item como "a minha tarefa de script da shell"e escolha O projecto estilo livre . Pressione OK .
  • na página de configuração, no Build clique em bloco na lista adicionar um passo de compilação e seleccionar executar a linha de comandos .
  • Na área de texto pode colar um programa ou indicar como executar um programa existente. Então você pode dizer:

    #!/bin/bash
    
    echo "hello, today is $(date)" > /tmp/jenkins_test
    

    Ou apenas

    /path/to/your/script.sh
    
  • Clique Em Salve .

Agora, o novo emprego deve aparecer na página principal do Jenkins, juntamente com os outros. Abra-o e seleccione compilar agora para ver se funciona. Uma vez terminado, escolha isso. compilação específica do histórico de compilação e ler a saída da consola para ver se tudo aconteceu como desejado.

Você pode obter mais detalhes no documento crie uma tarefa de script de Shell Jenkins no GitHub.

 50
Author: fedorqui 'SO stop harming', 2018-11-14 09:38:34

Existe o 'Plugin' de Script gerido que oferece uma forma fácil de gerir scripts de utilizadores. Ele também adiciona uma ação de build step que lhe permite selecionar qual o script de usuário a executar.

 7
Author: Mihai Rotaru, 2014-06-12 18:04:50

As respostas anteriores estão correctas, mas aqui está mais uma forma de fazer isto e algumas dicas:

Opção #1 Ir até você Jenkins job e procurar por "adicionar um passo de compilação" e, em seguida, copiar e colar o seu script lá

Opção #2 Vá para Jenkins e faça o mesmo de novo "adicionar um passo de compilação", mas desta vez coloque o caminho totalmente qualificado para o seu script no exemplo : ./usr/somewhere/helloWorld.sh

enter image description here enter image description here

Coisas a ter em conta / tips:

  • variáveis de ambiente, se o seu trabalho está a correr ao mesmo tempo, então precisa de se preocupar com problemas de concorrência. Um trabalho pode estar definindo o valor das variáveis de ambiente e o próximo pode usar o valor ou tomar alguma ação baseada nisso incorretamente.
  • certifique-se de que todos os caminhos estão totalmente qualificados
  • pense em Registar /var/log ou em algum lugar para que também tenha algo para ir no servidor (opcional)
  • O problema do espaço e ... as permissões, os problemas de ficar sem espaço e as permissões são muito comuns no ambiente linux
  • alerta e certifique-se de que o seu script/trabalho falha nos trabalhos de jenkin quando o seu script falha
 7
Author: grepit, 2018-07-17 17:27:09