Skip to content

Tests

Tests #9296

Workflow file for this run

name: Tests
on:
push:
branches:
- master
- ci
- "releases/*"
pull_request:
branches:
- '*'
schedule:
- cron: "0 */6 * * *"
env:
RUST_TEST_THREADS: 3
RUST_BACKTRACE: 1
jobs:
test:
runs-on: ${{ matrix.os }}
timeout-minutes: 45
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-latest, macos-latest, windows-2019]
# migrations tests work only on nightly
edgedb-version: ["nightly"]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
components: "cargo,rustc,rust-std"
toolchain: '1.78'
override: true
- name: Install EdgeDB
uses: edgedb/setup-edgedb@v1
if: ${{ matrix.os != 'windows-2019' }}
with:
server-version: ${{ matrix.edgedb-version }}
- run: |
cargo test --features github_action_install
musl-test:
runs-on: ${{ matrix.os }}
timeout-minutes: 35
strategy:
max-parallel: 4
matrix:
os: [ubuntu-latest]
# migrations tests work only on nightly
edgedb-version: ["nightly"]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install musl-tools
run: "sudo apt-get install musl-tools"
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
components: "cargo,rustc,rust-std"
target: "x86_64-unknown-linux-musl"
toolchain: '1.78'
override: true
- run: |
cargo build --bins --target=x86_64-unknown-linux-musl
- uses: actions/upload-artifact@v4
with:
name: edgedb-linux-binary
path: target/x86_64-unknown-linux-musl/debug/edgedb
- name: Install EdgeDB
uses: edgedb/setup-edgedb@v1
if: ${{ matrix.os != 'windows-2019' }}
with:
server-version: ${{ matrix.edgedb-version }}
- run: |
cargo test --bins --target=x86_64-unknown-linux-musl
portable-install-tests:
runs-on: ${{ matrix.os }}
timeout-minutes: 35
strategy:
matrix:
os: [ubuntu-20.04]
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
components: "cargo,rustc,rust-std"
toolchain: '1.78'
override: true
- run: |
cargo build --tests --features docker_test_wrapper,portable_tests
- run: |
cargo test --test=docker_test_wrapper \
--features docker_test_wrapper,portable_tests
portable-tests-macos:
runs-on: macos-latest
timeout-minutes: 45
strategy:
matrix:
test: [portable_smoke, portable_project, portable_project_dir, shared_client_tests]
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
components: "cargo,rustc,rust-std"
toolchain: '1.78'
override: true
- run: |
cargo build --workspace --test=${{ matrix.test }} --bin edgedb --features portable_tests
- run: |
sudo cp target/debug/edgedb /usr/local/bin/
mkdir home_edgedb
sudo mv home_edgedb /Users/edgedb
- run: |
cargo test --workspace --test=${{ matrix.test }} --features portable_tests
portable-tests-windows:
needs: musl-test
runs-on: windows-2019
timeout-minutes: 45
strategy:
matrix:
test: [portable_smoke, portable_project, portable_project_dir, shared_client_tests]
fail-fast: false
env:
_EDGEDB_WSL_DISTRO: Debian
_EDGEDB_WSL_LINUX_BINARY: ./linux-binary/edgedb
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
components: "cargo,rustc,rust-std"
toolchain: '1.78'
override: true
- run: |
cargo build --workspace --test=${{ matrix.test }} --features portable_tests
- run: |
cargo run -- cli install -y --no-wait-for-exit-prompt
- uses: actions/download-artifact@v4
with:
name: edgedb-linux-binary
path: linux-binary
- run: |
ls linux-binary
- run: |
echo "$HOME\\AppData\\Roaming\\bin" >> $GITHUB_PATH
- uses: Vampire/setup-wsl@v1
with:
distribution: Debian
- run: |
cargo test --workspace --test=${{ matrix.test }} --features portable_tests
test-bin-installable:
runs-on: ${{ matrix.os }}
timeout-minutes: 45
strategy:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
components: "cargo,rustc,rust-std"
toolchain: '1.78'
override: true
- run: |
cargo install --locked --path=. --root=$TMPDIR
cqa:
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
components: "cargo,rustc,rust-std"
toolchain: '1.78'
override: true
- run: |
cargo clippy --all-features --workspace --all-targets
- run: |
cargo fmt --check