Özgür Kaya Docs July 28, 2022 Integrate your Appium test automation project with your favourite CI/CD tool and use Momentum Suite’s M-Lab device cloud for testing native and hybrid apps. These tools automate the build and deployment process of your applications. By running your Appium test suite, you also automate testing as part of the build process. With M-Lab mobile devices, your apps can be tested across 150+ real devices. JenkinsTeamCity (Jetbrains)Bamboo (Atlassian)GitLab CIOctopus DeployCircle CIFastlaneAzure DevopsTravis CIGoCDShippable (JFrog)Jenkins XIntegrityBuddyCodeshipWercker (Oracle)SemaphoreTerraformSpinnakerBuildbotCodefreshNevercodeGitHub ActionsBuildkiteConcourse CIBitriseCodemagicXcode CloudVS App CenterAppcircle Prerequisites You need the following set-up before you begin An existing CI/CD serverA MomentumSuite M-Live account Usage Upload your APK, AAB or IPA file to the M-Live Application Library accessToken=$(curl -X POST -H "Content-Type: application/json" \ -d "{\"username\":\"YOUR_EMAIL_ADDRESS\",\"password\":\"YOUR_PASSWORD\",\"grant_type\":\"password\"}" \ "https://console.momentumsuite.com/rdcApi/api/auth" \ | jq --raw-output '.result.accessToken') echo $accessToken appId=$(curl -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer $accessToken" \ -F "Title=SmartMobile" \ -F "IsReSignable=false" \ -F "ApplicationFile=@/Users/User/Documents/APK/mymobileapp.apk" \ "https://console.momentumsuite.com/rdcApi/api/ApplicationLibraries" \ | jq --raw-output '.result.appId') echo ms://$appId Start your automation suite with the latest app file This is an example of usage with a parameterized Java-Maven project. You can use it as an appium:app capability value. mvn clean test -DappiumAppFile=ms://$appId DesiredCapabilities capabilities = new DesiredCapabilities(); HashMap<String, Object> momentumOptions = new HashMap<String, Object>(); momentumOptions.put("user", momentumUser); momentumOptions.put("token", momentumToken); momentumOptions.put("gw", momentumAndroidDeviceId); capabilities.setCapability("momentum:options", momentumOptions); capabilities.setCapability("appium:platformName", "Android"); capabilities.setCapability("appium:automationName", "UIAutomator2"); capabilities.setCapability("appium:deviceName", ""); capabilities.setCapability("appium:udid", ""); capabilities.setCapability("appium:app", appiumAppFile); capabilities.setCapability("appium:fullReset", true); capabilities.setCapability("appium:noReset", false); Share on Facebook Share on twitter