Skip to content
Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
166 changes: 10 additions & 156 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,25 +45,27 @@ jobs:

# Run the integration, find and mapreduce tests against CouchDB on Node.js.
# This should be run against every version of CouchDB and every version of
# Node.js we support.
# Node.js we support. Also runs all the Node.js adapters against CouchDB.
# This should be run for every adapter on every version of Node.js we support.

couchdb-nodejs:
needs: lint
strategy:
fail-fast: false
matrix:
adapter: ['leveldb', 'memory']
couchdb: ['2.3', '3.1']
node: [14, 16]
cmd:
- npm test
- TYPE=find PLUGINS=pouchdb-find ADAPTERS=http npm test
- TYPE=mapreduce ADAPTERS=http npm test
- TYPE=find PLUGINS=pouchdb-find npm test
- TYPE=mapreduce npm test
runs-on: ubuntu-latest
env:
ADAPTERS: ${{ matrix.adapter }}
CLIENT: node
SERVER: couchdb-master
COUCH_HOST: http://admin:[email protected]:5984
SKIP_MIGRATION: 1
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -77,19 +79,11 @@ jobs:
- uses: ./.github/actions/build-pouchdb
- id: test
run: ${{ matrix.cmd }}
continue-on-error: true
- name: First retry
id: retry
if: steps.test.outcome == 'failure'
run: ${{ matrix.cmd }}
continue-on-error: true
- name: Second retry
if: steps.retry.outcome == 'failure'
run: ${{ matrix.cmd }}

# Run the integration, find and mapreduce tests against CouchDB in the
# browser. This should be run against every version of CouchDB we support and
# every target browser.
# every target browser. Also runs all browser adapters against CouchDB.
# This should be run for every adapter on every target browser.

couchdb-browser:
needs: lint
Expand All @@ -98,17 +92,18 @@ jobs:
matrix:
couchdb: ['2.3','3.1']
client: ['firefox', 'chromium', 'webkit']
adapter: ['http', 'idb', 'indexeddb', 'memory']
cmd:
- npm test
- TYPE=find PLUGINS=pouchdb-find ADAPTERS=http npm test
- TYPE=mapreduce ADAPTERS=http npm test
runs-on: ubuntu-latest
env:
ADAPTERS: ${{ matrix.adapter }}
USE_MINIFIED: 1
CLIENT: ${{ matrix.client }}
SERVER: couchdb-master
COUCH_HOST: http://admin:[email protected]:5984
SKIP_MIGRATION: 1
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -123,137 +118,6 @@ jobs:
- uses: ./.github/actions/build-pouchdb
- id: test
run: ${{ matrix.cmd }}
continue-on-error: true
- name: First retry
id: retry
if: steps.test.outcome == 'failure'
run: ${{ matrix.cmd }}
continue-on-error: true
- name: Second retry
if: steps.retry.outcome == 'failure'
run: ${{ matrix.cmd }}

# Run the integration, find and mapreduce tests against all the Node.js
# PouchDB adapters. This should be run for every adapter on every version of
# Node.js we support.

nodejs-adapter:
needs: lint
strategy:
fail-fast: false
matrix:
node: [14, 16]
adapter: ['leveldb', 'memory']
cmd:
- npm test
- TYPE=find PLUGINS=pouchdb-find npm test
- TYPE=mapreduce npm test
runs-on: ubuntu-latest
env:
CLIENT: node
ADAPTERS: ${{ matrix.adapter }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: ./.github/actions/install-node-package
with:
node-version: ${{ matrix.node }}
- uses: ./.github/actions/build-pouchdb
- id: test
run: ${{ matrix.cmd }}
continue-on-error: true
- name: First retry
id: retry
if: steps.test.outcome == 'failure'
run: ${{ matrix.cmd }}
continue-on-error: true
- name: Second retry
if: steps.retry.outcome == 'failure'
run: ${{ matrix.cmd }}

# Run the integration, find and mapreduce tests against all the browser-based
# adapters. PouchDB adapters. This should be run for every adapter on every
# target browser.

browser-adapter:
needs: lint
strategy:
fail-fast: false
matrix:
client: ['firefox', 'chromium', 'webkit']
adapter: ['idb', 'indexeddb', 'memory']
cmd:
- npm test
- TYPE=find PLUGINS=pouchdb-find npm test
- TYPE=mapreduce npm test
runs-on: ubuntu-latest
env:
USE_MINIFIED: 1
CLIENT: ${{ matrix.client }}
ADAPTERS: ${{ matrix.adapter }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: ./.github/actions/install-node-package
with:
node-version: ${{ env.NODE_VERSION }}
- uses: ./.github/actions/install-playwright
- uses: ./.github/actions/build-pouchdb
- id: test
run: ${{ matrix.cmd }}
continue-on-error: true
- name: First retry
id: retry
if: steps.test.outcome == 'failure'
run: ${{ matrix.cmd }}
continue-on-error: true
- name: Second retry
if: steps.retry.outcome == 'failure'
run: ${{ matrix.cmd }}

# Run the integration, find and mapreduce tests using pouchdb-server as the
# remote adapter. This checks that pouchdb-server works with the current
# PouchDB source tree. We run this on Node.js and on every target browser.
# Running against different versions of Node.js might require splitting this
# out into a distinct job.

pouchdb-server:
needs: lint
strategy:
fail-fast: false
matrix:
client: ['node', 'firefox', 'chromium', 'webkit']
cmd:
- npm test
- TYPE=find PLUGINS=pouchdb-find ADAPTERS=http npm test
- TYPE=mapreduce ADAPTERS=http npm test
runs-on: ubuntu-latest
env:
CLIENT: ${{ matrix.client }}
SERVER: pouchdb-server
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: ./.github/actions/install-node-package
with:
node-version: ${{ env.NODE_VERSION }}
- if: ${{ matrix.client != 'node' }}
uses: ./.github/actions/install-playwright
- uses: ./.github/actions/build-pouchdb
- id: test
run: ${{ matrix.cmd }}
continue-on-error: true
- name: First retry
id: retry
if: steps.test.outcome == 'failure'
run: ${{ matrix.cmd }}
continue-on-error: true
- name: Second retry
if: steps.retry.outcome == 'failure'
run: ${{ matrix.cmd }}

# Run all the other testing tasks -- unit tests, and so on. These should be
# run on every version of Node.js that we support.
Expand All @@ -271,7 +135,6 @@ jobs:
- npm run test-unit
- npm run test-component
- npm run test-fuzzy
# - SERVER=pouchdb-server POUCHDB_SERVER_FLAGS=--in-memory PLUGINS=pouchdb-find npm run report-coverage
- npm run verify-build
runs-on: ubuntu-latest
steps:
Expand All @@ -284,12 +147,3 @@ jobs:
- uses: ./.github/actions/build-pouchdb
- id: test
run: ${{ matrix.cmd }}
continue-on-error: true
- name: First retry
id: retry
if: steps.test.outcome == 'failure'
run: git reset --hard && ${{ matrix.cmd }}
continue-on-error: true
- name: Second retry
if: steps.retry.outcome == 'failure'
run: git reset --hard && ${{ matrix.cmd }}
4 changes: 0 additions & 4 deletions TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,10 +151,6 @@ following values:
- `couchdb-master`: use this value if you already have CouchDB running; it
causes `COUCH_HOST` to be set to the correct value.

#### `SKIP_MIGRATION` (default: `0`)

Set this to `1` to skip the migration tests.

#### `VIEW_ADAPTERS` (default: `memory`)

Comma-separated list of preferred view adapter backends that PouchDB will use.
Expand Down
1 change: 0 additions & 1 deletion bin/test-browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ const qs = {
viewAdapters: process.env.VIEW_ADAPTERS,
autoCompaction: process.AUTO_COMPACTION,
SERVER: process.env.SERVER,
SKIP_MIGRATION: process.env.SKIP_MIGRATION,
srcRoot: process.env.SRC_ROOT,
src: process.env.POUCHDB_SRC,
useMinified: process.env.USE_MINIFIED,
Expand Down
6 changes: 1 addition & 5 deletions tests/integration/browser.migration.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,7 @@ describe('migration', function () {
var isNodeWebkit = typeof window !== 'undefined' &&
typeof process !== 'undefined';

var skipMigration = 'SKIP_MIGRATION' in testUtils.params() &&
testUtils.params().SKIP_MIGRATION;

if (!usingDefaultPreferredAdapters() || window.msIndexedDB ||
isNodeWebkit || skipMigration) {
if (!usingDefaultPreferredAdapters() || window.msIndexedDB || isNodeWebkit) {
skip = true;
return this.skip();
}
Expand Down