Skip to content
Exlogare

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.netOverride для 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    # точная версия

См. также