Skip to content

Commit

Permalink
Merge branch 'develop' into jacek/xcode15
Browse files Browse the repository at this point in the history
* develop: (36 commits)
  Rolls back a BSK change by mistake
  Updates BSK
  Updates BSK
  Document LinkPresentation usage (#2172)
  Autofill "Never Save for this Site" feature (#2104)
  Use upstream fastlane 2.217.0 (#2161)
  Update about screen (#2152)
  Fixes a crasher due to a test line merged by mistake. (#2162)
  remove return user pixel (#2146)
  Revert to auto signing (#2158)
  BSK changes for NetP iOS Geoswitching (#2141)
  Update sync e2e tests to new setup flow (#2151)
  Fix for duplicated "atb" in Pixel request (#2139)
  Updating tests to support latest reference tests (#2145)
  Add NetP widget (#2142)
  Normalize ampUrl in breakage pixel (#2154)
  Update embedded files
  Update version number
  Bump submodules/privacy-reference-tests from `0d23f76` to `7519c3d` (#2135)
  Properly refresh home page favorites view when updating favorites display mode (#2148)
  ...
  • Loading branch information
samsymons committed Nov 16, 2023
2 parents 440dd9f + c7e5bf5 commit b0da844
Show file tree
Hide file tree
Showing 170 changed files with 5,988 additions and 3,056 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/alpha.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,9 @@ jobs:
restore-keys: |
${{ runner.os }}-spm-
# Using Xcode 15 as the alpha build uses iOS 17 APIs
- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_$(<.xcode-version).app/Contents/Developer
run: sudo xcode-select -s /Applications/Xcode_15.0.1.app/Contents/Developer

- name: Prepare fastlane
run: bundle install
Expand Down
82 changes: 82 additions & 0 deletions .github/workflows/sync-end-to-end.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Sync-End-to-End tests

on:
schedule:
- cron: '0 5 * * *' # run at 5 AM UTC

jobs:
sync-end-to-end-tests:
name: Sync End to end Tests
runs-on: macos-13

steps:
- name: Check out the code
uses: actions/checkout@v3
with:
submodules: recursive

- name: Set cache key hash
run: |
has_only_tags=$(jq '[ .object.pins[].state | has("version") ] | all' DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved)
if [[ "$has_only_tags" == "true" ]]; then
echo "cache_key_hash=${{ hashFiles('DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}" >> $GITHUB_ENV
else
echo "Package.resolved contains dependencies specified by branch or commit, skipping cache."
fi
- name: Cache SPM
if: env.cache_key_hash
uses: actions/cache@v3
with:
path: DerivedData/SourcePackages
key: ${{ runner.os }}-spm-${{ env.cache_key_hash }}
restore-keys: |
${{ runner.os }}-spm-
- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_$(<.xcode-version).app/Contents/Developer

- name: Build for tests
run: |
set -o pipefail && xcodebuild \
-scheme "DuckDuckGo" \
-destination "platform=iOS Simulator,name=iPhone 14,OS=16.4" \
-derivedDataPath "DerivedData" \
| tee xcodebuild.log
- name: Create test account for Sync and return the recovery code
uses: duckduckgo/sync_crypto/action@main
id: sync-recovery-code
with:
debug: true

- name: Sync e2e tests
uses: mobile-dev-inc/[email protected]
with:
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
app-file: DerivedData/Build/Products/Debug-iphonesimulator/DuckDuckGo.app
workspace: .maestro
include-tags: sync
env: |
CODE=${{ steps.sync-recovery-code.outputs.recovery-code }}
- name: Create Asana task when workflow failed
if: ${{ failure() }}
run: |
curl -s "https://app.asana.com/api/1.0/tasks" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${{ secrets.ASANA_ACCESS_TOKEN }}" \
--header "Content-Type: application/json" \
--data ' { "data": { "name": "GH Workflow Failure - Sync End to end tests", "workspace": "${{ vars.GH_ASANA_WORKSPACE_ID }}", "projects": [ "${{ vars.GH_ASANA_IOS_APP_PROJECT_ID }}" ], "notes" : "The end to end workflow has failed. See https://github.com/duckduckgo/iOS/actions/runs/${{ github.run_id }}" } }'
- name: Upload logs when workflow failed
uses: actions/upload-artifact@v3
if: failure()
with:
name: BuildLogs
path: |
xcodebuild.log
DerivedData/Logs/Test/*.xcresult
retention-days: 7


3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,6 @@ fastlane/report.xml
fastlane/Preview.html
fastlane/test_output

# Mestro
.maestro/**/shared

# DuckDuckGo

Configuration/ExternalDeveloper.xcconfig
10 changes: 10 additions & 0 deletions .maestro/shared/set_internal_user.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
appId: com.duckduckgo.mobile.ios
---

- scroll
- scroll
- scroll
- assertVisible: Debug Menu
- tapOn: Debug Menu
- tapOn: Internal User State
- tapOn: Settings
10 changes: 10 additions & 0 deletions .maestro/shared/sync_create.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
appId: com.duckduckgo.mobile.ios
---

- assertVisible: Sync & Back Up
- tapOn: Sync & Back Up
- assertVisible: Sync & Back Up
- tapOn: Start Sync & Back Up
- assertVisible: All Set!
- tapOn: Next
- assertVisible: Save Recovery Code?
9 changes: 9 additions & 0 deletions .maestro/shared/sync_delete.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
appId: com.duckduckgo.mobile.ios
---

- assertVisible: Sync & Back Up
- scroll
- tapOn:
point: 50%,91% # TODO: Revisit after new setup flow has been implemented.
- assertVisible: Delete Server Data?
- tapOn: Delete Server Data
27 changes: 27 additions & 0 deletions .maestro/sync_tests/01_create_account.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
appId: com.duckduckgo.mobile.ios
tags:
- sync

---

- clearState
- launchApp
- runFlow:
when:
visible:
text: "Let’s Do It!"
index: 0
file: ../shared/onboarding.yaml

- tapOn: Settings
- runFlow:
file: ../shared/set_internal_user.yaml
- runFlow:
file: ../shared/sync_create.yaml


# Clean up
- tapOn: Not Now
- assertVisible: Sync & Back Up
- runFlow:
file: ../shared/sync_delete.yaml
42 changes: 42 additions & 0 deletions .maestro/sync_tests/02_login_account.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
appId: com.duckduckgo.mobile.ios
tags:
- sync

---

# Create an account
- clearState
- launchApp
- runFlow:
when:
visible:
text: "Let’s Do It!"
index: 0
file: ../shared/onboarding.yaml

- tapOn: Settings
- runFlow:
file: ../shared/set_internal_user.yaml
- runFlow:
file: ../shared/sync_create.yaml

# Copy Sync Code and Log Out
- tapOn: Copy Code
- tapOn: Not Now
- assertVisible: Sync & Back Up
- tapOn: Turn Off Sync & Back Up
- assertVisible: Turn Off Sync?
- tapOn: Remove

# Login
- assertVisible: Sync & Back Up
- tapOn: Enter Text Code
- tapOn: Paste
- assertVisible: Device Synced!
- tapOn: Next
- tapOn: Not Now

# Clean up
- assertVisible: Sync & Back Up
- runFlow:
file: ../shared/sync_delete.yaml
52 changes: 52 additions & 0 deletions .maestro/sync_tests/03_recover_account.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
appId: com.duckduckgo.mobile.ios
tags:
- sync

---

- clearState
- launchApp
- runFlow:
when:
visible:
text: "Let’s Do It!"
index: 0
file: ../shared/onboarding.yaml

# <WORKAROUND>This is a workaround to:
# - Put the code in the clipboard on Maestro Cloud
# - Prevent iOS from showing the Paste permission alert as Maestro can't handle it
- tapOn:
id: searchEntry
- inputText: ${CODE}
- repeat:
while:
notVisible: "Select All"
commands:
- tapOn:
id: searchEntry
- tapOn: Select All
- tapOn: Cut
- tapOn:
id: searchEntry
- longPressOn:
id: searchEntry
- tapOn: Paste
- tapOn: Cancel
#</WORKAROUND>

# Recover Account test
- tapOn: Settings
- runFlow:
file: ../shared/set_internal_user.yaml
- assertVisible: Sync & Back Up
- tapOn: Sync & Back Up
- assertVisible: Sync & Back up
- tapOn: Recover Your Data
- tapOn: Enter Text Code
- tapOn: Paste
- assertVisible: Device Synced!
- tapOn: Next
- tapOn: Not Now
- tapOn: Settings
- tapOn: Done
Loading

0 comments on commit b0da844

Please sign in to comment.