class Fastlane::Actions::TestmunkAction
def self.author
def self.author ["mposchen", "johannesberdin"] end
def self.available_options
def self.available_options [ FastlaneCore::ConfigItem.new(key: :ipa, env_name: "TESTMUNK_IPA", description: "Path to IPA", default_value: Actions.lane_context[SharedValues::IPA_OUTPUT_PATH], verify_block: proc do |value| raise "Please pass to existing ipa" unless File.exist? value end), FastlaneCore::ConfigItem.new(key: :email, env_name: "TESTMUNK_EMAIL", description: "Your email address", verify_block: proc do |value| raise "Please pass your Testmunk email address using `ENV['TESTMUNK_EMAIL'] = 'value'`" unless value end), FastlaneCore::ConfigItem.new(key: :api, env_name: "TESTMUNK_API", description: "Testmunk API Key", verify_block: proc do |value| raise "Please pass your Testmunk API Key using `ENV['TESTMUNK_API'] = 'value'`" unless value end), FastlaneCore::ConfigItem.new(key: :app, env_name: "TESTMUNK_APP", description: "Testmunk App Name", verify_block: proc do |value| raise "Please pass your Testmunk app name using `ENV['TESTMUNK_APP'] = 'value'`" unless value end) ] end
def self.description
def self.description "Run tests on real devices using Testmunk" end
def self.is_supported?(platform)
def self.is_supported?(platform) platform == :ios end
def self.run(config)
def self.run(config) Helper.log.info 'Testmunk: Uploading the .ipa and starting your tests'.green Helper.log.info 'Zipping features/ to features.zip'.green zipped_features_path = File.expand_path('features.zip') Actions.sh(%(zip -r "features" "features/")) response = system("curl -H 'Accept: application/vnd.testmunk.v1+json'" \ " -F 'file=@#{config[:ipa]}' -F 'autoStart=true'" \ " -F 'testcases=@#{zipped_features_path}'" \ " -F 'email=#{config[:email]}'" \ " https://#{config[:api]}@api.testmunk.com/apps/#{config[:app]}/testruns") if response Helper.log.info 'Your tests are being executed right now. Please wait for the mail with results and decide if you want to continue.'.green else raise 'Something went wrong while uploading your app to Testmunk'.red end end