Skip to content

feat(advanced): PER-8195 Phase 2 — advanced example for io.percy:percy-appium-app#20

Draft
Shivanshu-07 wants to merge 1 commit into
mainfrom
per-8195-phase-2-appium-java
Draft

feat(advanced): PER-8195 Phase 2 — advanced example for io.percy:percy-appium-app#20
Shivanshu-07 wants to merge 1 commit into
mainfrom
per-8195-phase-2-appium-java

Conversation

@Shivanshu-07
Copy link
Copy Markdown

@Shivanshu-07 Shivanshu-07 commented May 21, 2026

Summary

Adds an advanced/ example covering the full applicable App Percy Java SDK feature surface. 9 JUnit 5 @Test methods in AdvancedTest.java exercising the Map<String, Object> options overload:

  • device_name override + orientation handling
  • fullscreen + status_bar_height + nav_bar_height
  • ignore regions via ignore_regions_xpaths / ignore_region_appium_elements / custom_ignore_regions
  • consider regions via consider_regions_xpaths
  • sync mode
  • test_case + labels metadata
  • Build metadata via env (PERCY_PROJECT / PERCY_BUILD / DEVICE / OS_VERSION / APP)
  • PERCY_BRANCH / PERCY_COMMIT override

Web-only options (widths, percyCSS, etc.) marked N/A in matrix.yml.

Issue: PER-8195. Parent: percy/percy-public-repos-parent#1.

CI shape

workflow_dispatch-only — App Percy CI requires a real BrowserStack device session. Forks/Dependabot can't trigger. Needs repo secrets AA_USERNAME / AA_ACCESS_KEY / APP_BS_URL / PERCY_TOKEN.

Test plan

  • Maintainer triggers Advanced — App Percy workflow manually with hub secrets set.
  • Verify a Percy build lands with the 9 advanced screenshots.
  • Verify ignore/consider regions render as expected on the comparison view.

🤖 Generated with Claude Code

…y-appium-app

Adds advanced/ exercising the full applicable App Percy Java SDK feature
surface. 9 JUnit 5 @test methods in AdvancedTest.java exercising the
Map<String, Object> options overload: device_name + orientation,
fullscreen + status_bar/nav_bar heights, ignore regions via xpath /
appium element / custom bbox, consider regions via xpath, sync mode,
test_case + labels, build metadata via env (PERCY_PROJECT, PERCY_BUILD,
DEVICE, OS_VERSION, APP), PERCY_BRANCH / PERCY_COMMIT override.

Web-only options (widths, percyCSS, etc.) marked N/A.

CI: workflow_dispatch-only — App Percy CI requires a real BrowserStack
device session.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comment on lines +12 to +45
runs-on: ubuntu-latest
timeout-minutes: 30
defaults:
run:
working-directory: advanced
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 11
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Sanity-check BrowserStack secrets
env:
AA_USERNAME: ${{ secrets.AA_USERNAME }}
AA_ACCESS_KEY: ${{ secrets.AA_ACCESS_KEY }}
run: |
if [ -z "$AA_USERNAME" ] || [ -z "$AA_ACCESS_KEY" ]; then
echo "::error::AA_USERNAME / AA_ACCESS_KEY repo secrets are required for the advanced App Percy job."
exit 1
fi
- name: Install advanced/ dependencies
run: make install
- name: Run mvn test advanced against BrowserStack
env:
AA_USERNAME: ${{ secrets.AA_USERNAME }}
AA_ACCESS_KEY: ${{ secrets.AA_ACCESS_KEY }}
APP: ${{ secrets.APP_BS_URL }}
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }}
PERCY_BRANCH: ${{ github.ref_name }}
PERCY_COMMIT: ${{ github.sha }}
run: make test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants