I am using the Jenkins Pipeline plugin to execute an iOS Checkout-Build-Test-Deploy pipeline.
One step involves checking whether an iDevice is actually connected (otherwise the rest of the steps will not be executed).
I want to execute a shell command idevice_id -l
(from libimobiledevice) which will print out the device ID of the connected device, or fail if nothing connected.
So the steps as I envision them, would be:
sh "/usr/local/bin/idevice_id -l"
I have read most of the official docs, but drew a blank. How do I parse the output of the sh
step?
If I am approaching this in the wrong way, any other suggestions are welcome.
As mentionned in this answer, as of version 2.4 of Pipeline: Nodes and Processes you can use:
def out = sh script: '/usr/local/bin/idevice_id -l', returnStdout: true
The official method is to redirect the output into a file and read the file
If the output file is empty, you can fail the job with the pipeline script command error "no device connected"
Example on github
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With