Skip to content

Commit 4a9a7e9

Browse files
committed
Merge branch 'main' of github.com:Expensify/App into fix/input-numbers-jumping
2 parents c5aa89e + abdfb72 commit 4a9a7e9

File tree

160 files changed

+5059
-834
lines changed

Some content is hidden

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

160 files changed

+5059
-834
lines changed

.github/workflows/buildAndroid.yml

Lines changed: 44 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,14 @@ on:
2020
description: The pull request number associated with this build, if relevant.
2121
type: string
2222
required: false
23+
2324
outputs:
2425
AAB_FILE_NAME:
2526
value: ${{ jobs.build.outputs.AAB_FILE_NAME }}
2627
APK_FILE_NAME:
2728
value: ${{ jobs.build.outputs.APK_FILE_NAME }}
29+
APK_ARTIFACT_NAME:
30+
value: ${{ jobs.build.outputs.APK_ARTIFACT_NAME }}
2831

2932
workflow_dispatch:
3033
inputs:
@@ -56,6 +59,7 @@ jobs:
5659
outputs:
5760
AAB_FILE_NAME: ${{ steps.build.outputs.AAB_FILE_NAME }}
5861
APK_FILE_NAME: ${{ steps.build.outputs.APK_FILE_NAME }}
62+
APK_ARTIFACT_NAME: ${{ steps.build.outputs.APK_ARTIFACT_NAME }}
5963

6064
steps:
6165
- name: Checkout
@@ -118,42 +122,49 @@ jobs:
118122
} >> "$envFile"
119123
fi
120124
121-
- name: Build Android app
125+
- name: Build Android app (retryable)
126+
uses: nick-fields/retry@v3
122127
id: build
123-
run: |
124-
lane=''
125-
case '${{ inputs.type }}' in
126-
'release')
127-
lane='build';;
128-
'adhoc')
129-
lane='build_adhoc';;
130-
'e2e')
131-
lane='build_e2e';;
132-
'e2eDelta')
133-
lane='build_e2eDelta';;
134-
esac
135-
bundle exec fastlane android "$lane"
136-
137-
# Refresh environment variables from GITHUB_ENV that are updated when running fastlane
138-
# shellcheck disable=SC1090
139-
source "$GITHUB_ENV"
140-
141-
SHOULD_UPLOAD_SOURCEMAPS='false'
142-
if [ -f ./android/app/build/generated/sourcemaps/react/productionRelease/index.android.bundle.map ]; then
143-
SHOULD_UPLOAD_SOURCEMAPS='true'
144-
fi
145-
146-
{
147-
# aabPath and apkPath are environment varibles set within the Fastfile
148-
echo "AAB_PATH=$aabPath"
149-
echo "AAB_FILE_NAME=$(basename "$aabPath")"
150-
echo "APK_PATH=$apkPath"
151-
echo "APK_FILE_NAME=$(basename "$apkPath")"
152-
echo "SHOULD_UPLOAD_SOURCEMAPS=$SHOULD_UPLOAD_SOURCEMAPS"
153-
} >> "$GITHUB_OUTPUT"
154128
env:
155129
MYAPP_UPLOAD_STORE_PASSWORD: ${{ secrets.MYAPP_UPLOAD_STORE_PASSWORD }}
156130
MYAPP_UPLOAD_KEY_PASSWORD: ${{ secrets.MYAPP_UPLOAD_KEY_PASSWORD }}
131+
with:
132+
retry_on: error
133+
retry_wait_seconds: 60
134+
timeout_minutes: 60
135+
max_attempts: 3
136+
command: |
137+
lane=''
138+
case '${{ inputs.type }}' in
139+
'release')
140+
lane='build';;
141+
'adhoc')
142+
lane='build_adhoc';;
143+
'e2e')
144+
lane='build_e2e';;
145+
'e2eDelta')
146+
lane='build_e2eDelta';;
147+
esac
148+
bundle exec fastlane android "$lane"
149+
150+
# Refresh environment variables from GITHUB_ENV that are updated when running fastlane
151+
# shellcheck disable=SC1090
152+
source "$GITHUB_ENV"
153+
154+
SHOULD_UPLOAD_SOURCEMAPS='false'
155+
if [ -f ./android/app/build/generated/sourcemaps/react/productionRelease/index.android.bundle.map ]; then
156+
SHOULD_UPLOAD_SOURCEMAPS='true'
157+
fi
158+
159+
{
160+
# aabPath and apkPath are environment varibles set within the Fastfile
161+
echo "AAB_PATH=$aabPath"
162+
echo "AAB_FILE_NAME=$(basename "$aabPath")"
163+
echo "APK_PATH=$apkPath"
164+
echo "APK_FILE_NAME=$(basename "$apkPath")"
165+
echo "SHOULD_UPLOAD_SOURCEMAPS=$SHOULD_UPLOAD_SOURCEMAPS"
166+
echo "APK_ARTIFACT_NAME=${{ inputs.artifact-prefix }}android-artifact-apk" >> "$GITHUB_OUTPUT"
167+
} >> "$GITHUB_OUTPUT"
157168
158169
- name: Upload Android AAB artifact
159170
if: ${{ steps.build.outputs.AAB_PATH != '' }}
@@ -168,7 +179,7 @@ jobs:
168179
continue-on-error: true
169180
uses: actions/upload-artifact@v4
170181
with:
171-
name: ${{ inputs.artifact-prefix }}android-artifact-apk
182+
name: ${{ steps.build.outputs.APK_ARTIFACT_NAME }}
172183
path: ${{ steps.build.outputs.APK_PATH }}
173184

174185
- name: Upload Android sourcemaps artifact

.github/workflows/deployBlocker.yml

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,6 @@ jobs:
2929
escaped_title=$(echo "$GH_ISSUE_TITLE" | sed -e 's/&/\&amp;/g; s/</\&lt;/g; s/>/\&gt;/g; s/"/\&quot;/g; s/'"'"'/\&#039;/g; s/|/\&verbar;/g')
3030
echo "GH_ISSUE_TITLE=$escaped_title" >> "$GITHUB_ENV"
3131
32-
- name: 'Post the issue in the #expensify-open-source slack room'
33-
if: ${{ success() }}
34-
uses: 8398a7/action-slack@v3
35-
with:
36-
status: custom
37-
custom_payload: |
38-
{
39-
channel: '#expensify-open-source',
40-
attachments: [{
41-
color: "#DB4545",
42-
text: '💥 New Deploy Blocker: <${{ github.event.issue.html_url }}|${{ env.GH_ISSUE_TITLE }}>. If you have any idea which PR could be causing this, please comment in the issue.'
43-
}]
44-
}
45-
env:
46-
GITHUB_TOKEN: ${{ github.token }}
47-
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}
48-
4932
- name: Comment on deploy blocker
5033
run: |
5134
gh issue comment ${{ github.event.issue.number }} --body "$(cat <<'EOF'

.github/workflows/e2ePerformanceTests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ jobs:
125125
uses: actions/download-artifact@v4
126126
id: downloadBaselineAPK
127127
with:
128-
name: baseline-${{ needs.prep.outputs.BASELINE_VERSION }}-android-artifact-apk
128+
name: ${{ needs.buildBaseline.outputs.APK_ARTIFACT_NAME }}
129129
path: zip
130130
# Set github-token only if the baseline was built in this workflow run:
131131
github-token: ${{ needs.prep.outputs.BASELINE_ARTIFACT_WORKFLOW_ID && github.token }}
@@ -139,7 +139,7 @@ jobs:
139139
uses: actions/download-artifact@v4
140140
id: downloadDeltaAPK
141141
with:
142-
name: delta-${{ needs.prep.outputs.DELTA_REF }}-android-artifact-apk
142+
name: ${{ needs.buildDelta.outputs.APK_ARTIFACT_NAME }}
143143
path: zip
144144

145145
- name: Rename delta APK

android/app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.grad
1313
/* Fullstory settings */
1414
fullstory {
1515
org 'o-1WN56P-na1'
16-
enabledVariants 'all'
16+
enabledVariants 'production'
1717
logcatLevel 'debug'
1818
recordOnStart false
1919
}
@@ -110,8 +110,8 @@ android {
110110
minSdkVersion rootProject.ext.minSdkVersion
111111
targetSdkVersion rootProject.ext.targetSdkVersion
112112
multiDexEnabled rootProject.ext.multiDexEnabled
113-
versionCode 1009004604
114-
versionName "9.0.46-4"
113+
versionCode 1009004800
114+
versionName "9.0.48-0"
115115
// Supported language variants must be declared here to avoid from being removed during the compilation.
116116
// This also helps us to not include unnecessary language variants in the APK.
117117
resConfigs "en", "es"

desktop/package-lock.json

Lines changed: 15 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

desktop/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"dependencies": {
77
"electron-context-menu": "^2.3.0",
88
"electron-log": "^4.4.8",
9-
"electron-updater": "^6.3.5",
9+
"electron-updater": "^6.3.6",
1010
"mime-types": "^2.1.35",
1111
"node-machine-id": "^1.1.12"
1212
},

docs/articles/expensify-classic/connections/quickbooks-online/Quickbooks-Online-Troubleshooting.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ This error occurs when the account applied as a category to the expense in Expen
1818
5. Click on the pencil icon on the right to check if you have "In multiple accounts" selected:
1919
6. If "In multiple accounts" is selected, go to Chart of Accounts and click Edit for the account in question.
2020
7. Check the billable option and select an income account within your chart of accounts
21-
8. Sync your QuickBooks Online connection in Settings > Workspaces > [click workspace] > Connections.
21+
8. Sync your QuickBooks Online connection in Settings > Workspaces > [workspace name] > Connections.
2222
9. Open the report and click the Export to button and then the QuickBooks Online option.
2323

2424
# ExpensiError QBO046: Feature Not Included in Subscription
@@ -40,11 +40,11 @@ _Please note: Self Employed is not supported:_
4040

4141
**Why does this happen?**
4242

43-
QuickBooks Online requires all expenses exported from Expensify to use a category matching an account in your chart of accounts. If a category from another source is used, QuickBooks Online will reject the expense. This errors occurs when an expense on the report has a category applied that is not valid in QuickBooks Online.
43+
QuickBooks Online requires all expenses exported from Expensify to use a category matching an account in your chart of accounts. If a category from another source is used, QuickBooks Online will reject the expense. This error occurs when an expense on the report has a category applied that is not valid in QuickBooks Online.
4444

4545
## How to fix it
4646

47-
1. Sync your QuickBooks Online connection in Expensify from Settings > Workspaces > [click workspace] > Connections, and click the **Sync Now** button.
47+
1. Sync your QuickBooks Online connection in Expensify from Settings > Workspaces > [workspace name] > Connections, and click the **Sync Now** button.
4848
2. Review the expenses on the report. If any appear with a red _Category no longer valid_ violation, recategorize the expense until all expenses are violation-free.
4949
3. Click the **Export t**o button and then the **QuickBooks Online** option.
5050
- If you receive the same error, continue.
@@ -56,7 +56,7 @@ QuickBooks Online requires all expenses exported from Expensify to use a categor
5656

5757
**Why does this happen?**
5858

59-
This error occurs when you have an Employee Record set up with the employee's name, which prevents the Expensify integration from automatically creating the Vendor Record with the same name, since QuickBooks Online won't allow you to have an employee and vendor with the same name.
59+
This error occurs when you have an Employee Record set up with the employee's name. This prevents the Expensify integration from automatically creating the Vendor Record with the same name since QuickBooks Online won't allow you to have an employee and vendor with the same name.
6060

6161
## How to fix it
6262

@@ -67,7 +67,7 @@ There are two different ways you can resolve this error.
6767
1. Log into QuickBooks Online.
6868
2. Access the Employee Records for your submitters.
6969
3. Edit the name to differentiate them from the name they have on their account in Expensify.
70-
4. Sync your QuickBooks Online connection in Settings > Workspaces > [click workspace] > Connections.
70+
4. Sync your QuickBooks Online connection in Settings > Workspaces > [workspace name] > Connections.
7171
5. Open the report and click the Export to button and then the QuickBooks Online option.
7272

7373
**Option 2**:
@@ -85,7 +85,7 @@ This error occurs when you are exporting reimbursable expenses as Journal Entrie
8585

8686
There are three different ways you can resolve this error.
8787
- Select a different type of export for reimbursable expenses under Settings > Workspaces > [worksapce name] > Connections > Configure > Export tab.
88-
- Enable _Automatically Create Entities_ under Settings > Workspaces > [worksapce name] > Connections > Configure > Advanced to create vendor records automatically.
88+
- Enable _Automatically Create Entities_ under Settings > Workspaces > [workspace name] > Connections > Configure > Advanced to create vendor records automatically.
8989
- Manually create vendor records in QuickBooks Online for each employee.
9090

9191
# ExpensiError QBO099: Items marked as billable must have sales information checked
@@ -97,7 +97,7 @@ This error occurs when an Item category on an expense does not have sales inform
9797
## How to fix it
9898

9999
1. Log into QuickBooks Online.
100-
2. Navigate to to your items list.
100+
2. Navigate to your items list.
101101
3. Click **Edit** to the right of the item used on the report with the error. Here you will see an option to check either "Sales" or "Purchasing".
102102
4. Check the option for **Sales**.
103103
5. Select an income account.
@@ -146,12 +146,12 @@ This error occurs because the currency on the Vendor record in QuickBooks Online
146146

147147
1. Log into QuickBooks Online.
148148
2. Open the vendor record.
149-
3. Update the record to use with the correct A/P account, currency and an email matching their Expensify email.
150-
You can find the correct Vendor record by exporting your QuickBooks Online [vendor list](https://community.expensify.com/home/leaving?allowTrusted=1&target=https%3A%2F%2Fqbo.intuit.com%2Fapp%2Fvendors) to a spreadsheet (click the export icon on the right-hand side of the page), and search for the email address of the person who submitted the report.
149+
3. Update the record to use with the correct A/P account, currency, and email matching their Expensify email.
150+
You can find the correct Vendor record by exporting your QuickBooks Online vendor list to a spreadsheet (click the export icon on the right-hand side of the page), and search for the email address of the person who submitted the report.
151151

152152
If you have multiple Vendors with different currencies with the same email, Expensify is likely trying to export to the wrong one.
153153

154-
1. Try removing the email address from the vendor in QuickBooks Online you aren't trying to export to.
154+
1. Try removing the email address from the vendor in QuickBooks Online that you aren't trying to export to.
155155
2. Sync your QuickBooks Online connection in Settings > Workspaces > [workspace name] > Connections.
156156
3. Open the report and click the **Export to** button and then the **QuickBooks Online** option.
157157

@@ -160,21 +160,21 @@ If this still fails, you'll need to confirm that the A/P account selected in Exp
160160
1. Navigate to Settings > Workspaces > [workspace name] > Connections.
161161
2. Under the Exports tab check that both A/P accounts are the correct currency.
162162

163-
# Why are company card expenses exporting to the wrong account in QuickBooks Online?
163+
# Why are company card expenses exported to the wrong account in QuickBooks Online?
164164

165165
Multiple factors could be causing your company card transactions to export to the wrong place in your accounting system, but the best place to start is always the same.
166166

167167
1. First, confirm that the company cards have been mapped to the correct accounts in Settings > Domains > Company Cards > click the **Edit Export button** for the card to view the account.
168-
2. Next, confirm the expenses in question have been imported from the company card?
169-
- Only expenses that have the Card+Lock icon next to them will export according to the mapping settings that you configure in the domain settings.
168+
2. Next, confirm the expenses in question have been imported from the company card.
169+
- Only expenses with the Card+Lock icon next to them will export according to the mapping settings that you configure in the domain settings.
170170

171171
It’s important to note that expenses imported from a card linked at the individual account level, expenses created from a SmartScanned receipt, and manually created cash expenses will export to the default bank account selected in your connection's configuration settings.
172172

173173
**Is the report exporter a domain admin?**
174174

175175
The user exporting the report must be a domain admin. You can check the history and comment section at the bottom of the report to see who exported the report.
176176

177-
If your reports are being exported automatically by Concierge, the user listed as the Preferred Exporter under Settings > Workspaces > [workspaces name] > Connections > click **Configure** must be a domain admin as well.
177+
If your reports are being exported automatically by Concierge, the user listed as the Preferred Exporter under Settings > Workspaces > [workspace name] > Connections > click **Configure** must also be a domain admin.
178178

179179
If the report exporter is not a domain admin, all company card expenses will export to the bank account set in Settings > Workspaces > [workspace name] > Connections > click **Configure** for non-reimbursable expenses.
180180

0 commit comments

Comments
 (0)