Skip to content

feat(wasm): enable wasm32-unknown-unknown compilation of query connectors, query core, and request handlers #1267

feat(wasm): enable wasm32-unknown-unknown compilation of query connectors, query core, and request handlers

feat(wasm): enable wasm32-unknown-unknown compilation of query connectors, query core, and request handlers #1267

Workflow file for this run

name: Schema Engine
on:
push:
branches:
- main
pull_request:
paths-ignore:
# Generic
- '.buildkite/**'
- '*.md'
- 'LICENSE'
- 'CODEOWNERS'
- 'renovate.json'
# Specific
- 'query-engine/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test-mongodb-schema-connector:
name: "Test ${{ matrix.database.name }} on Linux"
strategy:
fail-fast: false
matrix:
database:
- name: "mongodb42"
url: "mongodb://prisma:prisma@localhost:27016/?authSource=admin&retryWrites=true"
- name: "mongodb44"
url: "mongodb://prisma:prisma@localhost:27017/?authSource=admin&retryWrites=true"
- name: "mongodb5"
url: "mongodb://prisma:prisma@localhost:27018/?authSource=admin&retryWrites=true"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- name: Login to Docker Hub
uses: docker/login-action@v2
continue-on-error: true
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: "Start ${{ matrix.database.name }}"
run: make start-${{ matrix.database.name }}-single
- run: cargo test -p mongodb-schema-connector
env:
CLICOLOR_FORCE: 1
TEST_DATABASE_URL: ${{ matrix.database.url }}
test-linux:
name: "Test ${{ matrix.database.name }} on Linux"
strategy:
fail-fast: false
matrix:
database:
- name: mssql_2017
url: "sqlserver://localhost:1434;database=master;user=SA;password=<YourStrong@Passw0rd>;trustServerCertificate=true;socket_timeout=60;isolationLevel=READ UNCOMMITTED"
- name: mssql_2019
url: "sqlserver://localhost:1433;database=master;user=SA;password=<YourStrong@Passw0rd>;trustServerCertificate=true;socket_timeout=60;isolationLevel=READ UNCOMMITTED"
- name: mysql_5_6
url: "mysql://root:prisma@localhost:3309"
- name: mysql_5_7
url: "mysql://root:prisma@localhost:3306"
- name: mysql_8
url: "mysql://root:prisma@localhost:3307"
- name: mysql_mariadb
url: "mysql://root:prisma@localhost:3308"
- name: postgres9
url: "postgresql://postgres:prisma@localhost:5431"
- name: postgres10
url: "postgresql://postgres:prisma@localhost:5432"
- name: postgres11
url: "postgresql://postgres:prisma@localhost:5433"
- name: postgres12
url: "postgresql://postgres:prisma@localhost:5434"
- name: postgres13
url: "postgresql://postgres:prisma@localhost:5435"
- name: postgres14
url: "postgresql://postgres:prisma@localhost:5437"
- name: postgres15
url: "postgresql://postgres:prisma@localhost:5438"
- name: cockroach_22_2
url: "postgresql://prisma@localhost:26259"
- name: cockroach_22_1_0
url: "postgresql://prisma@localhost:26257"
- name: sqlite
url: sqlite
- name: vitess_5_7
url: "mysql://root:prisma@localhost:33577/test"
shadow_database_url: "mysql://root:prisma@localhost:33578/shadow"
is_vitess: true
single_threaded: true
- name: vitess_8_0
url: "mysql://root:prisma@localhost:33807/test"
shadow_database_url: "mysql://root:prisma@localhost:33808/shadow"
is_vitess: true
single_threaded: true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- name: Login to Docker Hub
uses: docker/login-action@v2
continue-on-error: true
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: "Start ${{ matrix.database.name }}"
run: make start-${{ matrix.database.name }}
- run: cargo test -p sql-introspection-tests
if: ${{ !matrix.database.single_threaded }}
env:
CLICOLOR_FORCE: 1
TEST_DATABASE_URL: ${{ matrix.database.url }}
- run: cargo test -p sql-schema-describer
if: ${{ !matrix.database.single_threaded }}
env:
CLICOLOR_FORCE: 1
TEST_DATABASE_URL: ${{ matrix.database.url }}
- run: cargo test -p sql-migration-tests
if: ${{ !matrix.database.single_threaded }}
env:
CLICOLOR_FORCE: 1
TEST_DATABASE_URL: ${{ matrix.database.url }}
RUST_LOG: debug
- run: cargo test -p schema-engine-cli
if: ${{ !matrix.database.single_threaded }}
env:
CLICOLOR_FORCE: 1
TEST_DATABASE_URL: ${{ matrix.database.url }}
- run: cargo test -p sql-introspection-tests -- --test-threads=1
if: ${{ matrix.database.is_vitess }}
env:
CLICOLOR_FORCE: 1
TEST_DATABASE_URL: ${{ matrix.database.url }}
TEST_SHADOW_DATABASE_URL: ${{ matrix.database.shadow_database_url }}
- run: cargo test -p sql-migration-tests -- --test-threads=1
if: ${{ matrix.database.is_vitess }}
env:
CLICOLOR_FORCE: 1
TEST_DATABASE_URL: ${{ matrix.database.url }}
TEST_SHADOW_DATABASE_URL: ${{ matrix.database.shadow_database_url }}
RUST_LOG: debug
- run: cargo test -p schema-engine-cli -- --test-threads=1
if: ${{ matrix.database.is_vitess }}
env:
CLICOLOR_FORCE: 1
TEST_DATABASE_URL: ${{ matrix.database.url }}
TEST_SHADOW_DATABASE_URL: ${{ matrix.database.shadow_database_url }}
- run: cargo test -p sql-schema-describer -- --test-threads=1
if: ${{ !matrix.database.is_vitess && matrix.database.single_threaded }}
env:
CLICOLOR_FORCE: 1
TEST_DATABASE_URL: ${{ matrix.database.url }}
- run: cargo test -p sql-introspection-tests -- --test-threads=1
if: ${{ !matrix.database.is_vitess && matrix.database.single_threaded }}
env:
CLICOLOR_FORCE: 1
TEST_DATABASE_URL: ${{ matrix.database.url }}
- run: cargo test -p sql-migration-tests -- --test-threads=1
if: ${{ !matrix.database.is_vitess && matrix.database.single_threaded }}
env:
CLICOLOR_FORCE: 1
TEST_DATABASE_URL: ${{ matrix.database.url }}
RUST_LOG: debug
- run: cargo test -p schema-engine-cli -- --test-threads=1
if: ${{ !matrix.database.is_vitess && matrix.database.single_threaded }}
env:
CLICOLOR_FORCE: 1
TEST_DATABASE_URL: ${{ matrix.database.url }}
test-windows:
strategy:
fail-fast: false
matrix:
db:
- name: mysql
url: "mysql://root@localhost:3306?connect_timeout=20&socket_timeout=60"
- name: mariadb
url: "mysql://root@localhost:3306?connect_timeout=20&socket_timeout=60"
rust:
- stable
os:
- windows-latest
runs-on: ${{ matrix.os }}
name: "Test ${{ matrix.db.name }} on Windows"
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ matrix.rust }}-${{ hashFiles('**/Cargo.lock') }}
- name: Install ${{ matrix.db.name }}
run: |
iwr -useb 'https://raw.githubusercontent.com/scoopinstaller/install/master/install.ps1' -outfile 'install.ps1'
.\install.ps1 -RunAsAdmin
scoop install sudo
scoop install ${{ matrix.db.name }}
sudo mysqld --install
sudo sc start MySQL
- name: Run tests
run: cargo test -p sql-migration-tests
env:
TEST_DATABASE_URL: ${{ matrix.db.url }}