From beadb696e4a57e897a7e266ee255c3053fc33c66 Mon Sep 17 00:00:00 2001 From: Tyler Dixon Date: Fri, 30 Oct 2026 14:32:25 -0700 Subject: [PATCH 1/2] docs: add a release guide with a browser smoke test of the published build Adds "Publishing a release" to CONTRIBUTING.md and scripts/release-smoke/run.sh, which installs a published version into a Vite app and a Next.js App Router app, production-builds both, renders a hook in headless Chromium, and fails on any page error, console error or failed request. It fails on 4.2.4 (#759) and passes on 4.3.0. Refs #848 --- .github/CONTRIBUTING.md | 28 +++++++++++++++ scripts/release-smoke/.gitignore | 6 ++++ scripts/release-smoke/next-app/app/layout.jsx | 2 ++ scripts/release-smoke/next-app/app/page.jsx | 2 ++ scripts/release-smoke/next-app/app/status.jsx | 19 +++++++++++ scripts/release-smoke/next-app/package.json | 5 +++ scripts/release-smoke/run.sh | 34 +++++++++++++++++++ scripts/release-smoke/runner/check.mjs | 22 ++++++++++++ scripts/release-smoke/runner/package.json | 1 + scripts/release-smoke/vite-app/index.html | 1 + scripts/release-smoke/vite-app/package.json | 6 ++++ scripts/release-smoke/vite-app/src/main.jsx | 17 ++++++++++ scripts/release-smoke/vite-app/vite.config.js | 2 ++ 13 files changed, 145 insertions(+) create mode 100644 scripts/release-smoke/.gitignore create mode 100644 scripts/release-smoke/next-app/app/layout.jsx create mode 100644 scripts/release-smoke/next-app/app/page.jsx create mode 100644 scripts/release-smoke/next-app/app/status.jsx create mode 100644 scripts/release-smoke/next-app/package.json create mode 100755 scripts/release-smoke/run.sh create mode 100644 scripts/release-smoke/runner/check.mjs create mode 100644 scripts/release-smoke/runner/package.json create mode 100644 scripts/release-smoke/vite-app/index.html create mode 100644 scripts/release-smoke/vite-app/package.json create mode 100644 scripts/release-smoke/vite-app/src/main.jsx create mode 100644 scripts/release-smoke/vite-app/vite.config.js diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index b0cfdab5..9efe9657 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -7,6 +7,7 @@ Thank you for contributing to the Firebase community! - [Have a feature request?](#feature) - [Want to submit a pull request?](#submit) - [Need to get set up locally?](#local-setup) +- [Publishing a release (maintainers)](#publish) ## Have a usage question? @@ -86,3 +87,30 @@ set up. > If the lint check fails, run `npm run lint -- --fix` to automatically fix any issues. 5. run `npm run docs` to rebuild the reference docs > If you've forked the repo, run `npm run docs:fork` instead. This will ensure the reference docs link to the firebaseextended/reactfire repository. + +## Publishing a release (maintainers) + +CI publishes to npm. Every push to `main` publishes `-exp.` under the `exp` dist-tag, and publishing a GitHub release publishes the tagged version. Releasing is therefore: bump, smoke-test the exact build, tag. + +1. **Confirm `main` is green.** CI on `main` already runs the test suite against React 18 and 19, `publint`, `attw` and the bundle-size check. + ```bash + gh run list --workflow test.yaml --branch main --limit 1 + ``` +2. **Bump the version** in `package.json` and `package-lock.json` with one commit on `main` named after the version (for example `4.3.1`): + ```bash + npm version 4.3.1 --no-git-tag-version + ``` + Breaking changes need a major bump. CI publishes the bump commit as `4.3.1-exp.`. +3. **Smoke-test that build in a browser.** Wait for the `exp` dist-tag to show the bump commit's short sha, then render it: + ```bash + npm view reactfire dist-tags.exp + scripts/release-smoke/run.sh 4.3.1-exp. + ``` + This installs the package into a Vite app and a Next.js App Router app, production-builds both, renders a hook in headless Chromium and fails on any page error, console error or failed request. It must end with `PASS`. It catches failures that only appear in a bundler or browser: 4.2.4 shipped with green tests, and `publint` and `attw` report the same output for it as for working versions, but it crashed on import in browsers (#759). This script fails on 4.2.4. Do not tag if it fails. +4. **Publish a GitHub release** targeting `main`, with tag `v` (for example `v4.3.1`). A tag without a hyphen publishes to `latest`; a tag with one (`v5.0.0-rc.1`) publishes to `next`. +5. **Verify.** The release run should succeed, `latest` should show the new version, and the published package should pass the same smoke test: + ```bash + gh run list --workflow test.yaml --event release --limit 1 + npm view reactfire dist-tags + scripts/release-smoke/run.sh 4.3.1 + ``` diff --git a/scripts/release-smoke/.gitignore b/scripts/release-smoke/.gitignore new file mode 100644 index 00000000..5a58312d --- /dev/null +++ b/scripts/release-smoke/.gitignore @@ -0,0 +1,6 @@ +node_modules/ +package-lock.json +dist/ +.next/ +next-env.d.ts +*.log diff --git a/scripts/release-smoke/next-app/app/layout.jsx b/scripts/release-smoke/next-app/app/layout.jsx new file mode 100644 index 00000000..4aae0d44 --- /dev/null +++ b/scripts/release-smoke/next-app/app/layout.jsx @@ -0,0 +1,2 @@ +export const metadata = { icons: { icon: 'data:,' } }; +export default function RootLayout({ children }) { return {children}; } diff --git a/scripts/release-smoke/next-app/app/page.jsx b/scripts/release-smoke/next-app/app/page.jsx new file mode 100644 index 00000000..6c8f92b7 --- /dev/null +++ b/scripts/release-smoke/next-app/app/page.jsx @@ -0,0 +1,2 @@ +import Status from './status'; +export default function Page() { return ; } diff --git a/scripts/release-smoke/next-app/app/status.jsx b/scripts/release-smoke/next-app/app/status.jsx new file mode 100644 index 00000000..d893a1cc --- /dev/null +++ b/scripts/release-smoke/next-app/app/status.jsx @@ -0,0 +1,19 @@ +'use client'; +import { initializeApp, getApps } from 'firebase/app'; +import { getAuth } from 'firebase/auth'; +import { FirebaseAppProvider, AuthProvider, useSigninCheck } from 'reactfire'; + +const app = getApps()[0] ?? initializeApp({ apiKey: 'smoke', authDomain: 'smoke.firebaseapp.com', projectId: 'smoke', appId: '1:1:web:1' }); + +function Inner() { + const { status, data } = useSigninCheck(); + return

{status === 'success' ? `SMOKE_OK signedIn=${data.signedIn}` : `status=${status}`}

; +} + +export default function Status() { + return ( + + + + ); +} diff --git a/scripts/release-smoke/next-app/package.json b/scripts/release-smoke/next-app/package.json new file mode 100644 index 00000000..0005ea7f --- /dev/null +++ b/scripts/release-smoke/next-app/package.json @@ -0,0 +1,5 @@ +{ + "name": "release-smoke-next", + "private": true, + "scripts": { "build": "next build", "serve": "next start -p 4174" } +} diff --git a/scripts/release-smoke/run.sh b/scripts/release-smoke/run.sh new file mode 100755 index 00000000..8f3682a2 --- /dev/null +++ b/scripts/release-smoke/run.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# Renders a ReactFire hook from a published npm version in a Vite app and a +# Next.js App Router app, each production-built, and fails on any page error, +# console error or failed request. See "Publishing a release" in +# .github/CONTRIBUTING.md. +# +# Usage: scripts/release-smoke/run.sh +# Env: FIREBASE (default 11.10.0), CHROME (path to a Chromium binary; if +# unset, Playwright's own Chromium is installed and used) +set -u +V=${1:?usage: run.sh } +FB=${FIREBASE:-11.10.0} +S=$(cd "$(dirname "$0")" && pwd) +RC=0 + +(cd "$S/runner" && npm i --no-save --silent --no-audit --no-fund playwright@1 >/dev/null 2>&1) || { echo "FAIL installing playwright"; exit 1; } +if [ -z "${CHROME:-}" ]; then (cd "$S/runner" && npx playwright install chromium >/dev/null 2>&1) || { echo "FAIL installing chromium"; exit 1; }; fi + +for APP in vite-app next-app; do + cd "$S/$APP" + rm -rf node_modules package-lock.json dist .next + DEPS="reactfire@$V firebase@$FB react@19 react-dom@19" + if [ $APP = vite-app ]; then DEPS="$DEPS vite@7 @vitejs/plugin-react@5"; PORT=4173; else DEPS="$DEPS next@16"; PORT=4174; fi + npm i --no-save --silent --no-audit --no-fund $DEPS >/dev/null 2>&1 || { echo "FAIL $APP install"; RC=1; continue; } + npm run -s build > build.log 2>&1 || { echo "FAIL $APP build ($S/$APP/build.log)"; tail -5 build.log; RC=1; continue; } + npm run -s serve > serve.log 2>&1 & + SP=$! + for _ in $(seq 1 30); do curl -sf -o /dev/null "http://localhost:$PORT" && break; sleep 1; done + node "$S/runner/check.mjs" "http://localhost:$PORT/" || RC=1 + pkill -P $SP 2>/dev/null; kill $SP 2>/dev/null; wait $SP 2>/dev/null +done + +[ $RC = 0 ] && echo "PASS reactfire@$V" || echo "FAIL reactfire@$V" +exit $RC diff --git a/scripts/release-smoke/runner/check.mjs b/scripts/release-smoke/runner/check.mjs new file mode 100644 index 00000000..72a023da --- /dev/null +++ b/scripts/release-smoke/runner/check.mjs @@ -0,0 +1,22 @@ +// Usage: node check.mjs . Exits 0 only if #smoke shows SMOKE_OK with no page errors, console errors or failed requests. +import { chromium } from 'playwright'; +const url = process.argv[2]; +const browser = await chromium.launch(process.env.CHROME ? { executablePath: process.env.CHROME } : {}); +const page = await browser.newPage(); +const errors = []; +page.on('pageerror', (e) => errors.push(`pageerror: ${e.message}`)); +page.on('response', (r) => { if (r.status() >= 400) errors.push(`http ${r.status()}: ${r.url()}`); }); +page.on('console', (m) => { if (m.type() === 'error') errors.push(`console: ${m.text()}`); }); +let text = ''; +try { + await page.goto(url, { waitUntil: 'load' }); + await page.waitForFunction(() => document.querySelector('#smoke')?.textContent?.startsWith('SMOKE_OK'), null, { timeout: 15000 }); + text = await page.textContent('#smoke'); +} catch (e) { + text = (await page.textContent('#smoke').catch(() => null)) ?? '(no #smoke element)'; +} +await browser.close(); +const ok = text.startsWith('SMOKE_OK') && errors.length === 0; +console.log(`${ok ? 'PASS' : 'FAIL'} ${url} -> ${text}`); +for (const e of errors) console.log(` ${e}`); +process.exit(ok ? 0 : 1); diff --git a/scripts/release-smoke/runner/package.json b/scripts/release-smoke/runner/package.json new file mode 100644 index 00000000..5ea1440c --- /dev/null +++ b/scripts/release-smoke/runner/package.json @@ -0,0 +1 @@ +{ "name": "release-smoke-runner", "private": true, "type": "module" } diff --git a/scripts/release-smoke/vite-app/index.html b/scripts/release-smoke/vite-app/index.html new file mode 100644 index 00000000..193f2dc1 --- /dev/null +++ b/scripts/release-smoke/vite-app/index.html @@ -0,0 +1 @@ +
diff --git a/scripts/release-smoke/vite-app/package.json b/scripts/release-smoke/vite-app/package.json new file mode 100644 index 00000000..d3087ec5 --- /dev/null +++ b/scripts/release-smoke/vite-app/package.json @@ -0,0 +1,6 @@ +{ + "name": "release-smoke-vite", + "private": true, + "type": "module", + "scripts": { "build": "vite build", "serve": "vite preview --port 4173 --strictPort" } +} diff --git a/scripts/release-smoke/vite-app/src/main.jsx b/scripts/release-smoke/vite-app/src/main.jsx new file mode 100644 index 00000000..2e5b5dd4 --- /dev/null +++ b/scripts/release-smoke/vite-app/src/main.jsx @@ -0,0 +1,17 @@ +import { createRoot } from 'react-dom/client'; +import { initializeApp } from 'firebase/app'; +import { getAuth } from 'firebase/auth'; +import { FirebaseAppProvider, AuthProvider, useSigninCheck } from 'reactfire'; + +const app = initializeApp({ apiKey: 'smoke', authDomain: 'smoke.firebaseapp.com', projectId: 'smoke', appId: '1:1:web:1' }); + +function Status() { + const { status, data } = useSigninCheck(); + return

{status === 'success' ? `SMOKE_OK signedIn=${data.signedIn}` : `status=${status}`}

; +} + +createRoot(document.getElementById('root')).render( + + + +); diff --git a/scripts/release-smoke/vite-app/vite.config.js b/scripts/release-smoke/vite-app/vite.config.js new file mode 100644 index 00000000..68292e0e --- /dev/null +++ b/scripts/release-smoke/vite-app/vite.config.js @@ -0,0 +1,2 @@ +import react from '@vitejs/plugin-react'; +export default { plugins: [react()] }; From 06a362183b9677a4541519ccfc713ac807150e91 Mon Sep 17 00:00:00 2001 From: Tyler Dixon Date: Fri, 30 Oct 2026 14:36:10 -0700 Subject: [PATCH 2/2] docs: describe the release smoke test as steps instead of a script --- .github/CONTRIBUTING.md | 15 ++++---- scripts/release-smoke/.gitignore | 6 ---- scripts/release-smoke/next-app/app/layout.jsx | 2 -- scripts/release-smoke/next-app/app/page.jsx | 2 -- scripts/release-smoke/next-app/app/status.jsx | 19 ----------- scripts/release-smoke/next-app/package.json | 5 --- scripts/release-smoke/run.sh | 34 ------------------- scripts/release-smoke/runner/check.mjs | 22 ------------ scripts/release-smoke/runner/package.json | 1 - scripts/release-smoke/vite-app/index.html | 1 - scripts/release-smoke/vite-app/package.json | 6 ---- scripts/release-smoke/vite-app/src/main.jsx | 17 ---------- scripts/release-smoke/vite-app/vite.config.js | 2 -- 13 files changed, 7 insertions(+), 125 deletions(-) delete mode 100644 scripts/release-smoke/.gitignore delete mode 100644 scripts/release-smoke/next-app/app/layout.jsx delete mode 100644 scripts/release-smoke/next-app/app/page.jsx delete mode 100644 scripts/release-smoke/next-app/app/status.jsx delete mode 100644 scripts/release-smoke/next-app/package.json delete mode 100755 scripts/release-smoke/run.sh delete mode 100644 scripts/release-smoke/runner/check.mjs delete mode 100644 scripts/release-smoke/runner/package.json delete mode 100644 scripts/release-smoke/vite-app/index.html delete mode 100644 scripts/release-smoke/vite-app/package.json delete mode 100644 scripts/release-smoke/vite-app/src/main.jsx delete mode 100644 scripts/release-smoke/vite-app/vite.config.js diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 9efe9657..3d6fe74f 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -101,16 +101,15 @@ CI publishes to npm. Every push to `main` publishes `-exp.` npm version 4.3.1 --no-git-tag-version ``` Breaking changes need a major bump. CI publishes the bump commit as `4.3.1-exp.`. -3. **Smoke-test that build in a browser.** Wait for the `exp` dist-tag to show the bump commit's short sha, then render it: - ```bash - npm view reactfire dist-tags.exp - scripts/release-smoke/run.sh 4.3.1-exp. - ``` - This installs the package into a Vite app and a Next.js App Router app, production-builds both, renders a hook in headless Chromium and fails on any page error, console error or failed request. It must end with `PASS`. It catches failures that only appear in a bundler or browser: 4.2.4 shipped with green tests, and `publint` and `attw` report the same output for it as for working versions, but it crashed on import in browsers (#759). This script fails on 4.2.4. Do not tag if it fails. +3. **Smoke-test that build in a browser.** The tests and package lints never load the built package in a bundler: 4.2.4 shipped with green tests, and `publint` and `attw` report the same output for it as for working versions, but it crashed on import in browsers (#759). Wait for `npm view reactfire dist-tags.exp` to show the bump commit's short sha, then, in a scratch directory outside the repo: + - Create a minimal Vite React app and a minimal Next.js App Router app, and install `reactfire@` and `firebase` into each. + - In each, render a hook, for example `useSigninCheck` inside `FirebaseAppProvider` and `AuthProvider` (in Next.js, from a `'use client'` component). + - Production-build and serve each (`vite build && vite preview`, `next build && next start`), open the page, and confirm the hook renders and the browser console shows no errors. + + Do not tag if either app fails to build or render. 4. **Publish a GitHub release** targeting `main`, with tag `v` (for example `v4.3.1`). A tag without a hyphen publishes to `latest`; a tag with one (`v5.0.0-rc.1`) publishes to `next`. -5. **Verify.** The release run should succeed, `latest` should show the new version, and the published package should pass the same smoke test: +5. **Verify.** The release run should succeed, `latest` should show the new version, and the published version should pass the step 3 smoke test: ```bash gh run list --workflow test.yaml --event release --limit 1 npm view reactfire dist-tags - scripts/release-smoke/run.sh 4.3.1 ``` diff --git a/scripts/release-smoke/.gitignore b/scripts/release-smoke/.gitignore deleted file mode 100644 index 5a58312d..00000000 --- a/scripts/release-smoke/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -node_modules/ -package-lock.json -dist/ -.next/ -next-env.d.ts -*.log diff --git a/scripts/release-smoke/next-app/app/layout.jsx b/scripts/release-smoke/next-app/app/layout.jsx deleted file mode 100644 index 4aae0d44..00000000 --- a/scripts/release-smoke/next-app/app/layout.jsx +++ /dev/null @@ -1,2 +0,0 @@ -export const metadata = { icons: { icon: 'data:,' } }; -export default function RootLayout({ children }) { return {children}; } diff --git a/scripts/release-smoke/next-app/app/page.jsx b/scripts/release-smoke/next-app/app/page.jsx deleted file mode 100644 index 6c8f92b7..00000000 --- a/scripts/release-smoke/next-app/app/page.jsx +++ /dev/null @@ -1,2 +0,0 @@ -import Status from './status'; -export default function Page() { return ; } diff --git a/scripts/release-smoke/next-app/app/status.jsx b/scripts/release-smoke/next-app/app/status.jsx deleted file mode 100644 index d893a1cc..00000000 --- a/scripts/release-smoke/next-app/app/status.jsx +++ /dev/null @@ -1,19 +0,0 @@ -'use client'; -import { initializeApp, getApps } from 'firebase/app'; -import { getAuth } from 'firebase/auth'; -import { FirebaseAppProvider, AuthProvider, useSigninCheck } from 'reactfire'; - -const app = getApps()[0] ?? initializeApp({ apiKey: 'smoke', authDomain: 'smoke.firebaseapp.com', projectId: 'smoke', appId: '1:1:web:1' }); - -function Inner() { - const { status, data } = useSigninCheck(); - return

{status === 'success' ? `SMOKE_OK signedIn=${data.signedIn}` : `status=${status}`}

; -} - -export default function Status() { - return ( - - - - ); -} diff --git a/scripts/release-smoke/next-app/package.json b/scripts/release-smoke/next-app/package.json deleted file mode 100644 index 0005ea7f..00000000 --- a/scripts/release-smoke/next-app/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "release-smoke-next", - "private": true, - "scripts": { "build": "next build", "serve": "next start -p 4174" } -} diff --git a/scripts/release-smoke/run.sh b/scripts/release-smoke/run.sh deleted file mode 100755 index 8f3682a2..00000000 --- a/scripts/release-smoke/run.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash -# Renders a ReactFire hook from a published npm version in a Vite app and a -# Next.js App Router app, each production-built, and fails on any page error, -# console error or failed request. See "Publishing a release" in -# .github/CONTRIBUTING.md. -# -# Usage: scripts/release-smoke/run.sh -# Env: FIREBASE (default 11.10.0), CHROME (path to a Chromium binary; if -# unset, Playwright's own Chromium is installed and used) -set -u -V=${1:?usage: run.sh } -FB=${FIREBASE:-11.10.0} -S=$(cd "$(dirname "$0")" && pwd) -RC=0 - -(cd "$S/runner" && npm i --no-save --silent --no-audit --no-fund playwright@1 >/dev/null 2>&1) || { echo "FAIL installing playwright"; exit 1; } -if [ -z "${CHROME:-}" ]; then (cd "$S/runner" && npx playwright install chromium >/dev/null 2>&1) || { echo "FAIL installing chromium"; exit 1; }; fi - -for APP in vite-app next-app; do - cd "$S/$APP" - rm -rf node_modules package-lock.json dist .next - DEPS="reactfire@$V firebase@$FB react@19 react-dom@19" - if [ $APP = vite-app ]; then DEPS="$DEPS vite@7 @vitejs/plugin-react@5"; PORT=4173; else DEPS="$DEPS next@16"; PORT=4174; fi - npm i --no-save --silent --no-audit --no-fund $DEPS >/dev/null 2>&1 || { echo "FAIL $APP install"; RC=1; continue; } - npm run -s build > build.log 2>&1 || { echo "FAIL $APP build ($S/$APP/build.log)"; tail -5 build.log; RC=1; continue; } - npm run -s serve > serve.log 2>&1 & - SP=$! - for _ in $(seq 1 30); do curl -sf -o /dev/null "http://localhost:$PORT" && break; sleep 1; done - node "$S/runner/check.mjs" "http://localhost:$PORT/" || RC=1 - pkill -P $SP 2>/dev/null; kill $SP 2>/dev/null; wait $SP 2>/dev/null -done - -[ $RC = 0 ] && echo "PASS reactfire@$V" || echo "FAIL reactfire@$V" -exit $RC diff --git a/scripts/release-smoke/runner/check.mjs b/scripts/release-smoke/runner/check.mjs deleted file mode 100644 index 72a023da..00000000 --- a/scripts/release-smoke/runner/check.mjs +++ /dev/null @@ -1,22 +0,0 @@ -// Usage: node check.mjs . Exits 0 only if #smoke shows SMOKE_OK with no page errors, console errors or failed requests. -import { chromium } from 'playwright'; -const url = process.argv[2]; -const browser = await chromium.launch(process.env.CHROME ? { executablePath: process.env.CHROME } : {}); -const page = await browser.newPage(); -const errors = []; -page.on('pageerror', (e) => errors.push(`pageerror: ${e.message}`)); -page.on('response', (r) => { if (r.status() >= 400) errors.push(`http ${r.status()}: ${r.url()}`); }); -page.on('console', (m) => { if (m.type() === 'error') errors.push(`console: ${m.text()}`); }); -let text = ''; -try { - await page.goto(url, { waitUntil: 'load' }); - await page.waitForFunction(() => document.querySelector('#smoke')?.textContent?.startsWith('SMOKE_OK'), null, { timeout: 15000 }); - text = await page.textContent('#smoke'); -} catch (e) { - text = (await page.textContent('#smoke').catch(() => null)) ?? '(no #smoke element)'; -} -await browser.close(); -const ok = text.startsWith('SMOKE_OK') && errors.length === 0; -console.log(`${ok ? 'PASS' : 'FAIL'} ${url} -> ${text}`); -for (const e of errors) console.log(` ${e}`); -process.exit(ok ? 0 : 1); diff --git a/scripts/release-smoke/runner/package.json b/scripts/release-smoke/runner/package.json deleted file mode 100644 index 5ea1440c..00000000 --- a/scripts/release-smoke/runner/package.json +++ /dev/null @@ -1 +0,0 @@ -{ "name": "release-smoke-runner", "private": true, "type": "module" } diff --git a/scripts/release-smoke/vite-app/index.html b/scripts/release-smoke/vite-app/index.html deleted file mode 100644 index 193f2dc1..00000000 --- a/scripts/release-smoke/vite-app/index.html +++ /dev/null @@ -1 +0,0 @@ -
diff --git a/scripts/release-smoke/vite-app/package.json b/scripts/release-smoke/vite-app/package.json deleted file mode 100644 index d3087ec5..00000000 --- a/scripts/release-smoke/vite-app/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "release-smoke-vite", - "private": true, - "type": "module", - "scripts": { "build": "vite build", "serve": "vite preview --port 4173 --strictPort" } -} diff --git a/scripts/release-smoke/vite-app/src/main.jsx b/scripts/release-smoke/vite-app/src/main.jsx deleted file mode 100644 index 2e5b5dd4..00000000 --- a/scripts/release-smoke/vite-app/src/main.jsx +++ /dev/null @@ -1,17 +0,0 @@ -import { createRoot } from 'react-dom/client'; -import { initializeApp } from 'firebase/app'; -import { getAuth } from 'firebase/auth'; -import { FirebaseAppProvider, AuthProvider, useSigninCheck } from 'reactfire'; - -const app = initializeApp({ apiKey: 'smoke', authDomain: 'smoke.firebaseapp.com', projectId: 'smoke', appId: '1:1:web:1' }); - -function Status() { - const { status, data } = useSigninCheck(); - return

{status === 'success' ? `SMOKE_OK signedIn=${data.signedIn}` : `status=${status}`}

; -} - -createRoot(document.getElementById('root')).render( - - - -); diff --git a/scripts/release-smoke/vite-app/vite.config.js b/scripts/release-smoke/vite-app/vite.config.js deleted file mode 100644 index 68292e0e..00000000 --- a/scripts/release-smoke/vite-app/vite.config.js +++ /dev/null @@ -1,2 +0,0 @@ -import react from '@vitejs/plugin-react'; -export default { plugins: [react()] };