From 2001456e2901b6e03af31dda240560ec7ea3dd32 Mon Sep 17 00:00:00 2001 From: Harald Kriebisch Date: Tue, 10 Sep 2024 18:38:00 +0200 Subject: [PATCH 1/7] Add(workflow testing) --- .github/workflows/testing.yml | 52 +++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .github/workflows/testing.yml diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml new file mode 100644 index 0000000..1466b18 --- /dev/null +++ b/.github/workflows/testing.yml @@ -0,0 +1,52 @@ +name: Run Unit Tests + +on: + push: + branches: + - develop + - master + - testing + pull_request: + branches: + - develop + - master + +jobs: + test: + runs-on: ubuntu-latest + + services: + firebase: + image: firebase/emulators + ports: + - 8080:8080 + - 8085:8085 + options: --entrypoint sh + volumes: + - .:/app + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '20.17.0' + + - name: Install pnpm + run: | + npm install -g pnpm + + - name: Install dependencies + run: pnpm install + + - name: Set up Firestore emulator + run: | + sudo pnpm add -g firebase-tools + + - name: Start Firestore emulator + run: pnpm run emulators:start + + - name: Run Unit Tests + run: pnpm run test From 67f3aa5a4157a4f22bb771c89722beb350fcc888 Mon Sep 17 00:00:00 2001 From: Harald Kriebisch Date: Tue, 10 Sep 2024 18:41:55 +0200 Subject: [PATCH 2/7] Update(workflow): use firebase tools directly --- .github/workflows/testing.yml | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 1466b18..667b85b 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -15,16 +15,6 @@ jobs: test: runs-on: ubuntu-latest - services: - firebase: - image: firebase/emulators - ports: - - 8080:8080 - - 8085:8085 - options: --entrypoint sh - volumes: - - .:/app - steps: - name: Checkout code uses: actions/checkout@v3 @@ -41,12 +31,18 @@ jobs: - name: Install dependencies run: pnpm install - - name: Set up Firestore emulator + - name: Install Firebase CLI run: | sudo pnpm add -g firebase-tools - name: Start Firestore emulator - run: pnpm run emulators:start + run: | + firebase emulators:start --only firestore --project demo --import=./emulator_data --export-on-exit=./emulator_data & + env: + FIRESTORE_EMULATOR_HOST: 'localhost:8080' + + - name: Wait for Firestore emulator to start + run: sleep 5 - name: Run Unit Tests run: pnpm run test From e199957946d52cacf417be309f6f18024206b725 Mon Sep 17 00:00:00 2001 From: Harald Kriebisch Date: Tue, 10 Sep 2024 18:44:54 +0200 Subject: [PATCH 3/7] Update(workflow): remove sudo --- .github/workflows/testing.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 667b85b..ad80a07 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -25,15 +25,13 @@ jobs: node-version: '20.17.0' - name: Install pnpm - run: | - npm install -g pnpm + run: npm install -g pnpm - name: Install dependencies run: pnpm install - name: Install Firebase CLI - run: | - sudo pnpm add -g firebase-tools + run: pnpm add -g firebase-tools - name: Start Firestore emulator run: | From bd560e371c939cb5ec4f2734d2f1945ce69e4003 Mon Sep 17 00:00:00 2001 From: Harald Kriebisch Date: Tue, 10 Sep 2024 18:47:52 +0200 Subject: [PATCH 4/7] Update(workflow): add pnpm setup & update emulators start command --- .github/workflows/testing.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index ad80a07..df37787 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -31,13 +31,10 @@ jobs: run: pnpm install - name: Install Firebase CLI - run: pnpm add -g firebase-tools + run: pnpm setup && pnpm add -g firebase-tools - name: Start Firestore emulator - run: | - firebase emulators:start --only firestore --project demo --import=./emulator_data --export-on-exit=./emulator_data & - env: - FIRESTORE_EMULATOR_HOST: 'localhost:8080' + run: pnpm run emulators:start - name: Wait for Firestore emulator to start run: sleep 5 From 104360481703a820dab5d6122ed4ccda64fa11d4 Mon Sep 17 00:00:00 2001 From: Harald Kriebisch Date: Tue, 10 Sep 2024 18:49:18 +0200 Subject: [PATCH 5/7] Update(workflow): install firebase-tools locally --- .github/workflows/testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index df37787..faf3a0c 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -31,7 +31,7 @@ jobs: run: pnpm install - name: Install Firebase CLI - run: pnpm setup && pnpm add -g firebase-tools + run: pnpm add firebase-tools - name: Start Firestore emulator run: pnpm run emulators:start From 42be90707dc24cde4ff302b4667643199e591182 Mon Sep 17 00:00:00 2001 From: Harald Kriebisch Date: Tue, 10 Sep 2024 19:08:48 +0200 Subject: [PATCH 6/7] Update(workflow): run emulators only for tests --- .github/workflows/testing.yml | 8 +------- package.json | 3 ++- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index faf3a0c..3453273 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -33,11 +33,5 @@ jobs: - name: Install Firebase CLI run: pnpm add firebase-tools - - name: Start Firestore emulator - run: pnpm run emulators:start - - - name: Wait for Firestore emulator to start - run: sleep 5 - - name: Run Unit Tests - run: pnpm run test + run: pnpm run test:ci diff --git a/package.json b/package.json index 57b3ffa..d12f442 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "scripts": { "test": "vitest run", "test:watch": "vitest", - "emulators:start": "firebase emulators:start --only firestore" + "emulators:start": "firebase emulators:start --only firestore", + "test:ci": "firebase emulators:exec --only firestore \"pnpm run test\"" }, "engines": { "node": "18.20.4 || 20.17.0 || >=22.8" From 818bfaae91a8cad653773a2bbb81b976e6da2c06 Mon Sep 17 00:00:00 2001 From: Harald Kriebisch Date: Tue, 10 Sep 2024 19:10:25 +0200 Subject: [PATCH 7/7] Update(workflow): cleanup --- .github/workflows/testing.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 3453273..92c3c74 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -24,14 +24,14 @@ jobs: with: node-version: '20.17.0' + - name: Install Firebase CLI + run: npm install -g firebase-tools + - name: Install pnpm run: npm install -g pnpm - name: Install dependencies run: pnpm install - - name: Install Firebase CLI - run: pnpm add firebase-tools - - name: Run Unit Tests run: pnpm run test:ci