Skip to content

Fix audit log races #303

Fix audit log races

Fix audit log races #303

Workflow file for this run

name: Test and publish
on:
push:
branches:
- "**"
paths-ignore:
- "**/*.md"
pull_request:
branches:
- "**"
release:
types:
- published
jobs:
build:
runs-on: ubuntu-latest
name: Build
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: '20'
- name: node_modules cache
uses: actions/cache@v4
id: node_modules_cache
with:
path: ./node_modules
key: ${{ runner.os }}-20-node_modules-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-20-node_modules-
- name: Yarn offline cache
if: steps.node_modules_cache.outputs.cache-hit != 'true'
uses: actions/cache@v4
with:
path: ~/.npm-packages-offline-cache
key: yarn-offline-${{ hashFiles('**/yarn.lock') }}
restore-keys: yarn-offline
- name: Install deps
if: steps.node_modules_cache.outputs.cache-hit != 'true'
run: |
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
yarn config set yarn-offline-mirror-pruning true
yarn install --frozen-lockfile --prefer-offline
- name: Build
id: yarn-pack-dir
run: ./build.sh
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: rxfire-${{ github.run_id }}
path: dist
retention-days: 1
test:
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
node: ["20"]
firebase: ["9", "10"]
rxjs: ["6", "7"]
fail-fast: false
name: Test firebase@${{ matrix.firebase }} rxjs@${{ matrix.rxjs }} on Node.js ${{ matrix.node }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
check-latest: true
- name: node_modules cache
id: node_modules_cache
uses: actions/cache@v4
with:
path: ./node_modules
key: ${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-${{ matrix.rxjs }}-node_modules-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-${{ matrix.rxjs }}-node_modules-
${{ runner.os }}-${{ matrix.node }}-node_modules-
- name: test/functions node_modules cache
id: functions_node_modules_cache
uses: actions/cache@v4
with:
path: ./test/functions/node_modules
key: ${{ runner.os }}-${{ matrix.node }}-functions_node_modules-${{ hashFiles('test/functions/yarn.lock') }}
restore-keys: |
${{ runner.os }}-${{ matrix.node }}-functions_node_modules-
- name: Yarn offline cache
if: steps.node_modules_cache.outputs.cache-hit != 'true' || steps.functions_node_modules_cache.outputs.cache-hit != 'true'
uses: actions/cache@v4
with:
path: ~/.npm-packages-offline-cache
key: yarn-offline-${{ hashFiles('**/yarn.lock') }}
restore-keys: yarn-offline
- name: Install deps
if: steps.node_modules_cache.outputs.cache-hit != 'true'
run: |
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
yarn install --frozen-lockfile --prefer-offline
yarn add --dev firebase@${{ matrix.firebase }} rxjs@${{ matrix.rxjs }} --prefer-offline
- name: Install test/functions deps
if: steps.functions_node_modules_cache.outputs.cache-hit != 'true'
run: |
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
cd test/functions
yarn install --frozen-lockfile --prefer-offline
- name: Firebase emulator cache
uses: actions/cache@v4
with:
path: ~/.cache/firebase/emulators
key: firebase_emulators
- name: 'Download Artifacts'
uses: actions/download-artifact@v4
- name: Run tests
run: |
mv rxfire-${{ github.run_id }} dist
yarn test
lint:
runs-on: ubuntu-latest
strategy:
matrix:
node: ["20"]
firebase: ["9", "10", "11"]
rxjs: ["7"]
fail-fast: false
name: Lint
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
check-latest: true
- name: node_modules cache
id: node_modules_cache
uses: actions/cache@v4
with:
path: ./node_modules
key: ${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-${{ matrix.rxjs }}-node_modules-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-${{ matrix.rxjs }}-node_modules-
${{ runner.os }}-${{ matrix.node }}-node_modules-
- name: Yarn offline cache
if: steps.node_modules_cache.outputs.cache-hit != 'true' || steps.functions_node_modules_cache.outputs.cache-hit != 'true'
uses: actions/cache@v4
with:
path: ~/.npm-packages-offline-cache
key: yarn-offline-${{ hashFiles('**/yarn.lock') }}
restore-keys: yarn-offline
- name: Install deps
if: steps.node_modules_cache.outputs.cache-hit != 'true'
run: |
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
yarn install --frozen-lockfile --prefer-offline
yarn add --dev firebase@${{ matrix.firebase }} rxjs@${{ matrix.rxjs }} --prefer-offline
- name: Run lint
run: |
yarn lint
publish:
runs-on: ubuntu-latest
name: Publish (NPM)
needs: ['build', 'test']
if: ${{ github.ref == 'refs/heads/main' || github.event_name == 'release' }}
steps:
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: '20'
registry-url: 'https://wombat-dressing-room.appspot.com'
- name: 'Download Artifacts'
uses: actions/download-artifact@v4
- name: Publish
run: |
cd ./rxfire-${{ github.run_id }}
chmod +x publish.sh
./publish.sh
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}