search2_chatgpt/.github/workflows/python-tests.yml
2025-03-30 16:27:44 +06:00

104 lines
3 KiB
YAML

# File: .github/workflows/python-tests.yml
name: Test and Build Docker Images
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
# Задача 0 - прогон диагностики
diag:
runs-on: ubuntu-latest
steps:
- name: Early diagnostics...
run: |
echo This is
cat /etc/os-release
echo Running on `uname -a` by `whoami`
echo CPU info:
lscpu
echo PCI info
lspci
echo Memory:
free -h
echo Disk:
df -h
echo Docker is
docker -v
- name: Show Environment Variables Inside Job Container
run: |
echo "--- Environment Variables ---"
env | sort # Выводим переменные окружения
echo "---------------------------"
echo "DOCKER_HOST variable is: '$DOCKER_HOST'" # Проверяем конкретно DOCKER_HOST
# --- Задача 1: Запуск тестов ---
test:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r backend/requirements.txt
- name: Run tests with pytest
env: # Устанавливаем PYTHONPATH для этого шага
PYTHONPATH: ${{ github.workspace }}
run: |
# Запускаем pytest
pytest backend/tests/
# --- Задача 2: Сборка Docker образов ---
build_images:
runs-on: ubuntu-latest
needs: test # Запускать только после успешных тестов
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Show Environment Variables Inside Job Container
run: |
echo "--- Environment Variables ---"
env | sort # Выводим переменные окружения
echo "---------------------------"
echo "DOCKER_HOST variable is: '$DOCKER_HOST'" # Проверяем конкретно DOCKER_HOST
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/amd64
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build backend image
run: |
docker build \
--tag myapp-backend:latest \
--file backend/Dockerfile \
./backend
- name: Build frontend image
run: |
docker build \
--tag myapp-frontend:latest \
--file frontend/Dockerfile \
./frontend
- name: Verify images built
run: |
echo "Listing built Docker images:"
docker images myapp-backend:latest
docker images myapp-frontend:latest