diff --git a/.github/workflows/ci-backend.yaml b/.github/workflows/ci-backend.yaml index 210688b..ef1d3bc 100644 --- a/.github/workflows/ci-backend.yaml +++ b/.github/workflows/ci-backend.yaml @@ -78,95 +78,95 @@ jobs: flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - # test: - # name: 'Test 🔬' - # needs: build - # strategy: - # matrix: - # os: - # - ubuntu-latest - # python-version: - # - "3.11" - # defaults: - # run: - # working-directory: backend/ - # services: - # postgres: - # image: postgres:14.2-alpine - # env: - # POSTGRES_DB: ${{ secrets.POSTGRES_DB }} - # POSTGRES_USER: ${{ secrets.POSTGRES_USERNAME }} - # POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} - # ports: - # - 5432:5432 - # options: >- - # --health-cmd pg_isready - # --health-interval 10s - # --health-timeout 5s - # --health-retries 5 - # env: - # ENVIRONMENT: ${{ secrets.ENVIRONMENT }} - # DEBUG: ${{ secrets.DEBUG }} - # POSTGRES_DB: ${{ secrets.POSTGRES_DB }} - # POSTGRES_HOST: ${{ secrets.POSTGRES_HOST }} - # POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} - # POSTGRES_PORT: ${{ secrets.POSTGRES_PORT }} - # POSTGRES_SCHEMA: ${{ secrets.POSTGRES_SCHEMA }} - # POSTGRES_USERNAME: ${{ secrets.POSTGRES_USERNAME }} - # BACKEND_SERVER_HOST: ${{ secrets.BACKEND_SERVER_HOST }} - # BACKEND_SERVER_PORT: ${{ secrets.BACKEND_SERVER_PORT }} - # BACKEND_SERVER_WORKERS: ${{ secrets.BACKEND_SERVER_WORKERS }} - # DB_TIMEOUT: ${{ secrets.DB_TIMEOUT }} - # DB_POOL_SIZE: ${{ secrets.DB_POOL_SIZE }} - # DB_MAX_POOL_CON: ${{ secrets.DB_MAX_POOL_CON }} - # DB_POOL_OVERFLOW: ${{ secrets.DB_POOL_OVERFLOW }} - # IS_DB_ECHO_LOG: ${{ secrets.IS_DB_ECHO_LOG }} - # IS_DB_EXPIRE_ON_COMMIT: ${{ secrets.IS_DB_EXPIRE_ON_COMMIT }} - # IS_DB_FORCE_ROLLBACK: ${{ secrets.IS_DB_FORCE_ROLLBACK }} - # IS_ALLOWED_CREDENTIALS: ${{ secrets.IS_ALLOWED_CREDENTIALS }} - # API_TOKEN: ${{ secrets.API_TOKEN }} - # AUTH_TOKEN: ${{ secrets.AUTH_TOKEN }} - # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - # JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }} - # JWT_SUBJECT: ${{ secrets.JWT_SUBJECT }} - # JWT_TOKEN_PREFIX: ${{ secrets.JWT_TOKEN_PREFIX }} - # JWT_ALGORITHM: ${{ secrets.JWT_ALGORITHM }} - # JWT_MIN: ${{ secrets.JWT_MIN }} - # JWT_HOUR: ${{ secrets.JWT_HOUR }} - # JWT_DAY: ${{ secrets.JWT_DAY }} - # HASHING_ALGORITHM_LAYER_1: ${{ secrets.HASHING_ALGORITHM_LAYER_1 }} - # HASHING_ALGORITHM_LAYER_2: ${{ secrets.HASHING_ALGORITHM_LAYER_2 }} - # HASHING_SALT: ${{ secrets.HASHING_SALT }} + test: + name: 'Test 🔬' + needs: build + strategy: + matrix: + os: + - ubuntu-latest + python-version: + - "3.11" + defaults: + run: + working-directory: backend/ + services: + postgres: + image: postgres:14.2-alpine + env: + POSTGRES_DB: ${{ secrets.POSTGRES_DB }} + POSTGRES_USER: ${{ secrets.POSTGRES_USERNAME }} + POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} + ports: + - 5432:5432 + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + env: + ENVIRONMENT: ${{ secrets.ENVIRONMENT }} + DEBUG: ${{ secrets.DEBUG }} + POSTGRES_DB: ${{ secrets.POSTGRES_DB }} + POSTGRES_HOST: ${{ secrets.POSTGRES_HOST }} + POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} + POSTGRES_PORT: ${{ secrets.POSTGRES_PORT }} + POSTGRES_SCHEMA: ${{ secrets.POSTGRES_SCHEMA }} + POSTGRES_USERNAME: ${{ secrets.POSTGRES_USERNAME }} + BACKEND_SERVER_HOST: ${{ secrets.BACKEND_SERVER_HOST }} + BACKEND_SERVER_PORT: ${{ secrets.BACKEND_SERVER_PORT }} + BACKEND_SERVER_WORKERS: ${{ secrets.BACKEND_SERVER_WORKERS }} + DB_TIMEOUT: ${{ secrets.DB_TIMEOUT }} + DB_POOL_SIZE: ${{ secrets.DB_POOL_SIZE }} + DB_MAX_POOL_CON: ${{ secrets.DB_MAX_POOL_CON }} + DB_POOL_OVERFLOW: ${{ secrets.DB_POOL_OVERFLOW }} + IS_DB_ECHO_LOG: ${{ secrets.IS_DB_ECHO_LOG }} + IS_DB_EXPIRE_ON_COMMIT: ${{ secrets.IS_DB_EXPIRE_ON_COMMIT }} + IS_DB_FORCE_ROLLBACK: ${{ secrets.IS_DB_FORCE_ROLLBACK }} + IS_ALLOWED_CREDENTIALS: ${{ secrets.IS_ALLOWED_CREDENTIALS }} + API_TOKEN: ${{ secrets.API_TOKEN }} + AUTH_TOKEN: ${{ secrets.AUTH_TOKEN }} + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }} + JWT_SUBJECT: ${{ secrets.JWT_SUBJECT }} + JWT_TOKEN_PREFIX: ${{ secrets.JWT_TOKEN_PREFIX }} + JWT_ALGORITHM: ${{ secrets.JWT_ALGORITHM }} + JWT_MIN: ${{ secrets.JWT_MIN }} + JWT_HOUR: ${{ secrets.JWT_HOUR }} + JWT_DAY: ${{ secrets.JWT_DAY }} + HASHING_ALGORITHM_LAYER_1: ${{ secrets.HASHING_ALGORITHM_LAYER_1 }} + HASHING_ALGORITHM_LAYER_2: ${{ secrets.HASHING_ALGORITHM_LAYER_2 }} + HASHING_SALT: ${{ secrets.HASHING_SALT }} - # runs-on: ${{ matrix.os }} - # steps: - # - name: Check repository - # uses: actions/checkout@v3 - # - name: Set up Python ${{ matrix.python-version }} - # uses: actions/setup-python@v4 - # with: - # python-version: ${{ matrix.python-version }} - # cache: 'pip' - # - name: Display Python version - # run: python -c "import sys; print(sys.version)" - # - name: Install dependencies - # run: | - # python -m pip install --upgrade pip - # if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - # - name: Install Dependencies for Testing - # run: | - # pip install pytest pytest-asyncio pytest pytest-xdist - # - name: Test with Pytest-Cov - # run: | - # pytest --cov --cov-report xml . - # - name: Upload coverage to Codecov - # uses: codecov/codecov-action@v3 - # with: - # token: ${{ secrets.CODECOV_TOKEN }} - # fail_ci_if_error: false - # flags: backend_app_tests - # name: codecov-umbrella - # verbose: true + runs-on: ${{ matrix.os }} + steps: + - name: Check repository + uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: 'pip' + - name: Display Python version + run: python -c "import sys; print(sys.version)" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Install Dependencies for Testing + run: | + pip install pytest pytest-asyncio pytest pytest-xdist + - name: Test with Pytest-Cov + run: | + pytest --cov --cov-report xml . + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + fail_ci_if_error: false + flags: backend_app_tests + name: codecov-umbrella + verbose: true docker_build: name: 'Docker Build 🐳' diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 3f13c95..a29692d 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -31,6 +31,8 @@ jobs: # (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml with: config-name: release-drafter.yml + # https://github.com/release-drafter/release-drafter/issues/1125 + commitish: main # disable-autolabeler: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/backend/tests/conftest.py b/backend/tests/conftest.py index 5906541..fac636c 100644 --- a/backend/tests/conftest.py +++ b/backend/tests/conftest.py @@ -28,4 +28,4 @@ async def async_client(initialize_backend_test_application: fastapi.FastAPI) -> base_url="http://testserver", headers={"Content-Type": "application/json"}, ) as client: - yield client + yield client \ No newline at end of file