Add app-check-interop-types dependency to database #18315
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright 2023 Google LLC | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
# See the License for the specific language governing permissions and | |
# limitations under the License. | |
name: Test All Packages | |
on: | |
push: | |
branches: ['**'] | |
env: | |
# make chromedriver detect installed Chrome version and download the corresponding driver | |
DETECT_CHROMEDRIVER_VERSION: true | |
# The default behavior of chromedriver uses the older Chrome download URLs. We need to override | |
# the beahvior to use the new URLs. | |
CHROMEDRIVER_CDNURL: https://googlechromelabs.github.io/ | |
CHROMEDRIVER_CDNBINARIESURL: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/ | |
artifactRetentionDays: 14 | |
# Bump Node memory limit | |
NODE_OPTIONS: "--max_old_space_size=4096" | |
jobs: | |
build: | |
name: Build the SDK | |
runs-on: ubuntu-latest | |
steps: | |
# Install Chrome so the correct version of webdriver can be installed by chromedriver when | |
# setting up the repo. This must be done to build and execute Auth properly. | |
- name: install Chrome stable | |
run: | | |
npx @puppeteer/browsers install chrome@stable | |
- uses: actions/checkout@v3 | |
- name: Set up Node (16) | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
- name: Test setup and yarn install | |
run: | | |
cp config/ci.config.json config/project.json | |
yarn | |
- name: yarn build | |
run: yarn build | |
- name: Archive build | |
if: ${{ !cancelled() }} | |
run: | | |
tar -cf build.tar . | |
gzip build.tar | |
- name: Upload build archive | |
if: ${{ !cancelled() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: build.tar.gz | |
path: build.tar.gz | |
retention-days: ${{ env.artifactRetentionDays }} | |
# Auth and Firestore are built and executed in their own jobs in an attempt to reduce flakiness. | |
test-the-rest: | |
name: (bulk) Node.js and Browser (Chrome) Tests | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
# install Chrome first, so the correct version of webdriver can be installed by chromedriver when setting up the repo | |
- name: install Chrome stable | |
run: | | |
npx @puppeteer/browsers install chrome@stable | |
- name: Download build archive | |
uses: actions/download-artifact@v3 | |
with: | |
name: build.tar.gz | |
- name: Unzip build artifact | |
run: tar xf build.tar.gz | |
- name: Set up Node (16) | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
- name: Test setup and yarn install | |
run: | | |
cp config/ci.config.json config/project.json | |
yarn | |
- name: Set start timestamp env var | |
run: echo "FIREBASE_CI_TEST_START_TIME=$(date +%s)" >> $GITHUB_ENV | |
- name: Run unit tests | |
# Ignore auth and firestore since they're handled in their own separate jobs. | |
run: | | |
xvfb-run yarn lerna run --ignore '{firebase-messaging-integration-test,@firebase/auth*,@firebase/firestore*,firebase-firestore-integration-test}' --concurrency 4 test:ci | |
node scripts/print_test_logs.js | |
env: | |
FIREBASE_TOKEN: ${{ secrets.FIREBASE_CLI_TOKEN }} | |
- name: Generate coverage file | |
run: yarn ci:coverage | |
- name: Run coverage | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: ./lcov-all.info | |
continue-on-error: true | |
test-auth: | |
name: (Auth) Node.js and Browser (Chrome) Tests | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
# install Chrome first, so the correct version of webdriver can be installed by chromedriver | |
# when setting up the repo | |
- name: install Chrome stable | |
run: | | |
npx @puppeteer/browsers install chrome@stable | |
- name: Download build archive | |
uses: actions/download-artifact@v3 | |
with: | |
name: build.tar.gz | |
- name: Unzip build artifact | |
run: tar xf build.tar.gz | |
- name: Set up Node (16) | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
- name: Test setup and yarn install | |
run: | | |
cp config/ci.config.json config/project.json | |
yarn | |
- name: Set start timestamp env var | |
run: echo "FIREBASE_CI_TEST_START_TIME=$(date +%s)" >> $GITHUB_ENV | |
- name: Run unit tests | |
run: | | |
xvfb-run yarn lerna run --concurrency 4 test:ci --scope '@firebase/auth*' | |
node scripts/print_test_logs.js | |
env: | |
FIREBASE_TOKEN: ${{ secrets.FIREBASE_CLI_TOKEN }} | |
- name: Generate coverage file | |
run: yarn ci:coverage | |
- name: Run coverage | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: ./lcov-all.info | |
continue-on-error: true | |
test-firestore: | |
name: (Firestore) Node.js and Browser (Chrome) Tests | |
needs: build | |
runs-on: ubuntu-latest | |
if: false | |
# Disable test for now since it's failing 100% of the time since | |
# https://github.com/firebase/firebase-js-sdk/pull/7453 and it needs to be investigated. | |
steps: | |
# install Chrome so the correct version of webdriver can be installed by chromedriver when setting up the repo | |
- name: install Chrome stable | |
run: | | |
npx @puppeteer/browsers install chrome@stable | |
- name: Download build archive | |
uses: actions/download-artifact@v3 | |
with: | |
name: build.tar.gz | |
- name: Unzip build artifact | |
run: tar xf build.tar.gz | |
- name: Set up Node (16) | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
- name: Test setup and yarn install | |
run: | | |
cp config/ci.config.json config/project.json | |
yarn | |
- name: Set start timestamp env var | |
run: echo "FIREBASE_CI_TEST_START_TIME=$(date +%s)" >> $GITHUB_ENV | |
- name: Run unit tests | |
run: | | |
xvfb-run yarn lerna run --concurrency 4 test:ci --scope '@firebase/firestore*' | |
node scripts/print_test_logs.js | |
env: | |
FIREBASE_TOKEN: ${{ secrets.FIREBASE_CLI_TOKEN }} | |
EXPERIMENTAL_MODE: true | |
- name: Generate coverage file | |
run: yarn ci:coverage | |
- name: Run coverage | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: ./lcov-all.info | |
continue-on-error: true | |
test-firestore-integration: | |
strategy: | |
fail-fast: false | |
matrix: | |
persistence: ['memory', 'persistence'] | |
name: Firestore Integration Tests (${{ matrix.persistence }}) | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
# install Chrome so the correct version of webdriver can be installed by chromedriver when setting up the repo | |
- name: install Chrome stable | |
run: | | |
npx @puppeteer/browsers install chrome@stable | |
- name: Download build archive | |
uses: actions/download-artifact@v3 | |
with: | |
name: build.tar.gz | |
- name: Unzip build artifact | |
run: tar xf build.tar.gz | |
- name: Set up Node (16) | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
- run: cp config/ci.config.json config/project.json | |
- run: yarn | |
- run: yarn build:${{ matrix.persistence }} | |
working-directory: integration/firestore | |
- run: xvfb-run yarn karma:singlerun | |
working-directory: integration/firestore | |
env: | |
FIREBASE_TOKEN: ${{ secrets.FIREBASE_CLI_TOKEN }} |