Skip to content
Merged
Show file tree
Hide file tree
Changes from 47 commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
9929a99
update sign up flow for updated design
brainbicycle Jan 22, 2025
c92bc80
accesibility labels for easier testing
brainbicycle Jan 22, 2025
57d459a
assert on welcome screen to make wait reliably
brainbicycle Jan 22, 2025
b1eb0f4
update login flow
brainbicycle Jan 22, 2025
4196325
get rid of broken license check for now
brainbicycle Jan 22, 2025
a47bea1
attempt to install maestro in ci
brainbicycle Jan 22, 2025
16f3df8
attempt to run a test in ci
brainbicycle Jan 22, 2025
655e178
attempt with s3 download for now
brainbicycle Jan 22, 2025
4edfc54
need to check out project
brainbicycle Jan 22, 2025
d1d1b2b
try using m2 pro
brainbicycle Jan 23, 2025
d637806
ignore maestro folder for now
brainbicycle Jan 23, 2025
1712a5d
convenience script for installing app in booted sims
brainbicycle Jan 23, 2025
92c37c8
move flows to top level for now
brainbicycle Jan 23, 2025
312d109
attempt to run tests in parallel in ci
brainbicycle Jan 23, 2025
7bca89b
increase timeout for maestro tests
brainbicycle Jan 23, 2025
70bee59
basic deeplink testing
brainbicycle Jan 23, 2025
9f03980
try using xcode 16.2
brainbicycle Jan 23, 2025
8c8af6e
add missing idb install
brainbicycle Jan 24, 2025
b958392
don't clear state for deeplink tests to make more reliable
brainbicycle Jan 24, 2025
c003aa8
try just one flow again
brainbicycle Jan 24, 2025
2a9d3ed
try just booting one simulator
brainbicycle Jan 24, 2025
a700b69
try parallelizing using circle parallelism
brainbicycle Jan 24, 2025
41df5b6
duplicate assertion in deeplink test
brainbicycle Jan 24, 2025
b307641
fix yml matching
brainbicycle Jan 24, 2025
9fe0b4f
add launch args dep and convenience methods for sign in and sign out
brainbicycle Jan 24, 2025
cf2fdb9
use signOut method instead of buggy clearState
brainbicycle Jan 24, 2025
cf02c8d
move launch args to real deps for now
brainbicycle Jan 24, 2025
bcacdde
remove dev check for now
brainbicycle Jan 24, 2025
65c3063
move maestro launch vals to hook to make more reliable, comment out p…
brainbicycle Jan 24, 2025
4fe9759
script to workaround xarg exit code behavior
brainbicycle Jan 24, 2025
4ebaf9f
only sign out if currently signed in to prevent ui breakage
brainbicycle Jan 24, 2025
19e4c66
Merge remote-tracking branch 'origin/main' into brian/e2e-again
brainbicycle May 22, 2025
d5594f2
add required appID in config
brainbicycle May 22, 2025
7ce7aaf
run tests in sequence to avoid exit code not being propogated
brainbicycle May 22, 2025
dbdd7a8
comment auth model lint error for now
brainbicycle May 22, 2025
ecf8044
maestro init not dependent on login state, to avoid double sign out
brainbicycle May 22, 2025
016cd6a
remove conditional check, assert we are in signup flow
brainbicycle May 28, 2025
b54fd42
revert me: recaptcha debugging
brainbicycle May 29, 2025
6bfaa90
Revert "revert me: recaptcha debugging"
brainbicycle May 29, 2025
263aaaa
fix deeplink assertion
brainbicycle May 29, 2025
d5bd669
make sure brokenflows are not run
brainbicycle May 29, 2025
a9baec8
quick login for deeplink test
brainbicycle May 29, 2025
680591c
run tests after beta
brainbicycle May 29, 2025
13711bc
upload build to s3 and use in maestro tests
brainbicycle May 29, 2025
ac120df
gate maestro init behind check
brainbicycle May 30, 2025
60d10dd
remove logs
brainbicycle May 30, 2025
d78b35d
test beta + e2e workflow
brainbicycle May 30, 2025
acfde67
check to avoid crash when native module called early
brainbicycle May 30, 2025
4d8533b
bring back native module code, wait on hydration
brainbicycle May 30, 2025
981f23c
tie e2e to beta ios builds for now
brainbicycle May 30, 2025
7051f2d
fix zip file creation
brainbicycle May 30, 2025
d35f9cc
update version number
brainbicycle May 30, 2025
2ec1c41
add active arch flag to speed up sim build
brainbicycle Jun 3, 2025
afee5ec
upgrade to xcode 16.2 and 18.2 sim
brainbicycle Jun 3, 2025
3ba4a50
upload sim builds to s3
brainbicycle Jun 3, 2025
8a849a6
make e2e dependent on test app rather than betas
brainbicycle Jun 3, 2025
5cb2371
clean up
brainbicycle Jun 3, 2025
4b8960c
typo in script
brainbicycle Jun 4, 2025
06115c8
pr review: remove hardcoded appId
brainbicycle Jun 4, 2025
5a489b1
pr review: move script to utils
brainbicycle Jun 4, 2025
e8051af
pr review: move env vars to file
brainbicycle Jun 4, 2025
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
178 changes: 125 additions & 53 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,52 @@ jobs:
name: Update rollout if needed
command: ./scripts/deploys/update-android-rollout-if-needed

run-e2e-tests:
parallelism: 4

environment:
BUNDLE_PATH: .vendor # path to install gems and use for caching

macos:
xcode: 16.2
resource_class: m2pro.medium

steps:
- attach_workspace:
at: ../workspace
- macos/preboot-simulator:
version: "18.2"
platform: "iOS"
device: "iPhone 16 Pro"
- run:
name: Install maestro
command: curl -Ls "https://get.maestro.mobile.dev" | bash
- run:
name: Install idb
command: brew tap facebook/fb && brew install idb-companion
- run:
name: Test maestro install
command: maestro --version
- run:
name: Clear project dir
command: |
rm -rf /Users/distiller/project/*
- checkout
- setup-awscli
- run:
name: Download app zip
command: aws s3 cp s3://artsy-citadel/eigen/builds/ios/Artsy-latest.zip ./Artsy.zip
- run:
name: Unzip the app
command: unzip Artsy.zip
- run:
name: Install app in booted sims
command: ./install_app_in_booted_sims.sh
- run:
name: Run Maestro Tests
no_output_timeout: 25m
command: ./run_maestro_shard.sh

deploy-nightly-beta:
environment:
BUNDLE_PATH: .vendor
Expand Down Expand Up @@ -520,6 +566,32 @@ workflows:
jobs:
- deploy-nightly-beta
- run-nightly-tasks
- run-e2e-tests:
requires:
- deploy-nightly-beta

run-e2e-beta-test:
jobs:
- deploy-nightly-beta:
filters:
branches:
only:
- brian/e2e-again
- run-e2e-tests:
requires:
- deploy-nightly-beta
filters:
branches:
only:
- brian/e2e-again

# run-e2e:
# jobs:
# - run-e2e-tests:
# filters:
# branches:
# only:
# - brian/e2e-again

flag-check:
triggers:
Expand Down Expand Up @@ -547,56 +619,56 @@ workflows:
ignore:
- main

- check-code:
context: danger-github-oss

- check-and-deploy:
filters:
branches:
only:
- main

- test-js

- build-test-js

- horizon/block:
context: horizon
project_id: 37
filters:
branches:
only:
- beta-ios
- beta-android

- build-test-app-ios:
filters:
branches:
ignore:
- beta-android
requires:
- test-js
- check-code
- build-test-js
- horizon/block

- build-test-app-android:
filters:
branches:
ignore:
- beta-ios
requires:
- test-js
- check-code
- build-test-js
- horizon/block

- update-metaphysics:
filters:
branches:
only:
- beta-ios
- beta-android
requires:
- build-test-app-ios
- build-test-app-android
# - check-code:
# context: danger-github-oss

# - check-and-deploy:
# filters:
# branches:
# only:
# - main

# - test-js

# - build-test-js

# - horizon/block:
# context: horizon
# project_id: 37
# filters:
# branches:
# only:
# - beta-ios
# - beta-android

# - build-test-app-ios:
# filters:
# branches:
# ignore:
# - beta-android
# requires:
# - test-js
# - check-code
# - build-test-js
# - horizon/block

# - build-test-app-android:
# filters:
# branches:
# ignore:
# - beta-ios
# requires:
# - test-js
# - check-code
# - build-test-js
# - horizon/block

# - update-metaphysics:
# filters:
# branches:
# only:
# - beta-ios
# - beta-android
# requires:
# - build-test-app-ios
# - build-test-app-android
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,9 @@ tsconfig.tsbuildinfo
# Temporary files created by Metro to check the health of the file watcher
.metro-health-check*

# maestro test artifacts
.maestro/*

#########################################################
# Keep this rule last.
# Keep these, so we can keep the folders these appear in.
Expand Down
11 changes: 3 additions & 8 deletions e2e/config.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
appId: ${MAESTRO_APP_ID}
appId: net.artsy.artsy
---
- runFlow:
file: flows/onboarding/login.yml
- runFlow:
file: flows/onboarding/signupWithoutOnboarding.yml
# This flow is broken because of performance issues and hangs of the Art Taste Quiz Screen
# - runFlow:
# file: flows/onboarding/onboardingQuiz.yml
flows:
- "flows/*"
23 changes: 23 additions & 0 deletions e2e/flows/deeplinks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
appId: ${MAESTRO_APP_ID}
---
- launchApp:
clearState: false
arguments:
email: ${MAESTRO_TEST_EMAIL}
password: ${MAESTRO_TEST_PASSWORD}
- assertVisible: "New Works for You"
- killApp
- openLink:
link: https://www.artsy.net/artist/kaws
autoVerify: false
- assertVisible: "Kaws"
- killApp
- openLink:
link: https://click.artsy.net/f/a/epPWiX0dJaHHMiXAnSrzSg~~/AAQRxQA~/RgRj95QSP0SQaHR0cHM6Ly93d3cuYXJ0c3kubmV0L2NvbGxlY3Rpb24vYXVjdGlvbi1oaWdobGlnaHRzP3V0bV9zb3VyY2U9YnJhemUmdXRtX21lZGl1bT1lbWFpbCZ1dG1fY2FtcGFpZ249bnRmJnV0bV90ZXJtPTYyMTRmYjlkZWI0ZWZkN2RiNjBjZTcwNDk1NWU4NDQ1VwNzcGNCCmIFEg8VYlEJKGBSEmJyaWJlY2sxQGdtYWlsLmNvbVgEAAAAfw~~
autoVerify: false
- assertVisible: "Highlights at Auction This Week"
- killApp
- openLink:
link: "https://email-link.artsy.net/ls/click?upn=u001.XPbk8dXjc6dwd18Yq2uPM3eTWB4YbDUmeJTAXXTF513sTSKEFRIPxrFgGj8gd2LN9AcRIza5p2-2Fi0huqjv6GWgdnpwA-2FRyTEIYA-2BT1-2F0josxHnYTzJpKeJEmkfzDQlMEY9y6FknqDddY-2BKmm5qtTrTIF2hxySbdUboaYf5ofK-2Bj-2FgSolzBiLvvzai-2FmvjWbSpNpJHWATexQixwLakesmmZUBoRoLkCnxs59pBxJPbB3JZyP13cv77lbfn1WzJ86fiW-2B5MQcd2qss7wLGBI-2BZuy-2FxDkbFuDzpfYPDlaUs1-2BuyO9rqleUCwXPEuyWXZ3aGJrh-_dWIRBTTKlL2IhQqV5a1Cy38Sd4xylePmkTfQkXpdWOLZbG0vcWuzG-2BSSjZ7xaSUgPR0lxFBD0Zz4mpyMqiSRd7GblcbPN8eH0NYfUK6pmADWc2UoFXyJdeq-2F-2BOyOeWlS7O-2FOrHgB9-2BOGtV1nkIFPq97vJTNmWtBMDOt77SsursARR1LHG7CnzBEedV5yll40aEh9LTjA47-2BfpvonTwdxvYfd6ZWsZN2uRczvCs34ipSKUClLSzq0xCn8IjAixssMm2IreBk6LmNzHPC1YLqmZ77pv0qTxX095mxh8mk7f9rJJ8Tg1fyfRFriXGsQqgHlY-2BqTf2aAU6LS9NVXirqdp20-2BHXhzUZbaCnkQNASABts91iKoZaDeV4xnYuuo3L-2F8"
autoVerify: false
- assertVisible: "The artwork you were looking for isn't available."
13 changes: 13 additions & 0 deletions e2e/flows/login.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
appId: ${MAESTRO_APP_ID}
---
- launchApp:
clearState: false
arguments:
shouldSignOut: "true"
- assertVisible: "Sign up or log in"
- tapOn: "Email Input"
- inputText: ${MAESTRO_TEST_EMAIL}
- tapOn: "Continue.*"
- inputText: ${MAESTRO_TEST_PASSWORD}
- tapOn: "Continue.*"
- assertVisible: "New Works for You"
31 changes: 0 additions & 31 deletions e2e/flows/onboarding/login.yml

This file was deleted.

25 changes: 0 additions & 25 deletions e2e/flows/onboarding/signup.yml

This file was deleted.

File renamed without changes.
21 changes: 21 additions & 0 deletions e2e/flows/signup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
appId: ${MAESTRO_APP_ID}
---
- launchApp:
clearState: false
arguments:
shouldSignOut: "true"
- runScript:
file: signup.js
- assertVisible: "Sign up or log in"
- tapOn: "Email Input"
- inputText: ${output.signup.email}
- tapOn: "Continue.*"
- assertVisible: "Welcome to Artsy"
- inputText: ${output.signup.password}
- tapOn: "Continue.*"
- inputText: "Test McTest"
- runFlow:
commands:
- tapOn:
point: 15%,36%
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

been there, done that 😢
I can help poking around our checkboxes to make them fully accessible to use with maestro if you want, I totally forgot about it 🫠

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I actually haven't tried updating this since way back, I think George made some changes here recently, will check if there is already a better way

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did make the checkboxes accessible already

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i checked in maestro studio and still have the problem that all accessible touchables lead to link opening rather than checkbox getting checked, will take a look after this pr

- tapOn: "Continue.*"
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ appId: ${MAESTRO_APP_ID}
---
- runFlow:
file: signup.yml
- assertVisible: "Ready to find art you love?"
- tapOn: "Skip.*"
- assertVisible: "New Works for You"
6 changes: 6 additions & 0 deletions e2e/set_env_vars.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/bash

# TODO: make work for android as well
export MAESTRO_APP_ID=net.artsy.artsy
export [email protected]
export MAESTRO_TEST_PASSWORD='$###$someT0ughP4$$'
11 changes: 5 additions & 6 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ GIT_REMOTE_ORIGIN_URL = `git config --get remote.origin.url`.chomp

S3_PATH = 's3://artsy-citadel/eigen'
S3_ANDROID_BUILDS_PATH = S3_PATH + '/builds/android/'
S3_IOS_BUILDS_PATH = S3_PATH + '/builds/ios/'

import 'utility_fastlane.rb'
import 'sentry_fastlane.rb'
Expand Down Expand Up @@ -101,6 +102,10 @@ lane :ship_beta_ios do |options|
dist_version: bundle_version,
platform: 'ios'
)

s3_upload_ios_build(
app_version: bundle_version
)
end

deploy_ios_beta(deployment_target: deployment_target)
Expand Down Expand Up @@ -361,12 +366,6 @@ lane :create_android_apk do
)
end

lane :s3_upload_android_build do |options|
app_version = options[:app_version]
app_path = options[:app_path]
sh('aws s3 cp ' + app_path + ' ' + S3_ANDROID_BUILDS_PATH + app_version.to_s + '.aab')
end

lane :select_android_build do |options|
select_message = options[:select_message] || 'release'
skip_download = options[:skip_download] || false
Expand Down
Loading