name: Quality Assurance
run-name: ${{ gitea.actor }} is executing Quality Assurance 🚀
on:
  # Disabled push events, because it hinders the deployment process
  # push:
  #   branches-ignore:
  #     - main  # Allow push events on all branches except main
  pull_request: {}
  workflow_call: # This allows other workflows to call this workflow

jobs:
  Quality-Assurance:
    name: Quality Assurance
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install Dependencies
        run: |
          sudo apt update
          sudo apt install -y libpq-dev postgresql
      - name: Set up Bun
        uses: oven-sh/setup-bun@v2
      - name: Set up Python 3.12
        uses: actions/setup-python@v5
        with:
          python-version: 3.12
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 22
      - name: Install uv
        run: |
          curl -LsSf https://astral.sh/uv/install.sh | sh
          echo "$HOME/.cargo/bin" >> $GITHUB_PATH
      - name: Install Python Dependencies
        run: |
          make install
      - name: Lint with black
        run: |
          make lint-backend
      - run: echo "🍏 This job's status is ${{ job.status }}."
