Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
c159c0c
Add CI script and hardened skill for AI-driven E2E tests
iangmaia Mar 24, 2026
ab7665d
Add Buildkite pipeline step for AI E2E tests
iangmaia Mar 24, 2026
026eebf
Use [[ instead of [ for conditional tests
iangmaia Mar 24, 2026
756becc
Fix label check (comma-separated), broken [[ syntax, and missing npm
iangmaia Mar 25, 2026
564c05a
Clone and build WebDriverAgent if not present on CI agent
iangmaia Mar 25, 2026
ceeff2d
Export SIMULATOR_NAME so build-wda.sh can read it
iangmaia Mar 26, 2026
d7cffef
Harden Claude AI E2E runner
iangmaia Mar 26, 2026
7caf9e2
Use APP_BUNDLE_ID consistently
iangmaia Mar 26, 2026
325193c
Normalize CI site URLs and extend WDA startup timeout
iangmaia Mar 26, 2026
a2143f0
Use built WDA artifacts in CI and extend AI timeout
iangmaia Mar 26, 2026
745c37a
Fix Claude CLI invocation and bash 3 status output
iangmaia Mar 26, 2026
b98598f
Use Claude Sonnet 4.6 by default
iangmaia Mar 26, 2026
36b52f9
Pass Claude prompt after option terminator
iangmaia Mar 26, 2026
c9c34db
Stream Claude AI E2E progress
iangmaia Mar 26, 2026
cad6432
Fix Rubocop errors
iangmaia Mar 26, 2026
c1febf0
Attempt to simplify Claude E2E test running
iangmaia Mar 27, 2026
d5a5f0f
Back to Sonnet 4.6
iangmaia Mar 27, 2026
fc0ebff
Add tap-element.sh, reduce max turns, and extend timeout
iangmaia Mar 27, 2026
791448c
Raise max turns to 100 and limit screenshots to failures only
iangmaia Mar 27, 2026
ea2deac
Trigger CI
iangmaia Mar 25, 2026
7f03ef8
Trigger CI
iangmaia Mar 27, 2026
82b9adf
Test AI E2E with Claude Opus 4.6
iangmaia Mar 30, 2026
0eab4bb
Revert "Test AI E2E with Claude Opus 4.6"
iangmaia Mar 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions .buildkite/commands/build-wda.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#!/usr/bin/env bash
# Clone and build WebDriverAgent for iOS Simulator testing.
#
# Skips the build only when a usable build-for-testing artifact already exists.
#
# Required (one of):
# SIMULATOR_UDID Simulator UDID for the build destination
# SIMULATOR_NAME Simulator name for the build destination (e.g., iPhone 16)
#
# Optional:
# WEBDRIVERAGENT_REPO_URL Repo URL (default: appium/WebDriverAgent)
# WEBDRIVERAGENT_REF Git ref or commit to build (default: current remote HEAD / existing checkout)

set -euo pipefail

if [[ -z "${SIMULATOR_UDID:-}" && -z "${SIMULATOR_NAME:-}" ]]; then
echo "Error: set SIMULATOR_UDID or SIMULATOR_NAME" >&2
exit 1
fi

WDA_DIR=".build/WebDriverAgent"
WDA_PROJECT="${WDA_DIR}/WebDriverAgent.xcodeproj"
WDA_DERIVED_DATA="${WDA_DIR}/DerivedData"
WEBDRIVERAGENT_REPO_URL="${WEBDRIVERAGENT_REPO_URL:-https://github.com/appium/WebDriverAgent.git}"
WEBDRIVERAGENT_REF="${WEBDRIVERAGENT_REF:-}"

if [[ -n "${SIMULATOR_UDID:-}" ]]; then
DESTINATION="platform=iOS Simulator,id=${SIMULATOR_UDID}"
else
DESTINATION="platform=iOS Simulator,name=${SIMULATOR_NAME}"
fi

ensure_wda_checkout() {

Check warning on line 33 in .buildkite/commands/build-wda.sh

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Add an explicit return statement at the end of the function.

See more on https://sonarcloud.io/project/issues?id=wordpress-mobile_WordPress-iOS&issues=AZ0qUcYBm7WHCHu0u_3F&open=AZ0qUcYBm7WHCHu0u_3F&pullRequest=25443
mkdir -p .build

if [[ ! -d "${WDA_DIR}/.git" ]]; then
git clone --depth 1 "${WEBDRIVERAGENT_REPO_URL}" "${WDA_DIR}"
fi

if [[ -n "${WEBDRIVERAGENT_REF}" ]]; then
git -C "${WDA_DIR}" fetch --depth 1 origin "${WEBDRIVERAGENT_REF}"
git -C "${WDA_DIR}" checkout --detach "${WEBDRIVERAGENT_REF}"
fi
}

has_built_artifacts() {

Check warning on line 46 in .buildkite/commands/build-wda.sh

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Add an explicit return statement at the end of the function.

See more on https://sonarcloud.io/project/issues?id=wordpress-mobile_WordPress-iOS&issues=AZ0qUcYBm7WHCHu0u_3G&open=AZ0qUcYBm7WHCHu0u_3G&pullRequest=25443
[[ -d "${WDA_DERIVED_DATA}/Build/Products" ]] && \
find "${WDA_DERIVED_DATA}/Build/Products" -name '*.xctestrun' -print -quit | grep -q .
}

ensure_wda_checkout

if [[ -d "$WDA_PROJECT" ]] && has_built_artifacts; then
echo "WebDriverAgent already built, skipping."
exit 0
fi

xcodebuild build-for-testing \
-project "$WDA_PROJECT" \
-scheme WebDriverAgentRunner \
-destination "$DESTINATION" \
-derivedDataPath "$WDA_DERIVED_DATA" \
CODE_SIGNING_ALLOWED=NO \
| tail -1

if ! has_built_artifacts; then
echo "Error: WebDriverAgent build completed without an .xctestrun artifact" >&2
exit 1
fi
Loading