Skip to content

Commit 307da2a

Browse files
committed
Merge remote-tracking branch 'origin/master' into UpdateDataTypeFix3
2 parents 0708d31 + b00b54b commit 307da2a

22 files changed

+1821
-1271
lines changed

.github/workflows/test-all.yml

Lines changed: 137 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@ on:
77
env:
88
# make chromedriver detect installed Chrome version and download the corresponding driver
99
DETECT_CHROMEDRIVER_VERSION: true
10+
artifactRetentionDays: 2
1011

1112
jobs:
12-
test:
13-
name: Node.js and Browser (Chrome) Tests
13+
build:
14+
name: Build the SDK
1415
runs-on: ubuntu-latest
15-
1616
steps:
17-
# install Chrome first, so the correct version of webdriver can be installed by chromedriver when setting up the repo
17+
# Install Chrome so the correct version of webdriver can be installed by chromedriver when
18+
# setting up the repo. This must be done to build and execute Auth properly.
1819
- name: install Chrome stable
1920
# Install Chrome version 110.0.5481.177-1 as some Auth tests start to fail on version 111.
2021
# Temporary: Auth team will explore what's going wrong with the auth tests.
@@ -36,11 +37,142 @@ jobs:
3637
yarn
3738
- name: yarn build
3839
run: yarn build
40+
- name: Archive build
41+
if: ${{ !cancelled() }}
42+
run: |
43+
tar -cf build.tar .
44+
gzip build.tar
45+
- name: Upload build archive
46+
if: ${{ !cancelled() }}
47+
uses: actions/upload-artifact@v3
48+
with:
49+
name: build.tar.gz
50+
path: build.tar.gz
51+
retention-days: ${{ env.artifactRetentionDays }}
52+
53+
# Auth and Firestore are built and executed in their own jobs in an attempt to reduce flakiness.
54+
test-the-rest:
55+
name: (bulk) Node.js and Browser (Chrome) Tests
56+
needs: build
57+
runs-on: ubuntu-latest
58+
steps:
59+
# install Chrome first, so the correct version of webdriver can be installed by chromedriver when setting up the repo
60+
- name: install Chrome stable
61+
run: |
62+
sudo apt-get update
63+
sudo apt-get install google-chrome-stable
64+
- name: Download build archive
65+
uses: actions/download-artifact@v3
66+
with:
67+
name: build.tar.gz
68+
- name: Unzip build artifact
69+
run: tar xf build.tar.gz
70+
- name: Set up Node (16)
71+
uses: actions/setup-node@v3
72+
with:
73+
node-version: 16.x
74+
- name: Bump Node memory limit
75+
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
76+
- name: Test setup and yarn install
77+
run: |
78+
cp config/ci.config.json config/project.json
79+
yarn
80+
- name: Set start timestamp env var
81+
run: echo "FIREBASE_CI_TEST_START_TIME=$(date +%s)" >> $GITHUB_ENV
82+
- name: Run unit tests
83+
# Ignore auth and firestore since they're handled in their own separate jobs.
84+
run: |
85+
xvfb-run yarn lerna run --ignore '{firebase-messaging-integration-test,@firebase/auth*,@firebase/firestore*,firebase-firestore-integration-test}' --concurrency 4 test:ci
86+
node scripts/print_test_logs.js
87+
env:
88+
FIREBASE_TOKEN: ${{ secrets.FIREBASE_CLI_TOKEN }}
89+
- name: Generate coverage file
90+
run: yarn ci:coverage
91+
- name: Run coverage
92+
uses: coverallsapp/github-action@master
93+
with:
94+
github-token: ${{ secrets.GITHUB_TOKEN }}
95+
path-to-lcov: ./lcov-all.info
96+
continue-on-error: true
97+
98+
test-auth:
99+
name: (Auth) Node.js and Browser (Chrome) Tests
100+
needs: build
101+
runs-on: ubuntu-latest
102+
steps:
103+
# install Chrome so the correct version of webdriver can be installed by chromedriver when setting up the repo
104+
- name: install Chrome stable
105+
# Install Chrome version 110.0.5481.177-1 as some Auth tests start to fail on version 111.
106+
# Temporary: Auth team will explore what's going wrong with the auth tests.
107+
run: |
108+
sudo apt-get update
109+
sudo apt-get install wget
110+
sudo wget http://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_110.0.5481.177-1_amd64.deb
111+
sudo apt-get install -f ./google-chrome-stable_110.0.5481.177-1_amd64.deb --allow-downgrades
112+
- name: Download build archive
113+
uses: actions/download-artifact@v3
114+
with:
115+
name: build.tar.gz
116+
- name: Unzip build artifact
117+
run: tar xf build.tar.gz
118+
- name: Set up Node (16)
119+
uses: actions/setup-node@v3
120+
with:
121+
node-version: 16.x
122+
- name: Bump Node memory limit
123+
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
124+
- name: Test setup and yarn install
125+
run: |
126+
cp config/ci.config.json config/project.json
127+
yarn
128+
- name: Set start timestamp env var
129+
run: echo "FIREBASE_CI_TEST_START_TIME=$(date +%s)" >> $GITHUB_ENV
130+
- name: Run unit tests
131+
run: |
132+
xvfb-run yarn lerna run --concurrency 4 test:ci --scope '@firebase/auth*'
133+
node scripts/print_test_logs.js
134+
env:
135+
FIREBASE_TOKEN: ${{ secrets.FIREBASE_CLI_TOKEN }}
136+
- name: Generate coverage file
137+
run: yarn ci:coverage
138+
- name: Run coverage
139+
uses: coverallsapp/github-action@master
140+
with:
141+
github-token: ${{ secrets.GITHUB_TOKEN }}
142+
path-to-lcov: ./lcov-all.info
143+
continue-on-error: true
144+
145+
test-firestore:
146+
name: (Firestore) Node.js and Browser (Chrome) Tests
147+
needs: build
148+
runs-on: ubuntu-latest
149+
steps:
150+
# install Chrome so the correct version of webdriver can be installed by chromedriver when setting up the repo
151+
- name: install Chrome stable
152+
run: |
153+
sudo apt-get update
154+
sudo apt-get install google-chrome-stable
155+
- name: Download build archive
156+
uses: actions/download-artifact@v3
157+
with:
158+
name: build.tar.gz
159+
- name: Unzip build artifact
160+
run: tar xf build.tar.gz
161+
- name: Set up Node (16)
162+
uses: actions/setup-node@v3
163+
with:
164+
node-version: 16.x
165+
- name: Bump Node memory limit
166+
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
167+
- name: Test setup and yarn install
168+
run: |
169+
cp config/ci.config.json config/project.json
170+
yarn
39171
- name: Set start timestamp env var
40172
run: echo "FIREBASE_CI_TEST_START_TIME=$(date +%s)" >> $GITHUB_ENV
41173
- name: Run unit tests
42174
run: |
43-
xvfb-run yarn test:ci
175+
xvfb-run yarn lerna run --concurrency 4 test:ci --scope '{@firebase/firestore*,firebase-firestore-integration-test}'
44176
node scripts/print_test_logs.js
45177
env:
46178
FIREBASE_TOKEN: ${{ secrets.FIREBASE_CLI_TOKEN }}

packages/firestore-compat/test/transactions.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ apiDescribe('Database transactions', (persistence: boolean) => {
241241
.run(get, set1, set2)
242242
.expectDoc({ foo: 'bar2' });
243243
});
244-
});
244+
}).timeout(10000);
245245

246246
it('runs transactions after getting non-existent document', async () => {
247247
return integrationHelpers.withTestDb(persistence, async db => {
@@ -280,7 +280,7 @@ apiDescribe('Database transactions', (persistence: boolean) => {
280280
.run(get, set1, set2)
281281
.expectDoc({ foo: 'bar2' });
282282
});
283-
});
283+
}).timeout(10000);
284284

285285
it('runs transactions on existing document', async () => {
286286
return integrationHelpers.withTestDb(persistence, async db => {

0 commit comments

Comments
 (0)