Skip to content

Ci speed a improvements #48

Ci speed a improvements

Ci speed a improvements #48

Workflow file for this run

name: Unit Tests
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]
# pydantic-version: ["<2.0.0", ">=2.0.0"]
# exclude:
# - python-version: "3.9"
# pydantic-version: "<2.0.0"
# - python-version: "3.11"
# pydantic-version: "<2.0.0"
# - python-version: "3.12"
# pydantic-version: "<2.0.0"
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Fetch tags
run: git fetch --tags --prune --unshallow
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip
- uses: shogo82148/actions-setup-redis@v1
with:
redis-version: "7.x"
- name: Install dependencies
run: |
# sudo apt install redis
# Start LDAP in background (wait/seed later)
bash continuous_integration/scripts/start_LDAP.sh --start-only
# These packages are installed in the base environment but may be older
# versions. Explicitly upgrade them because they often create
# installation problems if out of date.
python -m pip install --upgrade pip setuptools numpy
pushd ..
git clone https://github.com/bluesky/bluesky-queueserver.git
cd bluesky-queueserver
pip install .
popd
pushd ..
git clone https://github.com/bluesky/bluesky-queueserver-api.git
cd bluesky-queueserver-api
pip install .
popd
pip install .
pip install -r requirements-dev.txt
# pip install "pydantic${{ matrix.pydantic-version }}"
# pip install bluesky==1.11.0
# Wait for LDAP readiness and seed test users
bash continuous_integration/scripts/start_LDAP.sh --wait-seed
pip list
- name: Test with pytest
env:
PYTEST_ADDOPTS: "--durations=20 -n auto --dist=loadfile"
run: |
coverage run -m pytest -vv
coverage report -m
- name: Dump LDAP diagnostics on failure
if: failure()
run: |
docker ps
docker compose -f continuous_integration/docker-configs/ldap-docker-compose.yml ps
LDAP_CONTAINER_ID=$(docker compose -f continuous_integration/docker-configs/ldap-docker-compose.yml ps -q openldap | tr -d '[:space:]')
if [ -n "$LDAP_CONTAINER_ID" ]; then
docker logs --tail 200 "$LDAP_CONTAINER_ID"
else
docker compose -f continuous_integration/docker-configs/ldap-docker-compose.yml logs --tail 200 openldap
fi