Ci speed a improvements #48
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: 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 |