test: test #3
Workflow file for this run
This file contains hidden or 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: Integration CI | |
| on: | |
| workflow_call: | |
| push: | |
| branches: | |
| - integrations | |
| env: | |
| CARGO_TERM_COLOR: always | |
| CARGO_INCREMENTAL: 0 | |
| CI: 1 | |
| jobs: | |
| int-tests: | |
| runs-on: ubuntu-latest-16-cores | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| submodules: 'recursive' | |
| - uses: DeterminateSystems/nix-installer-action@v14 | |
| - uses: DeterminateSystems/magic-nix-cache-action@v8 | |
| - name: Pre-populate nix-shell | |
| run: | | |
| export NIX_PATH=nixpkgs=$(jq '.nixpkgs.url' nix/sources.json -r) | |
| echo "NIX_PATH=$NIX_PATH" >> $GITHUB_ENV | |
| nix-shell --run "echo" shell.nix | |
| - name: Handle Rust dependencies caching | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| save-if: ${{ startsWith(github.ref_name, 'release/') || github.ref_name == 'develop' }} | |
| - name: Build binaries | |
| run: nix-shell --run "cargo build --bins --features=io-engine-testing" | |
| - name: Setup Test Pre-Requisites | |
| run: | | |
| sudo sysctl -w vm.nr_hugepages=3584 | |
| sudo apt-get update | |
| sudo apt-get install linux-modules-extra-$(uname -r) | |
| for module in nvme_tcp nbd nvme_rdma; do | |
| sudo modprobe $module | |
| done | |
| sudo apt-get install gdb | |
| - name: Run Rust Tests | |
| run: | | |
| echo "TEST_START_DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV | |
| nix-shell --run "./scripts/cargo-test.sh" | |
| - name: Cleanup | |
| if: always() | |
| run: nix-shell --run "./scripts/clean-cargo-tests.sh" | |
| - name: Check Coredumps | |
| run: sudo ./scripts/check-coredumps.sh --since "${TEST_START_DATE}" | |
| - name: Run JS Grpc Tests | |
| run: | | |
| echo "TEST_START_DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV | |
| nix-shell --run "./scripts/grpc-test.sh" | |
| mkdir js-reports | |
| for file in *-xunit-report.xml; do | |
| echo "<testsuites>" > "js-reports/$file" | |
| cat $file >> "js-reports/$file" | |
| echo "</testsuites>" >> "js-reports/$file" | |
| done | |
| - name: Test Report | |
| if: always() | |
| uses: pmeier/pytest-results-action@main | |
| with: | |
| path: 'js-reports/*-xunit-report.xml' | |
| summary: true | |
| display-options: a | |
| fail-on-empty: true | |
| title: Test results | |
| - name: Cleanup | |
| if: always() | |
| run: nix-shell --run "./scripts/clean-cargo-tests.sh" | |
| - name: Check Coredumps | |
| run: sudo ./scripts/check-coredumps.sh --since "${TEST_START_DATE}" | |
| # debugging | |
| - name: Setup tmate session | |
| if: ${{ failure() }} | |
| timeout-minutes: 240 | |
| uses: mxschmitt/action-tmate@v3 |