Some checks failed
Deploy analytics worker / Deploy analytics worker to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
i18n upload strings / Upload latest strings (push) Failing after 1s
Deploy bemo / Deploy bemo to ${{ (github.ref == 'refs/heads/bemo-production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
Deploy grafana resources / ${{ github.event_name == 'push' && 'Deploy grafana resources' || 'Validate grafana resources (dry run)' }} (push) Failing after 0s
End to end tests (dotcom) / Check for relevant changes (push) Failing after 0s
End to end tests (examples) / Check for relevant changes (push) Failing after 0s
End to end tests (mermaid readability) / Check for relevant changes (push) Failing after 1s
End to end tests (perf) / Check for relevant changes (push) Failing after 0s
Publish editor extensions / Publish editor extensions (push) Failing after 1s
Publish SDK packages / Remove the publish-packages label (push) Has been skipped
Checks / Tests & checks (push) Has been cancelled
Checks / Build all projects (push) Has been cancelled
Deploy templates / Deploy templates (push) Has been cancelled
End to end tests (dotcom) / End to end tests (dotcom) (push) Has been cancelled
End to end tests (mermaid readability) / End to end tests (mermaid readability) (push) Has been cancelled
End to end tests (perf) / End to end tests (perf) (push) Has been cancelled
Deploy .com / Deploy dotcom to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Has been cancelled
End to end tests (examples) / End to end tests (examples) (push) Has been cancelled
Publish SDK packages / Publish SDK packages (push) Has been cancelled
Publish SDK packages / Tell user released version (push) Has been cancelled
Publish SDK packages / Publishes code templates to separate repositories (push) Has been cancelled
Publish SDK packages / Deploys the template demos with the new SDK version (push) Has been cancelled
49 lines
2.1 KiB
TypeScript
49 lines
2.1 KiB
TypeScript
import type { Options } from '@wdio/types'
|
|
import { shared } from './wdio.shared.conf'
|
|
|
|
const deviceName = process.env.APPIUM_DEVICE_NAME ?? 'iPhone 16'
|
|
const udid = process.env.APPIUM_UDID
|
|
const derivedDataPath = process.env.APPIUM_DERIVED_DATA_PATH
|
|
const usePrebuiltWDA = process.env.APPIUM_USE_PREBUILT_WDA === 'true'
|
|
|
|
/**
|
|
* Drives real Mobile Safari in the iOS Simulator via Appium's XCUITest driver.
|
|
* Touch gestures are performed in the NATIVE context (see helpers/pinch.ts),
|
|
* which is the only place multi-touch W3C actions work on iOS — they go through
|
|
* the real Simulator touch system and therefore through Safari's own gesture
|
|
* recognizer.
|
|
*/
|
|
export const config: Options.Testrunner = {
|
|
...shared,
|
|
capabilities: [
|
|
{
|
|
platformName: 'iOS',
|
|
'appium:automationName': 'XCUITest',
|
|
'appium:deviceName': deviceName,
|
|
// Attach to the simulator CI already booted (see the Boot step), so
|
|
// XCUITest doesn't create/boot one itself.
|
|
...(udid ? { 'appium:udid': udid } : {}),
|
|
// Pin platformVersion in CI to the runtime shipped by the macos-26 image
|
|
// if you need determinism; left unset here to use the booted default.
|
|
browserName: 'Safari',
|
|
'appium:safariInitialUrl': `${shared.baseUrl}/end-to-end`,
|
|
'appium:newCommandTimeout': 120,
|
|
// Let Appium own the simulator lifecycle (create/boot the one it uses).
|
|
// Don't pre-boot in CI — a second simulator just causes boot contention.
|
|
'appium:noReset': true,
|
|
// First run builds WebDriverAgent from source, which is slow on a cold
|
|
// CI simulator. Give the build/launch generous headroom (no signing is
|
|
// needed on the simulator, so this is just time, not config).
|
|
'appium:wdaLaunchTimeout': 300_000,
|
|
'appium:wdaConnectionTimeout': 300_000,
|
|
'appium:wdaStartupRetries': 2,
|
|
'appium:wdaStartupRetryInterval': 20_000,
|
|
'appium:showXcodeLog': false,
|
|
// Build WDA into a stable, cacheable DerivedData dir; on a CI cache hit
|
|
// reuse the prebuilt WDA and skip the xcodebuild step entirely.
|
|
...(derivedDataPath ? { 'appium:derivedDataPath': derivedDataPath } : {}),
|
|
...(usePrebuiltWDA ? { 'appium:usePrebuiltWDA': true } : {}),
|
|
},
|
|
],
|
|
}
|