J'utilise le plugin Jenkins Pipeline pour exécuter un pipeline iOS Checkout-Build-Test-Deploy.
Une étape consiste à vérifier si un iDevice est réellement connecté (sinon les autres étapes ne seront pas exécutées).
Je veux exécuter une commande Shell idevice_id -l
(de libimobiledevice ) qui imprimera l'ID de périphérique du périphérique connecté, ou échouera si rien n'est connecté.
Ainsi, les étapes telles que je les envisage, seraient:
sh "/usr/local/bin/idevice_id -l"
J'ai lu la plupart des documents officiels, mais j'ai dessiné un blanc. Comment analyser la sortie de l'étape sh
? Si j'aborde cette question dans le mauvais sens, toute autre suggestion est la bienvenue.
Comme mentionné dans cette réponse , à partir de la version 2.4 de Pipeline: Nodes and Processes vous pouvez utilisation:
def out = sh script: '/usr/local/bin/idevice_id -l', returnStdout: true
La méthode officielle consiste à rediriger la sortie dans un fichier et à lire le fichier
Si le fichier de sortie est vide, vous pouvez échouer le travail avec la commande de script de pipeline error "no device connected"