name: Django CI Pipeline

on:
  push:
    branches: 
      - main
      - release
      - testing-pipeline

jobs:
  build:

    runs-on: ubuntu-22.04

    steps:
    - uses: actions/checkout@v4

    - name: Install python3-venv
      id: install
      run: |
        apt-get update
        apt-get install python3 python3-venv python3-pip -y

    - name: Check Python version
      run: |
        python3 --version

    - name: Create virtual environment
      run: |
        python3 -m venv venv
        source venv/bin/activate
        echo "Virtual environment created successfully"
      # https://docs.github.com/en/actions/learn-github-actions/contexts#steps-context
      if: steps.install.outcome == 'success'

    - name: Install dependencies
      run: |
        source venv/bin/activate
        pip install --upgrade pip
        pip install -r requirements.txt

    - name: Set random secret key
      run: |
        source venv/bin/activate
        SECRET_KEY=$(python3 -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())')
        echo "${SECRET_KEY}"

    - name: Run tests
      run: |
        source venv/bin/activate
        python manage.py test

