GitHub Action — exlogare-ingest
Используйте официальный `exlogare/exlogare-ingest-action` чтобы отправлять CI-логи в Exlogare с любого runner'а.
exlogare/exlogare-ingest-action — это composite GitHub
Action,
который вызывает exl ingest с любого runner’а. Подходит, если:
- Нужно отправлять только конкретный упавший шаг (не весь run).
- Используется self-hosted runner, до которого GitHub App не может достучаться входящими webhook’ами.
- Логи приходят из не-GitHub источника (например, скрипт, запущенный с runner’а).
Для zero-config анализа каждого падения workflow выбирайте GitHub App — он скачивает логи на сервере и не требует изменений в YAML.
Быстрый старт
name: tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run tests
id: tests
run: pytest --tb=short 2>&1 | tee pytest.log
- name: Send failure to Exlogare
if: failure() && steps.tests.outcome == 'failure'
uses: exlogare/exlogare-ingest-action@v1
with:
token: ${{ secrets.EXLOGARE_TOKEN }}
log_path: pytest.log
Получите EXLOGARE_TOKEN в
app.exlogare.net/dashboard/settings → API токены
и сохраните как repo secret.
Входы
| Имя | Обязательный | По умолчанию | Описание |
|---|---|---|---|
token | да | — | API-токен Exlogare (используйте secret). |
log_path | нет | '' | Путь к файлу логов. - для stdin. |
endpoint | нет | https://api.exlogare.net | Override для self-hosted развёртываний. |
fail_on_error | нет | false | Падать при ошибке ingest’а. По умолчанию не маскирует исходную ошибку CI. |
cli_version | нет | latest | Версия exl для воспроизводимых сборок. |
Примеры
pytest с junit
- name: pytest
id: tests
run: pytest --junitxml=junit.xml | tee pytest.log
- if: failure() && steps.tests.outcome == 'failure'
uses: exlogare/exlogare-ingest-action@v1
with:
token: ${{ secrets.EXLOGARE_TOKEN }}
log_path: pytest.log
jest
- name: jest
id: tests
run: npx jest 2>&1 | tee jest.log
- if: failure() && steps.tests.outcome == 'failure'
uses: exlogare/exlogare-ingest-action@v1
with:
token: ${{ secrets.EXLOGARE_TOKEN }}
log_path: jest.log
Build matrix
strategy:
matrix:
py: ['3.10', '3.11', '3.12']
- name: pytest
id: tests
run: pytest 2>&1 | tee pytest-${{ matrix.py }}.log
- if: failure() && steps.tests.outcome == 'failure'
uses: exlogare/exlogare-ingest-action@v1
with:
token: ${{ secrets.EXLOGARE_TOKEN }}
log_path: pytest-${{ matrix.py }}.log
Версионирование
SemVer + rolling vMAJOR тэг. @v1 всегда
указывает на последний v1.x.y. Для воспроизводимых сборок
пиньте полный тэг.
uses: exlogare/exlogare-ingest-action@v1 # последняя v1.*
uses: exlogare/exlogare-ingest-action@v1.0.0 # точная версия
См. также
- Универсальный API ingest — что Action вызывает под капотом.
- Exlogare CLI — та же команда
exl ingestвне Actions. - GitHub App — zero-config серверная альтернатива.