Merge pull request #3 from taghash/Extending_RaW_Feature #6
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
--- | |
name: CI | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
permissions: | |
contents: read | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
name: CI | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 16.x] | |
database-type: | |
[ | |
postgres, | |
pgnative, | |
mysql, | |
mssql, | |
sqlite3, | |
cockroachdb, | |
better-sqlite3, | |
oracledb, | |
] | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- name: Setup Node ${{ matrix.node-version }} | |
uses: actions/setup-node@v3.7.0 | |
with: | |
always-auth: false | |
node-version: ${{ matrix.node-version }} | |
- name: Start Database(s) | |
run: | | |
docker-compose \ | |
--file "scripts/docker-compose.yml" \ | |
up \ | |
--detach \ | |
--build \ | |
"${{ matrix.database-type }}" | |
if: matrix.database-type != 'sqlite3' && matrix.database-type != 'better-sqlite3' | |
- name: Run npm install | |
run: npm install | |
- name: Initialize Database(s) | |
run: | | |
docker-compose \ | |
--file "scripts/docker-compose.yml" \ | |
up \ | |
"wait${{ matrix.database-type }}" | |
if: matrix.database-type != 'sqlite3' && matrix.database-type != 'better-sqlite3' | |
- name: Install pg-native | |
run: npm i pg-native | |
if: matrix.database-type == 'pgnative' | |
- name: Install oracle dependencies | |
run: ./scripts/oracledb-install-driver-libs.sh run | |
if: matrix.database-type == 'oracledb' | |
- run: npm run build | |
- name: Run Tests | |
run: npm run test:db | |
if: matrix.database-type != 'oracledb' | |
env: | |
CI: true | |
DB: ${{ matrix.database-type }} | |
KNEX_TEST_TIMEOUT: 60000 | |
# This allows for oracle tests to run and fail as part of PR #4889. | |
# This is a short term fix to allow a merge of CI functionality with | |
# full test coverage to follow soon after. With full test fix please | |
# delete this step and remove `if: matrix.database-type != 'oracledb' | |
# from the step above. -- Ferris (@code-ape) | |
- name: Run Tests (oracle, allow failing temporarily) | |
run: npm run test:db || true | |
if: matrix.database-type == 'oracledb' | |
env: | |
CI: true | |
DB: ${{ matrix.database-type }} | |
KNEX_TEST_TIMEOUT: 60000 | |
- name: Stop Database(s) | |
run: | | |
docker-compose \ | |
--file "scripts/docker-compose.yml" \ | |
down | |
if: matrix.database-type != 'sqlite3' && matrix.database-type != 'better-sqlite3' | |
user_experience: | |
runs-on: ${{ matrix.os }} | |
name: Test user experience | |
strategy: | |
matrix: | |
node-version: [18.x, 16.x, 14.x, 12.x] | |
os: ['ubuntu-latest', 'macos-latest', 'windows-latest'] | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
with: { fetch-depth: 1 } | |
- name: Setup Node ${{ matrix.node-version }} | |
uses: actions/setup-node@v3.7.0 | |
with: | |
always-auth: false | |
node-version: ${{ matrix.node-version }} | |
- name: Test npm git dependency | |
shell: bash | |
run: | | |
mkdir TMP/ | |
echo "{ \"dependencies\": { \"knex\": \"git+file://$(pwd)/\" } }" > TMP/package.json | |
cd TMP/ | |
npm install --verbose |