PunchKwara doctors lament poor pay, illegal salary deductionsEl Comercio¿Meta favorece a Flávio Bolsonaro y perjudica a Lula? Las claves de la polémica electoral en BrasilRTP DesportoMotoGP: terminou a temporada para RazgatliogluESPNTransfer rumors, news: Premier League clubs eye Alexander-Arnold amid Real Madrid uncertaintyThe Jerusalem PostMandelblit says he approved questioning Netanyahu as suspect, defense challenges wordingDaily MaverickHegseth meets Netanyahu in unannounced visit to Israel, source saysInquirerMarcos vows reforms to boost investor confidence, stock marketCollider‘Sense and Sensibility’ Officially Posts One of the Weekend’s Best Per-Theater AveragesObservador DesportoMoçambique. Supostos terroristas abatidos por fuzileirosSky TG24I titoli di Sky TG24 del 20 ottobre, edizione delle 8
The Daily Newsstand · Free, Always
Tuesday, October 20, 2026

Allure Report Storage: как настроить своё хранилище отчётов

Translate

Allure Report всегда не хватало хранилища для отчётов, которое позволяло бы легко работать с историей и смотреть отчёты удалённо — а это сильно облегчило бы определение флаков и анализ трендов.

Чтобы решить эту проблему, сообщество Allure Report создало целую плеяду проектов:

На Хабре есть замечательная статья, сравнивающая эти решения, а также самостоятельную публикацию через GitLab Pages. Можно также почитать руководство для pytest и fescobar/allure-docker-service (тоже Хабр) или официальное руководство Allure Report для GitHub Pages и simple-elf/allure-report-action.

Недавно в Allure 3 появился официальный аналог этих проектов — Allure Report Storage, работающий через Docker или Cloudflare Worker. В этом руководстве я покажу, как установить и запустить это хранилище.

1. Подготовка к запуску

Код демонстрации

https://github.com/rattus-aristarchus/self-hosted-storage-demo

Что понадобится

Настройка

Установите Allure 3 и Docker.

Если уже есть проект с Allure 3, используйте его, если нет — скачайте базовый проект с Allure Starter Project и добавьте в него файл настроек Allure 3 allurerc.js:

export default {
  name: "Отчёты с историей",
  output: "./allure-report",
  historyPath: "./test-history/history.jsonl",
  plugins: {
    awesome: {
      import: "@allurereport/plugin-awesome",
      options: {
        reportName: "Отчёт для Allure Storage",
        reportLanguage: "ru",
      },
    },
  },
};

2. Запуск хранилища в Docker

Чтобы запустить хранилище в Docker, вам понадобится файл compose.yaml для образа allure/allure-report-storage (уточните номер последней версии на странице образа):

services:
  app: 
    # Здесь номер версии со страницы образа
    image: allure/allure-report-storage:v1.1.1
    environment:
      ACCESS_TOKEN: ${ACCESS_TOKEN:-change-me}
      DATABASE_PATH: /data/reports.sqlite
      DATA_DIR: /data
      HOST: 0.0.0.0
      # Основная ветка проекта; измените, если она не main
      MAIN_BRANCH: ${MAIN_BRANCH:-main}
      PORT: 3000
      PUBLIC_URL: ${PUBLIC_URL:-}
      SECRET: ${SECRET:-change-me-secret}
    ports:
      - "3000:3000"
    restart: unless-stopped
    volumes:
      - report-data:/data

volumes:
  report-data:

ACCESS_TOKEN и SECRET — произвольные строки, которые вам нужно придумать самим (в идеале — что-то длинное, что нельзя угадать; подробнее о них в документации проекта). Здесь у этих параметров есть значения по умолчанию, так что файл будет работать, даже если в нём ничего не менять.

Положите файл compose.yaml туда, откуда будете запускать Docker. Команда для запуска обычная:

docker compose up -d

После того как вы запустите контейнер, проверьте, что всё работает:

curl http://localhost:3000/api/ping

Файлы отчётов по умолчанию хранятся локально. При желании можно настроить хранение в S3-совместимом сервисе.

3. Как связать Allure 3 с хранилищем

Хранилище заработало — теперь настало время связать с ним Allure 3. Для этого запросите у хранилища токен следующей командой:

curl -sS -X POST http://localhost:3000/api/token \
  -H "Authorization: Bearer access_token_из_файла_compose"

(здесь ACCESS_TOKEN нужно взять из прошлого раздела)

Теперь внесите два изменения в файл конфигурации Allure 3:

  • добавьте только что сгенерированный токен;

  • укажите publish: true в настройках плагина, который должен публиковать отчёт.

export default {
  name: "Отчёт с историей",
  output: "./allure-report",
  historyPath: "./test-history/history.jsonl",
  plugins: {
    awesome: {
      import: "@allurereport/plugin-awesome",
      options: {
        reportName: "Отчёт",
        reportLanguage: "ru",
        // Этот отчёт будет опубликован через Allure Storage
        publish: true,
      },
    },
  },
  allureService: {
    // Только что созданный токен:
    accessToken: "ars1...",
  },
};

На этом подготовка закончена. Теперь после каждого запуска тестов Allure 3 будет выгружать отчёты в контейнер, и их можно будет посмотреть по адресу:

http://localhost:3000/reports/tree?repo=имя-вашего-репозитория

Если страница открывается, но отчётов там нет:

  • убедитесь, что в файле настроек (здесь — allurerc.js) вы правильно указали название ветки, для которой публикуется отчёт (по умолчанию — main);

  • убедитесь, что запускаете именно Allure 3 (npx allure run -- "команда запуска тестов").

Страница с отчётами должна выглядеть примерно так:

Главная страница Allure Report Storage

Главная страница Allure Report Storage

Здесь под именем ветки указаны все связанные с ней отчёты.

4. Работа с хранилищем

Отчёты в хранилище организованы по названиям репозитория и ветки. И то, и другое определяется автоматически:

  • если хранилище развёрнуто локально — по имени текущего репозитория и ветки;

  • если хранилище развёрнуто на одном из поддерживаемых CI-серверов — по переменным среды.

Ветку, из которой берутся отчёты, можно поменять следующей командой:

curl -sS -X POST http://localhost:3000/api/projects/main-branch \
  -H "Authorization: Bearer access_token" \
  -H "Content-Type: application/json" \
  -d '{ "repo": "repo_name", "main_branch": "main_branch_name"}'

export default {
...
historyLimit: 50,
};В команде нужно заменить три параметра:

  • access_token — токен из прошлого раздела;

  • repo_name — имя репозитория;

  • main_branch_name — имя ветки.

Хранилище не ограничивает срок хранения отчётов, а удалить их можно только вручную. По умолчанию хранилище показывает 10 последних отчётов — чтобы изменить это значение, добавьте в файл настроек строку:

export default {  ...  historyLimit: 50,
};

Чтобы удалить отчёт, выполните команду:

curl -sS -X POST http://localhost:3000/api/report/<report-uuid>/delete \  -H "Authorization: Bearer ars1..."

Обратите внимание, что здесь используется не ACCESS_TOKEN из compose.yaml, а токен, полученный через API хранилища.

5. Что даёт Allure Report Storage

Allure Report Storage — отличное место для централизованного постоянного хранения отчётов, где их удобно смотреть с любой машины. Сообщество Allure Report давно чувствовало потребность в таком хранилище и создавало свои решения — теперь же есть и официальный ответ.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.