2016-03-30 22 views
10

Bir iOS Checkout-Build-Test-Deploy (HESAP Denetimi-Oluşturma-Dağıtma) dağıtım hattını yürütmek için Jenkins Pipeline eklentisini kullanıyorum.Jenkins Pipeline Eklentisi: kabuk yürütme ve ayrıştırma çıktısı gerçekleştirme

Bir adım, bir iDevice'in gerçekten bağlı olup olmadığını kontrol etmeyi içerir (aksi halde adımların geri kalanı yürütülmez).

idevice_id -l (libimobiledevice numaralı telefondan), bağlı aygıtın aygıt kimliğini yazdıracak veya bağlı bir şey yoksa başarısız olacak bir kabuk komutu yürütmek istiyorum. Onları öngörülüyor olarak

Yani adımlar şöyle olacaktır:

  • bu komut şey dönmez ise bir türlü
  • başarısız çıkışını ayrıştırmak komutunu sh "/usr/local/bin/idevice_id -l"
  • yürütün.

Resmi belgelerin çoğunu okudum, ancak boş bir resim çizdim. sh adımının çıktısını nasıl ayrıştırabilirim? Eğer buna yanlış bir şekilde yaklaşıyorsam, başka öneriler de kabul edilir.

cevap

31

ile işi başarısız olabilir bir dosyaya çıktı yönlendirmek ve dosyayı

okumaktır Pipeline: Nodes and Processes sürümü 2.4 itibariyle this answer yılında mentionned kullanabilirsiniz:

def out = sh script: '/usr/local/bin/idevice_id -l', returnStdout: true 
2

resmi yöntem çıktı dosya boş ise, boru hattı komut komutu error "no device connected"

Example on github

+0

fantastik! Bu benim için iyi çalışıyor. 'sh ('/ usr/local/bin/idevice_id -l> DEVICE_ID'); DeviceId = readFile ('GIT_COMMIT') – Vish

+0

[JENKINS-26133] (https://issues.jenkins-ci.org/browse/JENKINS-26133) bu arada. –

+2

Artık "resmi" yöntem/geçici çözüm değil, güncellenmiş yöntem için [bu yanıt] 'a bakın (http://stackoverflow.com/a/39102404/702954). – Pom12

İlgili konular