Flipbooks publiceren automatiseren in CI/CD met de FlipLink CLI

Automatiseer het publiceren van flipbooks in elke CI/CD-pijplijn met de FlipLink CLI — maak aan, publiceer, leg de URL vast en faal snel op exitcodes.

Sumit Ghugharwal
Sumit Ghugharwal

Gepubliceerd op 21 juni 2026 · 6 min read

Deel dit artikel:

Als er een PDF in je repo staat — een deck met releasenotes, een productcatalogus, een kwartaalrapport — dan zou het publiceren van de flipbookversie ervan onderdeel moeten zijn van dezelfde build die de PDF produceert. Geen dashboard, geen handmatige upload, geen "heeft iemand eraan gedacht om de flipbook bij te werken?" De FlipLink CLI is precies hiervoor gemaakt: hij draait headless, authenticeert vanuit een omgevingsvariabele en geeft schone exitcodes terug waarop een pijplijn kan vertakken.

Deze gids laat een minimale, platformneutrale CI/CD-pijplijn zien die een PDF bouwt, de flipbook aanmaakt, deze publiceert en de live URL vastlegt.

Waarom publiceren in CI draaien

Het dashboard is prima voor eenmalige uploads. Een pijplijn is beter als het werk herhaalbaar is:

  • Herhaalbaar en controleerbaar — dezelfde stappen draaien elke keer, gelogd in je CI-geschiedenis.
  • Geen dashboard, geen menselijke stap — niemand hoeft eraan te denken om na een release te uploaden.
  • Eén bron van waarheid — de PDF in de repo is wat eruit gaat, dus de flipbook wijkt nooit af van het document.
  • Faal luid — als een publicatie misgaat, gaat de build op rood in plaats van stilletjes een verouderde flipbook te versturen.

Dit is automatisering in de simpelste zin: de CLI is dezelfde engine als de API, dus alles wat je met de hand kunt doen, kun je scripten.

Stap 1: Bewaar de API-sleutel als een CI-secret

De CLI leest je sleutel uit de omgevingsvariabele FLIPLINK_API_KEY in CI (de volgorde van resolutie is omgevingsvariabele → configbestand → standaard). Een sleutel krijg je door in te loggen op go.fliplink.me en de Subscription-pagina te openen.

Voeg hem als secret toe bij je CI-provider — commit hem nooit, echo hem nooit in logs. Stel hem vervolgens beschikbaar aan de job als een omgevingsvariabele:

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

Een snelle controle of de authenticatie werkt voordat je echt werk gaat doen:

fliplink whoami

Als de sleutel ontbreekt of fout is, eindigt dit met een niet-nul exitcode en stopt je pijplijn vroeg — precies wat je wilt.

Stap 2: Een minimale pijplijn

Hier is een generieke, platformneutrale pijplijn (pseudo-YAML — map de sleutels op welke CI je ook gebruikt). Voor een release-getriggerde GitHub Actions-versie specifiek: zie de uitleg GitHub Actions bij release.

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"

De flow bestaat uit vier echte commando's: bouw de PDF, fliplink flipbook create, fliplink flipbook publish, en dan fliplink flipbook share-link. Al het andere is leidingwerk dat je CI-provider levert.

Stap 3: Leg het flipbook-ID en de URL vast

De sleuteltruc is --json. Elk FlipLink CLI-commando accepteert het en print ruwe JSON, die je doorpipet naar jq om precies het veld eruit te trekken dat je nodig hebt:

# 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')

Geef $ID door tussen stappen op de manier waarop jouw CI status deelt — een outputvariabele, een env-bestand of een weggeschreven artefact. Voor meer jq-patronen — lijsten filteren, geneste velden eruit trekken, tabellen bouwen — zie de CLI scripten met jq.

🚀

Probeer FlipLink Gratis

Converteer je PDF in seconden. Geen registratie, geen creditcard — gewoon uploaden en starten.

Drop your PDF here or click to browse

Max. 40MB

Met een betaald abonnement vanaf $39 verhoog je dit naar 150 MB.

Stap 4: Faal snel op exitcodes

Een pijplijn is niet beter dan zijn foutafhandeling. De CLI geeft je drie exitcodes om op te vertakken:

  • 0 — succes
  • 1 — request- of HTTP-fout (slecht netwerk, 401 authenticatiefout, te grote upload)
  • 2 — applicatiefout (de API gaf Result: ERROR terug, bijvoorbeeld een validatieprobleem)

De meeste CI-runners stoppen een stap automatisch bij elke niet-nul exit, wat meestal is wat je wilt. Als je per code anders wilt reageren, vertak dan expliciet:

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

Houd er rekening mee dat de FlipLink API zakelijke fouten teruggeeft als HTTP 200 met Result: ERROR in de body — de CLI vertaalt dat al voor je naar exitcode 2, dus een schone exitcodecontrole is genoeg. Je hoeft statuscodes niet met de hand te parsen.

Stap 5: Geef bij succes een melding

Zodra je de URL hebt vastgelegd, is de laatste stap simpelweg iemand inlichten. De URL is een gewone string, dus elke notifier werkt:

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\"}"

Verruil de curl-aanroep voor een e-mail, een GitHub-reactie of een schrijfactie naar je changelog — het patroon is hetzelfde. Omdat elke stap snel faalt, gaat deze melding alleen af als de publicatie ook echt is gelukt.

Tot slot

Dat is het hele patroon: bewaar de sleutel als secret, installeer de CLI, bouw de PDF, en dan createpublish → leg de URL vast met --json | jq, met exitcodes die elke stap bewaken. Het is klein genoeg om in elke pijplijn te droppen en betrouwbaar genoeg om te vergeten — en dat is het hele punt van automatisering en integraties.

Nieuw met de CLI? Begin met aan de slag met de FlipLink CLI en kom dan terug om hem in je build te knopen.

Verder lezen

Klaar om je eerste flipbook te maken?

Zet je PDF's om in interactieve flipbooks en documenten. Begin met de Lifetime Deal van FlipLink — levenslange toegang vanaf slechts $39.

#ci/cd#automatisering#cli#headless#publicatiepijplijn
Lifetime Deal

Betaal eenmalig, gebruik voor altijd

10, 50 of 100 flipbooks · Alle 35 functies · Onbeperkte domeinen

$39
10 Flipbooks
$89
50 Flipbooks
Populairst
$129
100 Flipbooks

Geen niveaus. Geen functiebeperkingen. Elke LTD-code ontgrendelt alles.

  • Elke functie ontgrendeld — geen grenzen
  • Stapelbaar — koop extra codes wanneer je wilt
  • Vervangbaar — wissel oud voor nieuw
  • Onbeperkt eigen domeinen (CNAME)
  • Geen terugkerende kosten, nooit

Gerelateerde artikelen