Skip to content

Commit 60d4110

Browse files
committed
Merge branch 'main' of https://github.com/Expensify/App into feat/#Expensify#23229-linking
2 parents adb4162 + 485a851 commit 60d4110

File tree

133 files changed

+2835
-927
lines changed

Some content is hidden

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

133 files changed

+2835
-927
lines changed

.github/actions/composite/setupGitForOSBotifyApp/action.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ runs:
4747

4848
- name: Generate a token
4949
id: generateToken
50-
uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a
50+
uses: actions/create-github-app-token@9d97a4282b2c51a2f4f0465b9326399f53c890d4
5151
with:
52-
app_id: ${{ inputs.OS_BOTIFY_APP_ID }}
53-
private_key: ${{ inputs.OS_BOTIFY_PRIVATE_KEY }}
52+
app-id: ${{ inputs.OS_BOTIFY_APP_ID }}
53+
private-key: ${{ inputs.OS_BOTIFY_PRIVATE_KEY }}

.github/workflows/e2ePerformanceTests.yml

+60-29
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,9 @@ jobs:
125125
steps:
126126
- uses: actions/checkout@v3
127127

128+
- name: Setup Node
129+
uses: Expensify/App/.github/actions/composite/setupNode@main
130+
128131
- name: Make zip directory for everything to send to AWS Device Farm
129132
run: mkdir zip
130133

@@ -137,7 +140,7 @@ jobs:
137140

138141
# The downloaded artifact will be a file named "app-e2e-release.apk" so we have to rename it
139142
- name: Rename baseline APK
140-
run: mv "${{steps.downloadBaselineAPK.outputs.download-path}}/app-e2e-release.apk" "${{steps.downloadBaselineAPK.outputs.download-path}}/app-e2eRelease-baseline.apk"
143+
run: mv "${{steps.downloadBaselineAPK.outputs.download-path}}/app-e2e-release.apk" "${{steps.downloadBaselineAPK.outputs.download-path}}/app-e2eRelease-main.apk"
141144

142145
- name: Download delta APK
143146
uses: actions/download-artifact@e9ef242655d12993efdcda9058dee2db83a2cb9b
@@ -147,7 +150,7 @@ jobs:
147150
path: zip
148151

149152
- name: Rename delta APK
150-
run: mv "${{steps.downloadDeltaAPK.outputs.download-path}}/app-e2e-release.apk" "${{steps.downloadDeltaAPK.outputs.download-path}}/app-e2eRelease-compare.apk"
153+
run: mv "${{steps.downloadDeltaAPK.outputs.download-path}}/app-e2e-release.apk" "${{steps.downloadDeltaAPK.outputs.download-path}}/app-e2eRelease-delta.apk"
151154

152155
- name: Copy e2e code into zip folder
153156
run: cp -r tests/e2e zip
@@ -162,44 +165,72 @@ jobs:
162165
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
163166
AWS_REGION: us-west-2
164167

165-
- name: Schedule AWS Device Farm test run
168+
- name: Schedule AWS Device Farm test run on main branch
166169
uses: realm/aws-devicefarm/test-application@7b9a91236c456c97e28d384c9e476035d5ea686b
170+
id: schedule-awsdf-main
167171
with:
168172
name: App E2E Performance Regression Tests
169173
project_arn: ${{ secrets.AWS_PROJECT_ARN }}
170174
device_pool_arn: ${{ secrets.AWS_DEVICE_POOL_ARN }}
171-
app_file: zip/app-e2eRelease-baseline.apk
175+
app_file: zip/app-e2eRelease-main.apk
172176
app_type: ANDROID_APP
173177
test_type: APPIUM_NODE
174178
test_package_file: App.zip
175179
test_package_type: APPIUM_NODE_TEST_PACKAGE
176-
test_spec_file: tests/e2e/TestSpec.yml
180+
test_spec_file: tests/e2e/TestSpecMain.yml
177181
test_spec_type: APPIUM_NODE_TEST_SPEC
178182
remote_src: false
179183
file_artifacts: Customer Artifacts.zip
184+
log_artifacts: debug.log
180185
cleanup: true
181186

182-
- name: Unzip AWS Device Farm results
183-
if: ${{ always() }}
184-
run: unzip "Customer Artifacts.zip"
185-
186-
- name: Print AWS Device Farm run results
187-
if: ${{ always() }}
188-
run: cat "./Host_Machine_Files/\$WORKING_DIRECTORY/output.md"
189-
190-
- name: Print AWS Device Farm verbose run results
191-
if: ${{ always() && runner.debug != null && fromJSON(runner.debug) }}
192-
run: cat "./Host_Machine_Files/\$WORKING_DIRECTORY/debug.log"
193-
194-
# TODO: Once tests are more reliable we should uncomment this
195-
# - name: Check if test failed, if so post the results and add the DeployBlocker label
196-
# run: |
197-
# if grep -q '🔴' ./Host_Machine_Files/\$WORKING_DIRECTORY/output.md; then
198-
# gh pr edit ${{ inputs.PR_NUMBER }} --add-label DeployBlockerCash
199-
# gh pr comment ${{ inputs.PR_NUMBER }} -F ./Host_Machine_Files/\$WORKING_DIRECTORY/output.md
200-
# gh pr comment ${{ inputs.PR_NUMBER }} -b "@Expensify/mobile-deployers 📣 Please look into this performance regression as it's a deploy blocker."
201-
# else
202-
# echo '✅ no performance regression detected'
203-
# fi
204-
# env:
205-
# GITHUB_TOKEN: ${{ github.token }}
187+
- name: Print logs if run failed
188+
if: failure()
189+
run: |
190+
echo ${{ steps.schedule-awsdf-main.outputs.data }}
191+
unzip "Customer Artifacts.zip" -d mainResults
192+
cat ./mainResults/Host_Machine_Files/\$WORKING_DIRECTORY/debug.log
193+
194+
- name: Unzip AWS Device Farm main results
195+
run: unzip "Customer Artifacts.zip" -d mainResults
196+
197+
- name: Delete Customer Artifacts.zip
198+
run: rm "Customer Artifacts.zip"
199+
200+
- name: Schedule AWS Device Farm test run on delta branch
201+
uses: realm/aws-devicefarm/test-application@7b9a91236c456c97e28d384c9e476035d5ea686b
202+
with:
203+
name: App E2E Performance Regression Tests
204+
project_arn: ${{ secrets.AWS_PROJECT_ARN }}
205+
device_pool_arn: ${{ secrets.AWS_DEVICE_POOL_ARN }}
206+
app_file: zip/app-e2eRelease-delta.apk
207+
app_type: ANDROID_APP
208+
test_type: APPIUM_NODE
209+
test_package_file: App.zip
210+
test_package_type: APPIUM_NODE_TEST_PACKAGE
211+
test_spec_file: tests/e2e/TestSpecDelta.yml
212+
test_spec_type: APPIUM_NODE_TEST_SPEC
213+
remote_src: false
214+
file_artifacts: Customer Artifacts.zip
215+
cleanup: true
216+
217+
- name: Unzip AWS Device Farm delta results
218+
run: unzip "Customer Artifacts.zip" -d deltaResults
219+
220+
- name: Compare results
221+
run: node tests/e2e/merge.js --mainPath ./mainResults/Host_Machine_Files/\$WORKING_DIRECTORY/main.json --deltaPath ./deltaResults//Host_Machine_Files/\$WORKING_DIRECTORY/delta.json --outputPath ./output.md
222+
223+
- name: Print results
224+
run: cat "./output.md"
225+
226+
- name: Check if test failed, if so post the results and add the DeployBlocker label
227+
run: |
228+
if grep -q '🔴' ./output.md; then
229+
gh pr edit ${{ inputs.PR_NUMBER }} --add-label DeployBlockerCash
230+
gh pr comment ${{ inputs.PR_NUMBER }} -F ./output.md
231+
gh pr comment ${{ inputs.PR_NUMBER }} -b "@Expensify/mobile-deployers 📣 Please look into this performance regression as it's a deploy blocker."
232+
else
233+
echo '✅ no performance regression detected'
234+
fi
235+
env:
236+
GITHUB_TOKEN: ${{ github.token }}

android/app/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ android {
9090
minSdkVersion rootProject.ext.minSdkVersion
9191
targetSdkVersion rootProject.ext.targetSdkVersion
9292
multiDexEnabled rootProject.ext.multiDexEnabled
93-
versionCode 1001038900
94-
versionName "1.3.89-0"
93+
versionCode 1001039001
94+
versionName "1.3.90-1"
9595
}
9696

9797
flavorDimensions "default"

assets/css/pdf.css

+1-6
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,7 @@
1111
border-image: url(../images/shadow.png) 9 9 repeat;
1212
background-color: rgba(255, 255, 255, 1);
1313
}
14-
.react-pdf__message {
15-
position: absolute;
16-
left: 50%;
17-
top: 50%;
18-
transform: translate(-50%, -50%);
19-
}
14+
2015
.react-pdf__Page__annotations {
2116
height: 0;
2217
}
Loading

config/webpack/webpack.common.js

+2
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ const webpackConfig = ({envFile = '.env', platform = 'web'}) => ({
8383
{from: 'web/favicon-unread.png'},
8484
{from: 'web/og-preview-image.png'},
8585
{from: 'web/apple-touch-icon.png'},
86+
{from: 'assets/images/expensify-app-icon.svg'},
87+
{from: 'web/manifest.json'},
8688
{from: 'assets/css', to: 'css'},
8789
{from: 'assets/fonts/web', to: 'fonts'},
8890
{from: 'node_modules/react-pdf/dist/esm/Page/AnnotationLayer.css', to: 'css/AnnotationLayer.css'},

contributingGuides/OFFLINE_UX.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ This pattern greys out the submit button on a form and does not allow the form t
104104

105105
**How to implement:** Use the `<FormAlertWithSubmitButton/>` component. This pattern should use the `API.write()` method.
106106

107-
**Example:** Inviting new memebers to a workspace.
107+
**Example:** Inviting new members to a workspace.
108108

109109
### D - Full Page Blocking UI Pattern
110110
This pattern blocks the user from interacting with an entire page.

0 commit comments

Comments
 (0)