FlipLink

Автоматическая публикация флипбуков в CI/CD с помощью FlipLink CLI

Автоматизируй публикацию флипбуков в любом CI/CD-пайплайне через FlipLink CLI: создание, публикация, получение URL и быстрый отказ по кодам возврата.

Sumit Ghugharwal
Sumit Ghugharwal

Опубликовано 21 июня 2026 г. · 5 min read

Поделиться статьёй:

Если PDF лежит в твоём репозитории — презентация с примечаниями к релизу, каталог товаров, квартальный отчёт — то публикация его флипбук-версии должна быть частью той же сборки, что выпускает PDF. Никакой панели управления, никакой ручной загрузки, никаких "а кто-нибудь не забыл обновить флипбук?" FlipLink CLI создан именно для этого: он работает в headless-режиме, авторизуется по переменной окружения и возвращает понятные коды возврата, по которым пайплайн может ветвиться.

В этом руководстве показан минимальный, не привязанный к платформе CI/CD-пайплайн, который собирает PDF, создаёт флипбук, публикует его и получает рабочий URL.

Зачем запускать публикацию в CI

Панель управления хороша для разовых загрузок. Но когда работа повторяется, пайплайн лучше:

  • Повторяемость и контроль — одни и те же шаги выполняются каждый раз и фиксируются в истории CI.
  • Без панели, без ручного шага — никому не нужно помнить про загрузку после релиза.
  • Единый источник правды — в продакшен идёт именно тот PDF, что в репозитории, поэтому флипбук никогда не расходится с документом.
  • Громкий отказ — если публикация ломается, сборка становится красной, а не тихо отгружает устаревший флипбук.

Это автоматизация в самом прямом смысле: CLI использует тот же движок, что и API, поэтому всё, что ты можешь сделать вручную, поддаётся написанию скрипта.

Шаг 1. Сохрани API-ключ как секрет в CI

CLI читает ключ из переменной окружения FLIPLINK_API_KEY в CI (порядок поиска: переменная окружения → файл конфигурации → значение по умолчанию). Получить ключ можно, войдя на go.fliplink.me и открыв страницу Subscription.

Добавь его как секрет в своём CI-провайдере — никогда не коммить его и не выводи в логи. Затем передай его задаче как переменную окружения:

# Provided by your CI's secret store, not hard-coded
export FLIPLINK_API_KEY="$CI_SECRET_FLIPLINK_API_KEY"

Быстрая проверка, что авторизация работает, до начала реальной работы:

fliplink whoami

Если ключ отсутствует или неверный, команда завершится с ненулевым кодом, и пайплайн остановится сразу — ровно то, что нужно.

Шаг 2. Минимальный пайплайн

Вот универсальный, не привязанный к платформе пайплайн (псевдо-YAML — перенеси ключи на любой CI, которым пользуешься). Версию специально под GitHub Actions, запускаемую по релизу, смотри в разборе GitHub Actions по релизу.

pipeline:
  publish-flipbook:
    image: node:20
    secrets:
      - FLIPLINK_API_KEY        # injected from the CI secret store
    steps:
      - name: Install the CLI
        run: npm install -g fliplink-cli

      - name: Build the PDF
        run: ./scripts/build-report.sh   # your build that emits ./dist/report.pdf

      - name: Verify auth
        run: fliplink whoami

      - name: Create the flipbook
        run: |
          ID=$(fliplink flipbook create ./dist/report.pdf \
                 --title "Quarterly Report" --name quarterly \
                 --json | jq -r '.ID')
          echo "FLIPBOOK_ID=$ID" >> "$PIPELINE_ENV"

      - name: Publish the flipbook
        run: fliplink flipbook publish "$FLIPBOOK_ID"

      - name: Capture the share URL
        run: |
          URL=$(fliplink flipbook share-link "$FLIPBOOK_ID" \
                  --json | jq -r '.URL')
          echo "Published: $URL"

Весь процесс — это четыре реальные команды: собрать PDF, fliplink flipbook create, fliplink flipbook publish, затем fliplink flipbook share-link. Всё остальное — обвязка, которую даёт твой CI-провайдер.

Шаг 3. Получи ID флипбука и URL

Главный приём — это --json. Любая команда FlipLink CLI принимает его и печатает сырой JSON, который ты передаёшь в jq, чтобы вытащить именно нужное поле:

# Create and grab the new flipbook's ID
ID=$(fliplink flipbook create ./dist/report.pdf \
       --title "Quarterly Report" --name quarterly \
       --json | jq -r '.ID')

# Publish it
fliplink flipbook publish "$ID"

# Grab the public share URL to post in Slack, an email, or a release note
URL=$(fliplink flipbook share-link "$ID" --json | jq -r '.URL')

Передавай $ID между шагами так, как твой CI делится состоянием — через выходную переменную, env-файл или записанный артефакт. Больше приёмов с jq — фильтрация списков, извлечение вложенных полей, построение таблиц — смотри в статье скрипты для CLI с jq.

🚀

Попробуйте FlipLink бесплатно

Преобразуйте PDF за секунды. Без регистрации и кредитной карты — просто загрузите файл.

Drop your PDF here or click to browse

Макс. 40 МБ

На платных тарифах от $39 лимит вырастает до 150 MB.

Шаг 4. Быстрый отказ по кодам возврата

Пайплайн хорош ровно настолько, насколько хороша его обработка ошибок. CLI даёт три кода возврата, по которым можно ветвиться:

  • 0 — успех
  • 1 — ошибка запроса или HTTP (плохая сеть, ошибка авторизации 401, слишком большая загрузка)
  • 2 — ошибка приложения (API вернул Result: ERROR, например проблему с валидацией)

Большинство CI-раннеров автоматически останавливают шаг при любом ненулевом коде возврата, и обычно это как раз то, что нужно. Если нужно реагировать по-разному в зависимости от кода, ветвись явно:

set -euo pipefail

if fliplink flipbook publish "$ID" --json; then
  echo "Published OK"
else
  code=$?
  if [ "$code" -eq 2 ]; then
    echo "FlipLink rejected the request (application error)" >&2
  else
    echo "Request/HTTP error talking to FlipLink" >&2
  fi
  exit "$code"
fi

Учти, что API FlipLink возвращает бизнес-ошибки как HTTP 200 с Result: ERROR в теле ответа — CLI уже сопоставляет это с кодом возврата 2, так что достаточно простой проверки кода возврата. Разбирать статус-коды вручную не нужно.

Шаг 5. Уведомление об успехе

Когда URL получен, последний шаг — просто сообщить кому-нибудь. URL — это обычная строка, поэтому подойдёт любой нотификатор:

URL=$(fliplink flipbook share-link "$ID" --json | jq -r '.URL')

curl -X POST "$SLACK_WEBHOOK_URL" \
  -H 'Content-Type: application/json' \
  -d "{\"text\": \"New flipbook published: $URL\"}"

Замени вызов curl на email, комментарий в GitHub или запись в свой changelog — принцип тот же. Поскольку каждый шаг отказывает быстро, это уведомление срабатывает только тогда, когда публикация действительно прошла успешно.

Подведём итог

Вот и весь приём: сохрани ключ как секрет, установи CLI, собери PDF, затем createpublish → получи URL через --json | jq, а коды возврата страхуют каждый шаг. Это достаточно компактно, чтобы встроить в любой пайплайн, и достаточно надёжно, чтобы потом о нём не вспоминать — в чём и состоит смысл автоматизации и интеграций.

Только начинаешь с CLI? Сначала прочитай знакомство с FlipLink CLI, а потом возвращайся и встрой его в свою сборку.

Похожие материалы

Готовы создать первый флипбук?

Превращай свои PDF в интерактивные флипбуки и документы. Начни с Lifetime Deal от FlipLink — пожизненный доступ всего от $39.

#ci/cd#автоматизация#cli#headless#пайплайн публикации
Lifetime Deal

Платите один раз — пользуйтесь всегда

10, 50 или 100 флипбуков · Все 35 функций · Безлимитные домены

$39
10 Флипбуки
$89
50 Флипбуки
Популярный выбор
$129
100 Флипбуки

Без уровней. Без ограничений по функциям. Каждый код LTD открывает всё.

  • Все функции открыты — без ограничений
  • Коды суммируются — докупайте в любой момент
  • Коды заменяемы — обменяйте старый на новый
  • Неограниченные собственные домены (CNAME)
  • Никаких регулярных платежей

По теме