Skip to content

Commit c0df294

Browse files
authored
chore(deps): More tests & mark rxjs 7 peer (angular#2998)
* Mark rxjs 7 peer * Flush out the matrix tests * Add canary tests Fixes angular#2980
1 parent 197e3ff commit c0df294

File tree

7 files changed

+149
-143
lines changed

7 files changed

+149
-143
lines changed

.github/workflows/test.yml

+114-116
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ on:
1212
release:
1313
types:
1414
- published
15+
schedule:
16+
- cron: 0 0 * * 1-5
1517

1618
jobs:
1719
build:
@@ -29,10 +31,12 @@ jobs:
2931
id: node_modules_cache
3032
with:
3133
path: ./node_modules
32-
key: ${{ runner.os }}-14-9-9-node_modules-${{ hashFiles('yarn.lock') }}
34+
key: ${{ runner.os }}-14-9-9-6-node_modules-${{ hashFiles('yarn.lock') }}
3335
restore-keys: |
34-
${{ runner.os }}-14-9-9-node_modules-
35-
${{ runner.os }}-14-9-
36+
${{ runner.os }}-14-12-9-9-6-node_modules-
37+
${{ runner.os }}-14-12-9-9-
38+
${{ runner.os }}-14-12-9-
39+
${{ runner.os }}-14-12-
3640
${{ runner.os }}-14-
3741
- name: Yarn offline cache
3842
if: steps.node_modules_cache.outputs.cache-hit != 'true'
@@ -62,12 +66,14 @@ jobs:
6266
needs: build
6367
strategy:
6468
matrix:
65-
os: [ ubuntu-latest, macos-latest, windows-latest]
69+
os: [ ubuntu-latest, macos-latest, windows-latest ]
6670
node: ["12", "14", "16"]
6771
firebase: ["9"]
6872
firebaseTools: ["9"]
73+
rxjs: ["6", "7"]
74+
ng: ["12"]
6975
fail-fast: false
70-
name: Test firebase@${{ matrix.firebase }} firebase-tools@${{ matrix.firebaseTools }} on ${{ matrix.os }} Node.js ${{ matrix.node }}
76+
name: Test firebase@${{ matrix.firebase }} firebase-tools@${{ matrix.firebaseTools }} ng@${{ matrix.ng }} rxjs@${{ matrix.rxjs}} on ${{ matrix.os }} Node.js ${{ matrix.node }}
7177
steps:
7278
- name: Checkout
7379
uses: actions/checkout@v2
@@ -81,49 +87,68 @@ jobs:
8187
uses: actions/cache@v2
8288
with:
8389
path: ./node_modules
84-
key: ${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-node_modules-${{ hashFiles('yarn.lock') }}
90+
key: ${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-${{ matrix.rxjs }}-node_modules-${{ hashFiles('yarn.lock') }}
8591
restore-keys: |
86-
${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-node_modules-
87-
${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-
92+
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-${{ matrix.rxjs }}-node_modules-
93+
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-
94+
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-
95+
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-
8896
${{ runner.os }}-${{ matrix.node }}-
8997
- name: Yarn offline cache
90-
if: steps.node_modules_cache.outputs.cache-hit != 'true'
9198
uses: actions/cache@v2
9299
with:
93100
path: ~/.npm-packages-offline-cache
94101
key: yarn-offline-${{ hashFiles('**/yarn.lock') }}
95102
restore-keys: yarn-offline
96-
- name: Install deps
97-
if: steps.node_modules_cache.outputs.cache-hit != 'true'
103+
- name: Configure yarn
98104
run: |
99105
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
100-
yarn install --frozen-lockfile --prefer-offline --ignore-engines
101-
yarn add firebase@${{ matrix.firebase }} --prefer-offline --ignore-engines
102-
yarn add firebase-tools@${{ matrix.firebaseTools }} --prefer-offline --ignore-engines
106+
yarn config set ignore-engines true
107+
- name: Yarn install
108+
if: steps.node_modules_cache.outputs.cache-hit != 'true'
109+
run: yarn install --frozen-lockfile --prefer-offline
110+
- name: Bump deps
111+
run: |
112+
yarn add firebase@${{ matrix.firebase }}
113+
yarn add firebase-tools@${{ matrix.firebaseTools }}
114+
yarn add rxjs@${{ matrix.rxjs }} --prefer-offline
115+
npx ng update @angular/core@${{ matrix.ng }} @angular/cli@${{ matrix.ng }} --allow-dirty --force || true
103116
- name: Firebase emulator cache
104117
uses: actions/cache@v2
105118
with:
106119
path: ~/.cache/firebase/emulators
107120
key: firebase_emulators
108-
- name: 'Download Artifacts'
121+
- name: Download Artifacts
109122
uses: actions/download-artifact@v2
110-
- name: Run tests
123+
- name: Relocate Artifacts
124+
run: mv angularfire-${{ github.run_id }} dist
125+
- name: Test node
111126
run: |
112-
mv angularfire-${{ github.run_id }} dist
127+
yarn build:jasmine
113128
yarn test:node
129+
- name: Test browser
130+
if: matrix.os == 'ubuntu-latest' && matrix.node == '14' && matrix.firebaseTools == '9'
131+
run: yarn test:chrome-headless
114132

115-
contribute:
133+
# TODO dry up
134+
canary:
116135
runs-on: ${{ matrix.os }}
117-
name: Contribute ${{ matrix.os }} on Node.js ${{ matrix.node }}
136+
if: ${{ github.ref == 'refs/heads/master' }}
137+
needs: [ 'build', 'test' ]
118138
strategy:
119139
matrix:
120-
os: [ ubuntu-latest, macos-latest, windows-latest ]
121-
node: ["12", "14", "16"]
140+
os: [ ubuntu-latest ]
141+
node: ["14"]
142+
firebase: ["9", "canary"]
143+
firebaseTools: ["9"]
144+
rxjs: ["7"]
145+
ng: ["12", "next"]
122146
exclude:
123-
# we build with this combination, safely skip
124-
- os: ubuntu-latest
125-
node: 14
147+
# standard configuration
148+
- firebase: 9
149+
ng: 12
126150
fail-fast: false
151+
name: Canary firebase@${{ matrix.firebase }} firebase-tools@${{ matrix.firebaseTools }} ng@${{ matrix.ng }} rxjs@${{ matrix.rxjs}} on ${{ matrix.os }} Node.js ${{ matrix.node }}
127152
steps:
128153
- name: Checkout
129154
uses: actions/checkout@v2
@@ -133,64 +158,85 @@ jobs:
133158
node-version: ${{ matrix.node }}
134159
check-latest: true
135160
- name: node_modules cache
136-
uses: actions/cache@v2
137161
id: node_modules_cache
162+
uses: actions/cache@v2
138163
with:
139164
path: ./node_modules
140-
key: ${{ runner.os }}-${{ matrix.node }}-9-9-node_modules-${{ hashFiles('yarn.lock') }}
165+
key: ${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-${{ matrix.rxjs }}-node_modules-${{ hashFiles('yarn.lock') }}
141166
restore-keys: |
142-
${{ runner.os }}-${{ matrix.node }}-9-9-node_modules-
143-
${{ runner.os }}-${{ matrix.node }}-9-
167+
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-${{ matrix.rxjs }}-node_modules-
168+
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-
169+
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-
170+
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-
144171
${{ runner.os }}-${{ matrix.node }}-
145172
- name: Yarn offline cache
146-
if: steps.node_modules_cache.outputs.cache-hit != 'true'
147173
uses: actions/cache@v2
148174
with:
149175
path: ~/.npm-packages-offline-cache
150176
key: yarn-offline-${{ hashFiles('**/yarn.lock') }}
151177
restore-keys: yarn-offline
152-
- name: Install deps
153-
if: steps.node_modules_cache.outputs.cache-hit != 'true'
178+
- name: Configure yarn
154179
run: |
155180
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
156-
yarn install --frozen-lockfile --prefer-offline --ignore-engines
157-
- name: Build
158-
run: yarn build
159-
# Seeing some flakes on windows, skip for now
160-
# https://github.com/angular/angularfire/runs/3593478229
161-
# not just windows
162-
# https://github.com/angular/angularfire/runs/3593535123
163-
# - name: Test
164-
# if: runner.os != 'windows'
165-
# run: yarn test
181+
yarn config set ignore-engines true
182+
- name: Yarn install
183+
if: steps.node_modules_cache.outputs.cache-hit != 'true'
184+
run: yarn install --frozen-lockfile --prefer-offline
185+
- name: Bump deps
186+
run: |
187+
yarn add firebase@${{ matrix.firebase }}
188+
yarn add firebase-tools@${{ matrix.firebaseTools }}
189+
yarn add rxjs@${{ matrix.rxjs }} --prefer-offline
190+
npx ng update @angular/core@${{ matrix.ng }} @angular/cli@${{ matrix.ng }} --allow-dirty --force || true
191+
- name: Firebase emulator cache
192+
uses: actions/cache@v2
193+
with:
194+
path: ~/.cache/firebase/emulators
195+
key: firebase_emulators
196+
- name: Download Artifacts
197+
uses: actions/download-artifact@v2
198+
- name: Relocate Artifacts
199+
run: mv angularfire-${{ github.run_id }} dist
200+
- name: Test node
201+
run: |
202+
yarn build:jasmine
203+
yarn test:node
204+
- name: Test browser
205+
if: matrix.os == 'ubuntu-latest' && matrix.node == '14' && matrix.firebaseTools == '9'
206+
run: yarn test:chrome-headless
166207

167-
headless:
168-
runs-on: ubuntu-latest
169-
needs: build
170-
name: Test firebase@${{ matrix.firebase }} on ${{ matrix.browser }}
208+
contribute:
209+
runs-on: ${{ matrix.os }}
210+
name: Contribute ${{ matrix.os }} on Node.js ${{ matrix.node }}
171211
strategy:
172212
matrix:
173-
firebase: ["9"]
174-
browser: ["chrome", "firefox"]
213+
os: [ ubuntu-latest, macos-latest, windows-latest ]
214+
node: ["12", "14", "16"]
215+
exclude:
216+
# we build with this combination, safely skip
217+
- os: ubuntu-latest
218+
node: 14
175219
fail-fast: false
176220
steps:
177221
- name: Checkout
178222
uses: actions/checkout@v2
179223
- name: Setup node
180224
uses: actions/setup-node@v2-beta
181225
with:
182-
node-version: '14'
226+
node-version: ${{ matrix.node }}
183227
check-latest: true
184228
- name: node_modules cache
185-
id: node_modules_cache
186229
uses: actions/cache@v2
230+
id: node_modules_cache
187231
with:
188232
path: ./node_modules
189-
key: ${{ runner.os }}-14-${{ matrix.firebase }}-9-node_modules-${{ hashFiles('yarn.lock') }}
233+
key: ${{ runner.os }}-${{ matrix.node }}-12-9-9-6-node_modules-${{ hashFiles('yarn.lock') }}
190234
restore-keys: |
191-
${{ runner.os }}-14-${{ matrix.firebase }}-9-node_modules-
192-
${{ runner.os }}-14-9-
193-
${{ runner.os }}-14-
235+
${{ runner.os }}-${{ matrix.node }}-12-9-9-6-node_modules-
236+
${{ runner.os }}-${{ matrix.node }}-12-9-9-
237+
${{ runner.os }}-${{ matrix.node }}-12-9-
238+
${{ runner.os }}-${{ matrix.node }}-12-
239+
${{ runner.os }}-${{ matrix.node }}-
194240
- name: Yarn offline cache
195241
if: steps.node_modules_cache.outputs.cache-hit != 'true'
196242
uses: actions/cache@v2
@@ -202,75 +248,27 @@ jobs:
202248
if: steps.node_modules_cache.outputs.cache-hit != 'true'
203249
run: |
204250
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
251+
yarn config set ignore-engines true
205252
yarn install --frozen-lockfile --prefer-offline
206-
yarn add firebase@${{ matrix.firebase }} --prefer-offline
207-
- name: Firebase emulator cache
208-
uses: actions/cache@v2
209-
with:
210-
path: ~/.cache/firebase/emulators
211-
key: firebase_emulators
212-
- name: 'Download Artifacts'
213-
uses: actions/download-artifact@v2
214-
- name: Run tests
215-
run: |
216-
mv angularfire-${{ github.run_id }} dist
217-
yarn test:${{ matrix.browser }}-headless
253+
- name: Build
254+
run: yarn build
255+
- name: Test
256+
# TODO figure out why tests are flaking
257+
continue-on-error: true
258+
run: yarn test
218259

219-
# safari:
220-
# runs-on: macos-latest
221-
# needs: build
222-
# name: Test firebase@${{ matrix.firebase }} on safari
223-
# strategy:
224-
# matrix:
225-
# firebase: ["beta"]
226-
# fail-fast: false
227-
# steps:
228-
# - name: Checkout
229-
# uses: actions/checkout@v2
230-
# - name: Setup node
231-
# uses: actions/setup-node@v2-beta
232-
# with:
233-
# node-version: '14'
234-
# check-latest: true
235-
# - name: node_modules cache
236-
# id: node_modules_cache
237-
# uses: actions/cache@v2
238-
# with:
239-
# path: ./node_modules
240-
# key: ${{ runner.os }}-14-${{ matrix.firebase }}-9-node_modules-${{ hashFiles('yarn.lock') }}
241-
# restore-keys: |
242-
# ${{ runner.os }}-14-${{ matrix.firebase }}-9-node_modules-
243-
# ${{ runner.os }}-14-${{ matrix.firebase }}-
244-
# ${{ runner.os }}-14-
245-
# - name: Yarn offline cache
246-
# if: steps.node_modules_cache.outputs.cache-hit != 'true'
247-
# uses: actions/cache@v2
248-
# with:
249-
# path: ~/.npm-packages-offline-cache
250-
# key: yarn-offline-${{ hashFiles('**/yarn.lock') }}
251-
# restore-keys: yarn-offline
252-
# - name: Install deps
253-
# if: steps.node_modules_cache.outputs.cache-hit != 'true'
254-
# run: |
255-
# yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
256-
# yarn install --frozen-lockfile --prefer-offline
257-
# yarn add firebase@${{ matrix.firebase }} --prefer-offline
258-
# - name: Firebase emulator cache
259-
# uses: actions/cache@v2
260-
# with:
261-
# path: ~/.cache/firebase/emulators
262-
# key: firebase_emulators
263-
# - name: 'Download Artifacts'
264-
# uses: actions/download-artifact@v2
265-
# - name: Run tests
266-
# run: |
267-
# mv angularfire-${{ github.run_id }} dist
268-
# yarn test:safari
260+
# Break the branch protection test into a seperate step, so we can manage the matrix more easily
261+
test_and_contribute:
262+
runs-on: ubuntu-latest
263+
name: Branch protection
264+
needs: ['test', 'contribute']
265+
steps:
266+
- run: true
269267

270268
publish:
271269
runs-on: ubuntu-latest
272270
name: Publish (NPM)
273-
needs: ['build', 'test', 'headless']
271+
needs: ['build', 'test']
274272
if: ${{ github.ref == 'refs/heads/master' || github.event_name == 'release' }}
275273
steps:
276274
- name: Setup node

src/compat/database/list/snapshot-changes.spec.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ describe('snapshotChanges', () => {
6262
it('should handle multiple subscriptions (hot)', (done) => {
6363
const { snapChanges, ref } = prepareSnapshotChanges();
6464
const sub = snapChanges.subscribe(() => {
65-
}).add(done);
65+
});
66+
sub.add(done);
6667
snapChanges.pipe(take(1)).subscribe(actions => {
6768
const data = actions.map(a => a.payload.val());
6869
expect(data).toEqual(items);

0 commit comments

Comments
 (0)