Skip to content

Feat/hide items crud reference #1607

Feat/hide items crud reference

Feat/hide items crud reference #1607

Workflow file for this run

name: Test Backend
on:
push:
branches:
- master
pull_request:
types:
- opened
- synchronize
jobs:
test-backend:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.10"
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Install ODBC Driver 18 for SQL Server
run: |
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --batch --yes --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/ubuntu/$(lsb_release -rs)/prod $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 unixodbc-dev
- name: Generate .env for CI
run: bash scripts/ci-generate-env.sh localhost
- run: docker compose down -v --remove-orphans
- run: docker compose up -d db mailcatcher
- name: Wait for SQL Server to be ready
run: |
for i in $(seq 1 30); do
docker compose exec db /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "${MSSQL_PASSWORD}" -Q "SELECT 1" -C > /dev/null 2>&1 && exit 0
echo "Waiting for SQL Server... ($i/30)"
sleep 2
done
echo "SQL Server did not become ready in time" && exit 1
- name: Create database
run: |
docker compose exec db /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "${MSSQL_PASSWORD}" -Q "IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = '${MSSQL_DB}') CREATE DATABASE [${MSSQL_DB}]" -C
- name: Migrate DB
run: uv run bash scripts/prestart.sh
working-directory: backend
- name: Run tests
run: uv run bash scripts/tests-start.sh "Coverage for ${{ github.sha }}"
working-directory: backend
- run: docker compose down -v --remove-orphans
- name: Store coverage files
uses: actions/upload-artifact@v7
with:
name: coverage-html
path: backend/htmlcov
include-hidden-files: true
- name: Coverage report
run: uv run coverage report --fail-under=90
working-directory: backend