Skip to content

Instantly share code, notes, and snippets.

View dpgraham's full-sized avatar

Dan Graham dpgraham

  • Sauce Labs (@appium Team)
  • Vancouver, BC, Canada
View GitHub Profile
info XCUITest XCUITestDriver server listening on http://localhost:4994
info HTTP --> POST /wd/hub/session
info HTTP {"desiredCapabilities":{"safariIgnoreFraudWarning":false,"showSafariConsoleLog":true,"safariInitialUrl":"http://localhost:4994/test/guinea-pig","nativeWebTap":true,"browserName":"Safari","platformName":"iOS","platformVersion":"13.0","deviceName":"iPhone X","automationName":"XCUITest","noReset":true,"maxTypingFrequency":30,"clearSystemFiles":true,"wdaLaunchTimeout":240000,"wdaConnectionTimeout":480000,"useNewWDA":true}}
dbug MJSONWP Calling XCUITestDriver.createSession() with args: [{"safariIgnoreFraudWarning":false,"showSafariConsoleLog":true,"safariInitialUrl":"http://localhost:4994/test/guinea-pig","nativeWebTap":true,"browserName":"Safari","platformName":"iOS","platformVersion":"13.0","deviceName":"iPhone X","automationName":"XCUITest","noReset":true,"maxTypingFrequency":30,"clearSystemFiles":true,"wdaLaunchTimeout":240000,"wdaConnectionTimeout":480000,"useNewWDA":true},null,null]
dbug XCUITe
[Appium] Welcome to Appium v1.15.0-rc.0 (REV 4c9db521f24048a0caf3345f42c4486ddd3aafcd)
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
[HTTP] --> POST /wd/hub/session
[HTTP] {"desiredCapabilities":{"browserName":"","appiumVersion":"1.13.0","deviceName":"iPhone 8","platformVersion":"13.0","launchTimeout":35000,"platformName":"iOS","app":"http://appium.s3.amazonaws.com/FLWebView.app.zip","prevent-requeue":true,"name":"Basic ios hybrid test (iPhone 8 on iOS 13.0)"}}
[debug] [MJSONWP] Calling AppiumDriver.createSession() with args: [{"browserName":"","appiumVersion":"1.13.0","deviceName":"iPhone 8","platformVersion":"13.0","launchTimeout":35000,"platformName":"iOS","app":"http://appium.s3.amazonaws.com/FLWebView.app.zip","prevent-requeue":true,"name":"Basic ios hybrid test (iPhone 8 on iOS 13.0)"},null,null]
[debug] [BaseDriver] Event 'newSessionRequested' logged at 1567550445435 (15:40:45 GMT-
/Users/danielgraham/appium
Daniel-Graham-SL0192:appium danielgraham$ cd /Users/danielgraham/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/
Daniel-Graham-SL0192:WebDriverAgent danielgraham$ xcodebuild build-for-testing test-without-building -project /Users/danielgraham/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -derivedDataPath /Users/danielgraham/Library/Developer/Xcode/DerivedData/WebDriverAgent-hdzsfyonzptlecewqnifcsevrdrr -destination id=5B9BC105-1A82-4821-ABD1-22266AA79B1C IPHONEOS_DEPLOYMENT_TARGET=12.0 GCC_TREAT_WARNINGS_AS_ERRORS=0 COMPILER_INDEX_STORE_ENABLE=NO
User defaults from command line:
IDEDerivedDataPathOverride = /Users/danielgraham/Library/Developer/Xcode/DerivedData/WebDriverAgent-hdzsfyonzptlecewqnifcsevrdrr
Build settings from command line:
COMPILER_INDEX_STORE_ENABLE = NO
GCC_TREAT_WARNINGS_AS_ERRORS = 0
IPHONEOS_DEPLOYMENT_TARGET = 12.0
/Users/danielgraham/appium
Daniel-Graham-SL0192:appium danielgraham$ cd /Users/danielgraham/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/
Daniel-Graham-SL0192:WebDriverAgent danielgraham$ xcodebuild build-for-testing test-without-building -project /Users/danielgraham/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -derivedDataPath /Users/danielgraham/Library/Developer/Xcode/DerivedData/WebDriverAgent-hdzsfyonzptlecewqnifcsevrdrr -destination id=5B9BC105-1A82-4821-ABD1-22266AA79B1C IPHONEOS_DEPLOYMENT_TARGET=12.0 GCC_TREAT_WARNINGS_AS_ERRORS=0 COMPILER_INDEX_STORE_ENABLE=NO
User defaults from command line:
IDEDerivedDataPathOverride = /Users/danielgraham/Library/Developer/Xcode/DerivedData/WebDriverAgent-hdzsfyonzptlecewqnifcsevrdrr
Build settings from command line:
COMPILER_INDEX_STORE_ENABLE = NO
GCC_TREAT_WARNINGS_AS_ERRORS = 0
IPHONEOS_DEPLOYMENT_TARGET = 12.0
[Appium] Appium v1.13.0-rc.1 creating new XCUITestDriver (v2.113.1) session
[Appium] Capabilities:
[Appium] app: /Users/danielgraham/appium-xcuitest-driver/test/assets/UICatalog-iphonesimulator.app
[Appium] automationName: XCUITest
[Appium] deviceName: iPhone 6s
[Appium] noReset: false
[Appium] platformName: iOS
[Appium] platformVersion: 12.0
[Appium] showIOSLog: false
[Appium] showXcodeLog: true
@dpgraham
dpgraham / gist:c4a4181d4bff7f5526cb4310f04fd7cc
Created April 29, 2019 23:55
XCUITestDriver never installs WebDriverAgent
[Appium] Welcome to Appium v1.13.0-rc.1 (REV dd9a4d6693108a7e233fe94f217969ffb93417cb)
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
[HTTP] --> POST /wd/hub/session
[HTTP] {"desiredCapabilities":{"app":"/Users/danielgraham/appium-xcuitest-driver/test/assets/UICatalog-iphonesimulator.app","automationName":"XCUITest","deviceName":"iPhone X","fullReset":true,"noReset":false,"platformName":"iOS","platformVersion":"12.2","showIOSLog":false,"showXcodeLog":false,"newCommandTimeout":0,"connectHardwareKeyboard":true}}
[debug] [MJSONWP] Calling AppiumDriver.createSession() with args: [{"app":"/Users/danielgraham/appium-xcuitest-driver/test/assets/UICatalog-iphonesimulator.app","automationName":"XCUITest","deviceName":"iPhone X","fullReset":true,"noReset":false,"platformName":"iOS","platformVersion":"12.2","showIOSLog":false,"showXcodeLog":false,"newCommandTimeout":0,"connectHardwareKeyboard":true},null,null]
[debug] [BaseDriver] Event 'newSessionRequested' logged at 1556581218022 (16:40:18 GMT-07

Move appium/appium, all of the drivers, appium-adb, appium-remote-debugger, appium-chromedriver, appium-support, appium-ios-simulator, node-simctl into a single repo so that they can be released simultaneously and so that they can be symlinked (using Lerna) to eachother. Then make Appium into a "Builder" that can create a custom Appium server by passing it instances of drivers

STAGE 1: Use another CI for the packges that supports multiple builds (Travis does not). This has already been started with Azure. I'd be open to other options, but Azure looks really promising.

STAGE 2: Move the packages one-by-one into one repository (temporarily call it appium/monorepo) and deprecate the repositories that were left behind.

  • Will require a little bit of refactoring to make CI work
  • Should rename everything to @appium/<package-name>
  • Add Lerna to the root of the repository to support sibling package symlinking, shared dependency symlinking and Lerna's versioning/publishing

STAGE 3: Split appium/appium into

info ADB Checking whether adb is present
info ADB Found 10 'build-tools' folders under '/Users/danielgraham/Library/Android/sdk' (newest first):
info ADB /Users/danielgraham/Library/Android/sdk/build-tools/28.0.3
info ADB /Users/danielgraham/Library/Android/sdk/build-tools/27.0.3
info ADB /Users/danielgraham/Library/Android/sdk/build-tools/27.0.1
info ADB /Users/danielgraham/Library/Android/sdk/build-tools/26.0.2
info ADB /Users/danielgraham/Library/Android/sdk/build-tools/26.0.1
info ADB /Users/danielgraham/Library/Android/sdk/build-tools/25.0.3
info ADB /Users/danielgraham/Library/Android/sdk/build-tools/25.0.0
info ADB /Users/danielgraham/Library/Android/sdk/build-tools/24.0.1
@dpgraham
dpgraham / gist:17e9758c29269d166bf8e5f9994b9e57
Last active February 21, 2019 02:58
Electron Builder Buffer Error Logs
• electron-builder version=20.38.5
• loaded configuration file=package.json ("build" field)
• rebuilding native production dependencies platform=win32 arch=x64
• packaging platform=win32 arch=x64 electron=3.1.4 appOutDir=release\win-unpacked
• asar using is disabled — it is strongly not recommended solution=enable asar and use asarUnpack to unpack files that must be externally available
•‌ downloading ‌parts‌=1 ‌size‌=5.6 MB ‌url‌=https://github.com/electron-userland/electron-builder-binaries/releases/download/winCodeSign-2.4.0/winCodeSign-2.4.0.7z‌
•‌ downloaded ‌duration‌=932ms ‌url‌=https://github.com/electron-userland/electron-builder-binaries/releases/download/winCodeSign-2.4.0/winCodeSign-2.4.0.7z‌
• building target=nsis file=release\Appium Setup 1.11.0.exe archs=x64 oneClick=false perMachine=false
•‌ downloading ‌parts‌=1 ‌size‌=1.4 MB ‌url‌=https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-3.
@dpgraham
dpgraham / gist:c2010384bee7f7c0c3e16bdbf1631d97
Last active February 20, 2019 21:20
Appium Release Process

Appium release process

Creating release branch

Follow these steps when we're ready to start the process for a minor release (let's call it X.Y where X is the major version and Y is the forthcoming minor version) and we want publish the first release candidate.

  1. Checkout the latest master branch git checkout master && git pull origin master
  2. Create a branch called X.Y git checkout -b X.Y
  3. Do a fresh install of the dependencies npm run clean
  4. Update the version in package.json using a release candidate version schema "version": "X.Y.0-rc.0"
  5. Create an npm-shrinkwrap.json file npm shrinkwrap
  6. Commit and push the package.json and shrinkwrap file git commit -a -m 'vX.Y.0-rc.0' &amp;&amp; git push origin X.Y