Сгенерировать Allure отчет на Github Pages
Всем привет. Учусь автотестам на python и всему что с ними связано. Теперь пришло время научиться CI/CD с помощью GitHub Actions. Тестирую API микросервис. Так вот, задумка и частичная реализация уже готовы. При PR происходит следующее - запускается workflow в котором:
- Подготавливается среда Ubuntu, зависимости.
- Стартует
docker compose
в котором - 2 API приложения простых (одно для для регистрации и аутентификации, второе само приложение - "Университет" и 2 базы данных к ним.) - Стартует наш тест фреймворк - он пуллится из докерхаба и связывается с сетью тестируемого приложения, проходят тесты и все хорошо!
До этого момента все работает!
- По результатам отработки тестов формируется Allure отчет и публикуется в GitBub pages.
Но как выполнить этот 4 пункт я не понимаю. Проблема в том, что тесты стартуют из docker-образа, и стало быть у нас нет доступа к папке с allure отчетом? Она же формируется внутри как-бы образа. Что делать в таком случае, может есть у кого идеи?
Файл workflow:
name: Python application
on: pull_request
env:
POSTGRES_USER: ${{ secrets.POSTGRES_USER }}
POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
POSTGRES_DB_AUTH: ${{ secrets.POSTGRES_DB_AUTH }}
POSTGRES_DB_UNIVERSITY: ${{ secrets.POSTGRES_DB_UNIVERSITY }}
AUTH_SERVICE_INTERNAL_URL: ${{ secrets.AUTH_SERVICE_INTERNAL_URL }}
AUTH_SERVICE_API_URL: ${{ secrets.AUTH_SERVICE_API_URL }}
UNIVERSITY_SERVICE_INTERNAL_URL: ${{ secrets.UNIVERSITY_SERVICE_INTERNAL_URL }}
UNIVERSITY_SERVICE_API_URL: ${{ secrets.UNIVERSITY_SERVICE_API_URL }}
permissions:
contents: read
pages: write
id-token: write
jobs:
network_run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.13
uses: actions/setup-python@v3
with:
python-version: "3.13"
- name: Install the latest version of ruff
uses: astral-sh/ruff-action@v3
with:
version: "latest"
- name: Install dependencies
run: |
sudo apt-get update
python -m pip install --upgrade pip
pip install -r requirments.txt
- name: Run Docker Compose
run: docker compose up -d
- name: Pull Docker rep
run: docker pull niklevchenko/api-tests:latest
- name: Run test
run: |
docker run --network host niklevchenko/api-tests:latest
cd app/allure_results'''
Doсkerfile
тестового фреймворка:
FROM python:latest
WORKDIR /app
RUN apt-get update
COPY requirments.txt .
RUN pip install -r requirments.txt
COPY . .
CMD ["pytest", "--alluredir=allure_results"]