Jenkins e perfis de provisionamento

0

Estou tentando configurar meu MAC para se conectar ao Jenkins e estar pronto para construir automaticamente. Consegui criar um serviço que se conecta a Jenkins, mas algo está errado.

Este é o meu arquivo plist:

<key>Label</key>
    <string>com.example.ci</string>
    <key>ProgramArguments</key>
    <array>
        <string>sh</string>
        <string>/Users/Shared/Jenkins/Home/my_scripts/run_jenkins.sh</string>
    </array>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/Users/Shared/Jenkins/Home/stdout.log</string>
    <key>StandardErrorPath</key>
 <string>/Users/Shared/Jenkins/Home/error.log</string>

este é o meu run_jenkins.sh:

cd /Users/Shared/Jenkins/Home/
sudo -u jenkins java -jar slave.jar -jnlpUrl http://secret.mission:8080/computer/ios-slave/slave-agent.jnlp -secret 841557ed7843ac76fe1618e375

PROBLEMA:

 $ /usr/bin/security find-identity -p codesigning -v
     0 valid identities found

isso acontece quando tento construir logo após o start-up. Claro que depois que a compilação falhar.

Quando vou sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist e, em seguida, sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist , o resultado é:

$ /usr/bin/security find-identity -p codesigning -v
  [.. ]
     4 valid identities found

e a compilação é bem-sucedida. Por que esse MAC não consegue encontrar esses perfis quando é executado a partir da inicialização e como corrigir isso?

EDITAR

Eu editei meu arquivo plist:

    <key>UserName</key>
    <string>jenkins</string>
    <key>Label</key>
    <string>com.example.ci</string>
    <key>ProgramArguments</key>
    <array>
        <string>sudo</string>
        <string>-u</string>
        <string>jenkins</string>
        <string>/usr/bin/java</string>
        <string>-Djava.awt.headless=true</string>
        <string>-jar</string>
        <string>/Users/Shared/Jenkins/Home/slave.jar</string>
        <string>-jnlpUrl</string>
        <string>http://secret.mission:8080/computer/ios-slave/slave-agent.jnlp
</string>
        <string>-secret</string>
        <string>841557ed7843ac76fe1618e375
</string>
    </array>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/Users/Shared/Jenkins/Home/stdout.log</string>
    <key>StandardErrorPath</key>
    <string>/Users/Shared/Jenkins/Home/error.log</string>

e ainda a mesma situação ...

    
por mmmm 24.02.2014 / 17:26

2 respostas

0

A solução foi muito simples:

meu arquivo plist estava no diretório / Library / LaunchDaemons /, no qual os arquivos plist são iniciados automaticamente na inicialização do sistema, mas o problema é que o usuário não era adequado, apesar de todas as variáveis nos comandos dentro desse arquivo.

Então, tudo que eu precisava fazer era colocar o arquivo .plist acima na pasta [jenkins home] / Library / LaunchAgents.

AVISO que configurou o jenkins como usuário padrão para efetuar login!

    
por 25.02.2014 / 11:39
0

Esse script exige que as variáveis configuradas no perfil do shell funcionem corretamente?

Eu definitivamente tive problemas com o launchd executando scripts na inicialização que sempre funcionava bem quando eu os executava na linha de comando.

Você poderia tentar incluir o carregamento de seu .bash_profile ou .bashrc (ou ambos, se necessário) na parte superior do script que inicia o slave e ver se isso ajuda.

    
por 24.02.2014 / 18:27