diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c8bb7801a..5aa87602d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -75,6 +75,49 @@ jobs: name: wheel-${{ matrix.py-version }} path: ./dist/*.whl + test-memray: + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-python@v2 + with: + python-version: "3.8" + architecture: 'x64' + + - uses: actions/download-artifact@v3 + with: + name: wheel-3.8 + + - name: Install client + run: pip install *.whl + + - name: Install test dependencies + run: pip install -r test/requirements.txt + + - name: Run Aerospike server + run: docker run -d --name aerospike -p 3000-3002:3000-3002 aerospike/aerospike-server + + - name: Create config.conf + run: cp config.conf.template config.conf + working-directory: test + + - uses: ./.github/actions/wait-for-as-server-to-start + with: + container-name: aerospike + + - name: Get number of tests + run: echo "NUM_TESTS=$(python3 -m pytest new_tests/ --collect-only -q | tail -n 1 | awk '{print $1;}')" >> $GITHUB_ENV + working-directory: test + + - name: Run tests + # Get number of tests since setting to 0 doesn't work properly + # pytest-memray currently throws a ZeroDivision error due to having a bug + # We ignore this for now + run: python -m pytest ./new_tests --memray --memray-bin-path=./ --most-allocations=${{ env.NUM_TESTS }} || true + working-directory: test + generate-coverage-report: runs-on: ubuntu-latest steps: diff --git a/test/requirements.txt b/test/requirements.txt index e9043f2e7..7e1acd0ec 100644 --- a/test/requirements.txt +++ b/test/requirements.txt @@ -1,3 +1,5 @@ pytest==7.4.0 # To generate coverage reports in the Github Actions pipeline pytest-cov==4.1.0 +# Memory profiling +pytest-memray==1.5.0