Skip to content

Commit 43b85c9

Browse files
committed
Merge branch 'release/5.216.0' into main
2 parents 666b9ab + e3889ad commit 43b85c9

File tree

399 files changed

+21524
-7956
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

399 files changed

+21524
-7956
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: 'Assign Android Release Task in Asana'
2+
description: 'Assigns the latest Asana Release task to the user who runs the workflow'
3+
inputs:
4+
task_name:
5+
description: 'The name of the task to search for'
6+
required: true
7+
asana_token:
8+
description: 'Asana Personal Access Token'
9+
required: true
10+
project_gid:
11+
description: 'Asana Project GID to search within'
12+
required: true
13+
username:
14+
description: 'The Github username to search for'
15+
required: true
16+
runs:
17+
using: 'composite'
18+
steps:
19+
- name: Find task in Asana and assign it to owner
20+
shell: bash
21+
run: |
22+
task_name="${{ inputs.task_name }}"
23+
asana_token="${{ inputs.asana_token }}"
24+
project_gid="${{ inputs.project_gid }}"
25+
username="${{ inputs.username }}"
26+
27+
# Make the API request to get tasks from the specified project
28+
response=$(curl -s -X GET "https://app.asana.com/api/1.0/projects/${project_gid}/tasks" \
29+
-H "Authorization: Bearer ${asana_token}")
30+
31+
# Check if the response contains any tasks that match the specified task name exactly
32+
task_id=$(echo "$response" | jq -r '.data[] | select(.name == "'"$task_name"'") | .gid')
33+
34+
if [ -z "$task_id" ]; then
35+
echo "No tasks with the exact name '$task_name' found in project GID '$project_gid'."
36+
exit 1
37+
else
38+
echo "Task ID for the task named '$task_name': $task_id"
39+
fi
40+
41+
asana_user_id=$(grep -E "^$username: " .github/actions/assign-release-task/github_asana_mapping.yml | awk -F': ' '{print $2}' | tr -d '"')
42+
43+
if [ -z "asana_user_id" ]; then
44+
echo "User $username not found."
45+
exit 1
46+
else
47+
echo "User ID for $username: $asana_user_id"
48+
fi
49+
50+
echo "Assigning task ID $task_id to user ID $asana_user_id"
51+
52+
# Assign the task to the user
53+
response=$(curl -s -X PUT "https://app.asana.com/api/1.0/tasks/${task_id}" \
54+
-H "Authorization: Bearer ${asana_token}" \
55+
-H "Content-Type: application/json" \
56+
-d "{\"data\": {\"assignee\": \"${asana_user_id}\"}}")
57+
58+
# Check if the assignment was successful
59+
status=$(echo $response | jq -r '.errors')
60+
61+
if [ "$status" == "null" ]; then
62+
echo "Task $task_id successfully assigned to user $asana_user_id."
63+
else
64+
echo "Failed to assign task: $status"
65+
exit 1
66+
fi
67+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
malmstein: "1157893581871899"
2+
marcosholgado: "1125189844075764"
3+
aitorvs: "1198194956790048"
4+
CDRussell: "608920331025313"
5+
anikiki: "1200581511061484"
6+
joshliebe: "1200204095365673"
7+
karlenDimla: "1201462763414791"
8+
cmonfortep: "1149059203346875"
9+
lmac012: "1205617573940213"
10+
nalcalag: "1201807753392396"
11+
CrisBarreiro: "1204920898013507"
12+
0nko: "1207418217763343"
13+
mikescamell: "1207908161520961"

.github/workflows/e2e-nightly-autofill.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
api-key: ${{ secrets.MOBILE_DEV_API_KEY }}
6161
name: ${{ github.sha }}
6262
app-file: apk/release.apk
63-
android-api-level: 30
63+
android-api-level: 33
6464
workspace: .maestro
6565
include-tags: autofillNoAuthTests
6666

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Create Android App Release Task
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
app-version:
7+
description: 'App Version for Release'
8+
required: true
9+
default: 'PLACEHOLDER'
10+
11+
env:
12+
ASANA_PAT: ${{ secrets.GH_ASANA_SECRET }}
13+
14+
concurrency:
15+
group: ${{ github.workflow }}-${{ github.ref }}
16+
cancel-in-progress: true
17+
18+
jobs:
19+
create_release_task:
20+
name: Create Android App Release Task in Asana
21+
runs-on: macos-latest
22+
23+
steps:
24+
- name: Checkout repository
25+
uses: actions/checkout@v4
26+
27+
- name: Check app-version value
28+
run: |
29+
if [ "${{ github.event.inputs.app-version }}" == "PLACEHOLDER" ]; then
30+
echo "Input value cannot be 'PLACEHOLDER'."
31+
exit 1
32+
else
33+
echo "Input value is valid: ${{ github.event.inputs.app-version }}"
34+
fi
35+
36+
- name: Install Release Bridge from Homebrew
37+
run: |
38+
brew tap cdrussell/aarb
39+
brew install aarb
40+
41+
- name: Create task in Asana
42+
run: |
43+
AndroidAsanaBridge version=${{ github.event.inputs.app-version }} action=createRelease,tagPendingTasks,addLinksToDescription,removePendingTasks
44+
45+
- name: Assign task to Github Actor
46+
id: assign-release-task
47+
uses: ./.github/actions/assign-release-task
48+
with:
49+
task_name: 'Android Release ${{ github.event.inputs.app-version }}'
50+
asana_token: ${{ secrets.GH_ASANA_SECRET }}
51+
project_gid: ${{ vars.GH_ANDROID_RELEASE_BOARD_PROJECT_ID }}
52+
username: ${{ github.actor }}
53+
54+
- name: Create Asana task when workflow failed
55+
if: ${{ failure() }}
56+
uses: duckduckgo/[email protected]
57+
with:
58+
asana-pat: ${{ secrets.GH_ASANA_SECRET }}
59+
asana-project: ${{ vars.GH_ANDROID_APP_PROJECT_ID }}
60+
asana-section: ${{ vars.GH_ANDROID_APP_INCOMING_SECTION_ID }}
61+
asana-task-name: GH Workflow Failure - Create Android App Release Task
62+
asana-task-description: The Create Android App Release Task workflow has failed. See https://github.com/duckduckgo/Android/actions/runs/${{ github.run_id }}
63+
action: 'create-asana-task'

.maestro/ads_preview_flows/1-_design-system-components.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ tags:
1818
text: "Set of components designed following our Design System"
1919
direction: DOWN
2020
- assertVisible: "Set of components designed following our Design System"
21-
- tapOn: "App Components Design Preview"
21+
- tapOn: "Android Design System Preview"
2222
- assertVisible: "COLOR PALETTE"
2323
- tapOn: "TYPOGRAPHY"
2424
- scrollUntilVisible:

.maestro/autofill/2_autofill_add_search_update_delete_creds.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,33 @@ tags:
2828
- assertNotVisible:
2929
id: view_menu_save
3030

31+
- scrollUntilVisible:
32+
element:
33+
id: usernameEditText
3134
- tapOn:
3235
id: usernameEditText
3336
- inputText: "user"
3437

3538
- assertVisible:
3639
id: view_menu_save
3740

41+
- scrollUntilVisible:
42+
element:
43+
id: passwordEditText
3844
- tapOn:
3945
id: passwordEditText
4046
- inputText: "123"
4147

48+
- scrollUntilVisible:
49+
element:
50+
id: domainEditText
4251
- tapOn:
4352
id: domainEditText
4453
- inputText: "${output.addLogins.domains[output.addLogins.counter]}"
4554

55+
- scrollUntilVisible:
56+
element:
57+
id: notesEditText
4658
- tapOn:
4759
id: notesEditText
4860
- inputText: "a note"
@@ -51,6 +63,9 @@ tags:
5163
id: view_menu_save
5264
retryTapIfNoChange: false
5365

66+
- scrollUntilVisible:
67+
element:
68+
text: "Last updated.*"
5469
- assertVisible: "Last updated.*"
5570

5671
- tapOn: "Navigate up"
@@ -59,15 +74,24 @@ tags:
5974
text: "Save and autofill passwords"
6075
- evalScript: ${output.addLogins.counter++}
6176

77+
- scrollUntilVisible:
78+
element:
79+
text: "#"
6280
- assertVisible:
6381
text: "#"
6482

83+
- scrollUntilVisible:
84+
element:
85+
text: "a.example.com"
6586
- assertVisible:
6687
text: "a.example.com"
6788

6889
- assertNotVisible:
6990
text: "https://a.example.com"
7091

92+
- scrollUntilVisible:
93+
element:
94+
text: "fill.dev"
7195
- assertVisible:
7296
text: "fill.dev"
7397

.maestro/autofill/3_autofill_prompted_to_save_creds_on_form.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
appId: com.duckduckgo.mobile.android
22
name: "Autofill: Prompted to save and update credentials on web form"
33
tags:
4-
- autofillNoAuthTests
4+
- autofillNoAuthTestsModernWebView
55
---
6-
# Pre-requisite: on an autofill-eligible device
6+
# Pre-requisite: on an autofill-eligible device, including having a modern WebView
77

88
- launchApp:
99
clearState: true

.maestro/autofill/steps/delete_logins.yaml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,35 @@ name: "Autofill: Delete credentials"
33
---
44
# Pre-requisite: the user is viewing the password manager screen with some saved passwords added by a previous test step, on an autofill-eligible device
55

6+
- scrollUntilVisible:
7+
element:
8+
text: "192.168.0.100"
69
- tapOn:
7-
id: "item_container"
8-
index: 1
10+
text: "192.168.0.100"
911
- tapOn: "More options"
1012
- tapOn: "Delete"
1113
- tapOn: "Delete"
1214

15+
- scrollUntilVisible:
16+
element:
17+
text: "a.example.com"
1318
- tapOn:
14-
id: "item_container"
15-
index: 1
19+
text: "a.example.com"
1620
- tapOn: "More options"
1721
- tapOn: "Delete"
1822
- tapOn: "Delete"
1923

24+
- scrollUntilVisible:
25+
element:
26+
text: "fill.dev"
2027
- tapOn:
21-
id: "item_container"
22-
index: 1
28+
text: "fill.dev"
2329
- tapOn: "More options"
2430
- tapOn: "Delete"
2531
- tapOn: "Delete"
2632

33+
- scrollUntilVisible:
34+
element:
35+
text: "No passwords saved yet"
2736
- assertVisible:
2837
text: "No passwords saved yet"

.maestro/autofill/steps/manual_update.yaml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,18 @@ name: "Autofill: Manually updating an existing credential"
33
---
44
# Pre-requisite: the user is viewing the password manager screen with some saved passwords added by a previous test step, on an autofill-eligible device
55

6+
- scrollUntilVisible:
7+
element:
8+
text: "a.example.com"
69
- tapOn:
7-
id: "item_container"
8-
index: "1"
10+
text: "a.example.com"
911

1012
- tapOn: "More options"
1113
- tapOn: "Edit"
1214

15+
- scrollUntilVisible:
16+
element:
17+
id: notesEditText
1318
- tapOn:
1419
id: notesEditText
1520

@@ -21,5 +26,8 @@ name: "Autofill: Manually updating an existing credential"
2126
id: view_menu_save
2227
retryTapIfNoChange: false
2328

29+
- scrollUntilVisible:
30+
element:
31+
text: "new note"
2432
- assertVisible: "new note"
2533
- tapOn: "Navigate up"

.maestro/autofill/steps/search_logins.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ name: "Autofill: Search credentials"
33
---
44
# Pre-requisite: the user is viewing the password manager screen with some saved passwords added by a previous test step, on an autofill-eligible device
55

6+
- runFlow:
7+
when:
8+
visible: "Sync & Back Up Your Passwords"
9+
commands:
10+
- tapOn: "No thanks"
11+
612
- tapOn:
713
id: searchLogins
814

0 commit comments

Comments
 (0)