on: [ push ] env: POSTGRES_HOST: "postgres" POSTGRES_DB: "newsreader" POSTGRES_USER: "newsreader" POSTGRES_PASSWORD: "newsreader" jobs: test: runs-on: docker services: postgres: image: postgres:15 env: POSTGRES_HOST: "${{ env.POSTGRES_HOST }}" POSTGRES_DB: "${{ env.POSTGRES_NAME }}" POSTGRES_NAME: "${{ env.POSTGRES_NAME }}" POSTGRES_USER: "${{ env.POSTGRES_USER }}" POSTGRES_PASSWORD: "${{ env.POSTGRES_PASSWORD }}" memcached: image: memcached:1.5.22 steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.11' - uses: actions/cache@v4 with: path: "${{ GITHUB_WORKSPACE }}/.cache/uv" key: ${{ runner.os }}-uv-${{ hashFiles('uv.lock') }} restore-keys: | ${{ runner.os }}-uv- - uses: actions/cache@v4 with: path: "${{ GITHUB_WORKSPACE }}/.cache/pip" key: ${{ runner.os }}-pip- restore-keys: | ${{ runner.os }}-pip- - run: pip install uv env: PIP_CACHE_DIR: "${{ GITHUB_WORKSPACE }}/.cache/pip" - run: uv sync --extra testing --extra ci env: UV_CHACHE_DIR: "${{ GITHUB_WORKSPACE }}/.cache/uv" - run: ./.venv/bin/coverage run ./src/manage.py test newsreader env: DJANGO_SETTINGS_MODULE: "newsreader.conf.ci" POSTGRES_HOST: "${{ env.POSTGRES_HOST }}" POSTGRES_DB: "${{ env.POSTGRES_NAME }}" POSTGRES_NAME: "${{ env.POSTGRES_NAME }}" POSTGRES_USER: "${{ env.POSTGRES_USER }}" POSTGRES_PASSWORD: "${{ env.POSTGRES_PASSWORD }}"