isonic1 / flick

A CLI with helpful QA tools for Android (Devices & Emulators) and iOS (Devices).
MIT License
101 stars 26 forks source link

Flick not working for iOS 10 via Jenkins #25

Closed testableapple closed 7 years ago

testableapple commented 7 years ago

Environment:

Steps: In Jenkins job:

Actual result:

PS:

isonic1 commented 7 years ago

Interesting. I suspect the Jenkins user doesn't have access to the libimobiledevice libraries. The easiest remedy is to export your PATH in the Execute Shell. e.g. export PATH=$HOME/bin:/usr/local/bin:usr:/usr/local/bin/idevicesyslog:$PATH and make sure the path where idevicesyslog, idevicescreenshot etc.. are located is included. Otherwise, if you dont do this then you need to install the libraries as the Jenkins user to make sure he has access to them.

testableapple commented 7 years ago

but I can in Jenkins:

testableapple commented 7 years ago

attaching trace log, after stoping video via flick in Jenkins, mb it will helps in my problem:

flick video -p ios -a start -n testme1 -u ec0035407ad3cbe5f62d2c33b2b007a92443d1d6 --trace
Starting Screenshot Recorder...
Process will stop after 500 screenshots.
flick video -p ios -a stop -n testme1 -u ec0035407ad3cbe5f62d2c33b2b007a92443d1d6 --trace

Stopping Recorder!!!
/Library/Ruby/Gems/2.0.0/gems/flick-0.3.2/lib/flick/video.rb:145:in `rename': No such file or directory - (/Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4, /Users/jenkins/.jenkins/jobs/Console/workspace/testme1.mp4) (Errno::ENOENT)
from /Library/Ruby/Gems/2.0.0/gems/flick-0.3.2/lib/flick/video.rb:145:in `mp4'
from /Library/Ruby/Gems/2.0.0/gems/flick-0.3.2/lib/flick/video.rb:133:in `stop_screenshot_recording'
from /Library/Ruby/Gems/2.0.0/gems/flick-0.3.2/lib/flick/video.rb:51:in `stop'
from /Library/Ruby/Gems/2.0.0/gems/flick-0.3.2/lib/flick/video.rb:25:in `run'
from /Library/Ruby/Gems/2.0.0/gems/flick-0.3.2/bin/flick:32:in `block (2 levels) in <top (required)>'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.4.0/lib/commander/command.rb:178:in `call'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.4.0/lib/commander/command.rb:178:in `call'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.4.0/lib/commander/command.rb:153:in `run'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.4.0/lib/commander/runner.rb:444:in `run_active_command'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.4.0/lib/commander/runner.rb:68:in `run!'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.4.0/lib/commander/delegates.rb:15:in `run!'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.4.0/lib/commander/import.rb:5:in `block in <top (required)>'
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
Waiting for /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.mp4 to exist...
isonic1 commented 7 years ago

Hmm, a couple things. Looks like the gem version is older. The current version 0.3.6. You can update by doing a gem update flick to get the latest. Not sure if that is your issue, though. Also, have you updated libimobiledevice by following the steps in issue #10?

https://github.com/isonic1/flick/issues/10

testableapple commented 7 years ago

@isonic1, sorry, its my big mistake. It was bad path to libimobiledevice in Jenkins. Thank u and sorry again

isonic1 commented 7 years ago

Right. so this makes me think Jenkins cannot use idevicescreenshot for some reason. Can you create a new job and in the Execute Shell box, run idevicescreenshot -u ec0035407ad3cbe5f62d2c33b2b007a92443d1d6 /Users/jenkins/.flick/ec0035407ad3cbe5f62d2c33b2b007a92443d1d6/testme1.png and see if it does indeed create a image file. The other after that would be to make sure Jenkins can execute ffmpeg and mp4box libraries too but that should have thrown an error if they were not installed.