Автоматическая публикация флипбуков в CI/CD с помощью FlipLink CLI
Автоматизируй публикацию флипбуков в любом CI/CD-пайплайне через FlipLink CLI: создание, публикация, получение URL и быстрый отказ по кодам возврата.
Опубликовано 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, затем create → publish → получи URL через --json | jq, а коды возврата страхуют каждый шаг. Это достаточно компактно, чтобы встроить в любой пайплайн, и достаточно надёжно, чтобы потом о нём не вспоминать — в чём и состоит смысл автоматизации и интеграций.
Только начинаешь с CLI? Сначала прочитай знакомство с FlipLink CLI, а потом возвращайся и встрой его в свою сборку.
Похожие материалы
Готовы создать первый флипбук?
Превращай свои PDF в интерактивные флипбуки и документы. Начни с Lifetime Deal от FlipLink — пожизненный доступ всего от $39.
Платите один раз — пользуйтесь всегда
10, 50 или 100 флипбуков · Все 35 функций · Безлимитные домены
Без уровней. Без ограничений по функциям. Каждый код LTD открывает всё.
- Все функции открыты — без ограничений
- Коды суммируются — докупайте в любой момент
- Коды заменяемы — обменяйте старый на новый
- Неограниченные собственные домены (CNAME)
- Никаких регулярных платежей
По теме
GitHub Actions: автогенерация флипбука при каждом релизе
Настрой GitHub Actions, чтобы при каждом релизе автоматически создавать флипбук FlipLink: собрать PDF, запустить CLI и вернуть ссылку.
Массовое преобразование папки PDF во флипбуки
Массово преобразуй PDF во флипбук из целой папки одним shell-циклом через FlipLink CLI — собирай ссылки в CSV и пропускай битые файлы.
CLI, API или MCP во FlipLink: какую интеграцию выбрать?
CLI, API и MCP во FlipLink — сравни усилия, аудиторию и сценарии, а потом создай один флипбук тремя способами. Выбери подходящую интеграцию.