Walkthrough support #4098
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: Run Pytest | |
| on: | |
| pull_request: | |
| paths: | |
| - "backend/**" | |
| push: | |
| branches: | |
| - "master" | |
| paths: | |
| - "backend/**" | |
| permissions: read-all | |
| jobs: | |
| pytest: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| checks: write | |
| pull-requests: write | |
| services: | |
| mariadb: | |
| image: mariadb:10.11 | |
| ports: | |
| - 3306 | |
| env: | |
| MYSQL_USER: romm_test | |
| MYSQL_PASSWORD: passwd | |
| MYSQL_DATABASE: romm_test | |
| MYSQL_ROOT_PASSWORD: passwd | |
| options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3 | |
| valkey: | |
| image: valkey/valkey:7.2 | |
| ports: | |
| - 6379 | |
| options: >- | |
| --health-cmd="redis-cli ping" --health-interval=5s --health-timeout=2s --health-retries=3 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/[email protected] | |
| - name: Install mariadb connectors | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libmariadb3 libmariadb-dev | |
| - name: Install uv | |
| uses: astral-sh/[email protected] | |
| - name: Install python | |
| run: | | |
| uv python install 3.13 | |
| - name: Install dependencies | |
| run: | | |
| uv sync --extra test | |
| - name: Initiate database | |
| run: | | |
| mysql --host 127.0.0.1 --port ${{ job.services.mariadb.ports['3306'] }} -uroot -ppasswd -e "GRANT ALL PRIVILEGES ON romm_test.* TO 'romm_test'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;" | |
| - name: Run python tests | |
| env: | |
| DB_HOST: 127.0.0.1 | |
| DB_PORT: ${{ job.services.mariadb.ports['3306'] }} | |
| REDIS_HOST: 127.0.0.1 | |
| REDIS_PORT: ${{ job.services.valkey.ports['6379'] }} | |
| run: | | |
| cd backend | |
| uv run pytest -vv --maxfail=10 --junitxml=pytest-report.xml --cov --cov-report xml:coverage.xml --cov-config=.coveragerc . | |
| - name: Publish test results | |
| uses: EnricoMi/publish-unit-test-result-action/[email protected] | |
| if: (!cancelled()) | |
| with: | |
| files: | | |
| backend/pytest-report.xml | |
| - name: Publish coverage report | |
| uses: orgoro/[email protected] | |
| with: | |
| coverageFile: backend/coverage.xml | |
| token: ${{ secrets.GITHUB_TOKEN }} |