Tests #9049
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: 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 |