GitHub Actions: genera in automatico un flipbook a ogni release
Usa GitHub Actions per generare in automatico un flipbook FlipLink a ogni release: crea il PDF, lancia la CLI, recupera l'URL live e rimandalo indietro.
Pubblicato il 21 giugno 2026 · 6 min read
Se la documentazione, le note di rilascio o il catalogo prodotti vivono come PDF nel tuo repo, non c'è motivo di pubblicare il flipbook a mano. Con GitHub Actions e la CLI di FlipLink, ogni volta che tagli una release puoi creare il PDF, trasformarlo in un flipbook pubblicato e rimandare l'URL live direttamente sulla release — il tutto senza mai toccare la dashboard.
Questa è la versione GitHub-native della pubblicazione di flipbook in CI/CD. Se usi un runner diverso (GitLab CI, CircleCI, un cron box), i passaggi si adattano senza problemi — cambia solo la forma dello YAML.
Cosa stiamo costruendo
Un workflow che si attiva su una release pubblicata e:
- Fa il checkout del repo e crea (o individua) il PDF che vuoi pubblicare.
- Installa la CLI di FlipLink.
- Crea e pubblica un flipbook a partire da quel PDF, autenticandosi con una chiave API salvata come secret del repo.
- Recupera l'URL live del flipbook dall'output JSON.
- Rimanda quell'URL sulla release, così il tuo team riceve il link all'istante.
È un esempio da manuale di automazione: un evento scatta, uno script gira, un artefatto viene rilasciato.
Passo 1 — Salva la chiave API come secret del repo
Non incollare mai una chiave API in un file di workflow. I file di workflow vivono nel tuo repo — chiunque abbia accesso in lettura (e ogni fork) può vederli. Usa invece un secret cifrato:
- Accedi su
https://go.fliplink.me, apri la pagina Subscription e copia la tua chiave API. - Nel tuo repo GitHub, vai su Settings → Secrets and variables → Actions.
- Fai clic su New repository secret.
- Chiamalo
FLIPLINK_API_KEYe incolla la chiave come valore. - Fai clic su Add secret.
Il workflow la legge tramite secrets.FLIPLINK_API_KEY e la espone alla CLI come variabile d'ambiente FLIPLINK_API_KEY. La CLI controlla automaticamente quella variabile d'ambiente, quindi in CI non serve alcun passaggio config set-key.
Passo 2 — Il file di workflow
Crea .github/workflows/publish-flipbook.yml:
name: Publish flipbook on release
on:
release:
types: [published]
permissions:
contents: write # needed to edit the release notes in the last step
jobs:
flipbook:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
# Replace this with however you produce the PDF.
# If the PDF is committed in the repo, you can delete this step.
- name: Build the PDF
run: |
mkdir -p dist
# e.g. your doc tooling outputs dist/release-notes.pdf
ls -lh dist/release-notes.pdf
- name: Install FlipLink CLI
run: npm install -g fliplink-cli
- name: Create and publish flipbook
id: flipbook
env:
FLIPLINK_API_KEY: ${{ secrets.FLIPLINK_API_KEY }}
run: |
ID=$(fliplink flipbook create ./dist/release-notes.pdf \
--title "Release ${{ github.event.release.tag_name }}" \
--name "release-${{ github.event.release.tag_name }}" \
--json | jq -r '.ID')
fliplink flipbook publish "$ID"
URL=$(fliplink flipbook share-link "$ID" --json | jq -r '.URL')
echo "id=$ID" >> "$GITHUB_OUTPUT"
echo "url=$URL" >> "$GITHUB_OUTPUT"
echo "Published flipbook: $URL"
- name: Comment the URL on the release
uses: actions/github-script@v7
with:
script: |
const url = "${{ steps.flipbook.outputs.url }}";
const release = context.payload.release;
await github.rest.repos.updateRelease({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: release.id,
body: `${release.body || ""}\n\nFlipbook published: ${url}`
});
Qualche nota sul passo di creazione:
fliplink flipbook create ./path.pdfcarica il PDF e restituisce il nuovo flipbook. Con--jsonottieni la risposta grezza, ejq -r '.ID'ne estrae l'ID.fliplink flipbook publish "$ID"lo mette online. (La creazione di un flipbook non lo pubblica — la pubblicazione è un passaggio separato ed esplicito.)fliplink flipbook share-link "$ID"restituisce l'URL pubblico del visualizzatore, che recuperiamo allo stesso modo conjq.- Scriviamo
ideurlsu$GITHUB_OUTPUT, così i passaggi successivi possono richiamarli comesteps.flipbook.outputs.url.
Qui dentro si usano solo comandi documentati della CLI e il flag --json. Se ti serve un'azione che la CLI non include, ricorri alla scorciatoia fliplink api — consulta la documentazione della CLI per l'intera superficie, oppure il riferimento API per ogni endpoint.
Prova FlipLink Gratis
Converti il tuo PDF in pochi secondi. Senza registrazione, senza carta di credito — basta caricare il file.
Drop your PDF here or click to browse
Max 40MB
I piani a pagamento da $39 portano questo limite a 150 MB.
Passo 3 — Rimandare indietro l'URL
Il modo più pulito per far emergere l'URL è commentarlo sulla release stessa. Il passo actions/github-script qui sopra fa proprio questo. Se preferisci la CLI di GitHub (gh è preinstallata sui runner ospitati da GitHub), funziona anche questa riga:
- name: Comment via gh
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release view "${{ github.event.release.tag_name }}" \
--json body --jq '.body' > old-body.txt
printf '\n\nFlipbook: %s\n' "${{ steps.flipbook.outputs.url }}" >> old-body.txt
gh release edit "${{ github.event.release.tag_name }}" \
--notes-file old-body.txt
In questo modo il link del flipbook viene aggiunto alle note di rilascio, così resta visibile proprio dove le persone leggono il changelog. Scegli ciò che si adatta meglio alle abitudini del tuo team — entrambe leggono l'URL dallo stesso steps.flipbook.outputs.url.
Note su caching e performance
Alcuni accorgimenti che mantengono questo workflow veloce e prevedibile:
- Metti in cache npm. Aggiungi
cache: npmal passosetup-nodese il tuo repo ha un lockfile — velocizza l'installazione della CLI e di qualsiasi strumento per il PDF nelle esecuzioni successive. - Tieni d'occhio il rate limit. L'API di FlipLink consente 300 richieste al minuto per chiave. Una singola release pubblica un flipbook, quindi sei ben lontano dal tetto — ma se distribuisci molti PDF in un solo job, distanzia le chiamate.
- Ramifica in caso di errore. La CLI esce con
0in caso di successo,1in caso di errore di richiesta/HTTP e2in caso di errore applicativo. Poiché ogni comando nel bloccorunpuò fallire, il passo fallisce in modo evidente se qualcosa va storto — che è esattamente ciò che vuoi in CI. - Mantieni il trigger ristretto.
types: [published]significa che il workflow gira una sola volta, quando pubblichi davvero una release — non sulle bozze né sulle modifiche pre-pubblicazione. Così eviti flipbook duplicati per errore.
Per concludere
Con un solo file di workflow e un solo secret del repo, ogni release ora rilascia un flipbook pubblicato e rimanda il link al tuo team — zero passaggi manuali. Da qui puoi convertire in blocco un'intera cartella, scrivere pipeline più ricche con jq oppure spostare la logica in un agente AI. Tutti questi schemi si basano sulla stessa CLI.
Letture correlate
Pronto a creare il tuo primo flipbook?
Trasforma i tuoi PDF in flipbook e documenti interattivi. Inizia con il Lifetime Deal di FlipLink: accesso a vita a partire da soli $39.
Paga una volta, usa per sempre
10, 50 o 100 flipbook · Tutte le 35 funzioni · Domini illimitati
Nessun livello. Nessun blocco. Ogni codice LTD sblocca tutto.
- Ogni funzione sbloccata — nessun limite
- Cumulabile — acquista più codici quando vuoi
- Sostituibile — scambia il vecchio con il nuovo
- Domini personalizzati illimitati (CNAME)
- Nessun costo ricorrente, mai
Letture correlate
Automatizza la pubblicazione dei flipbook in CI/CD con la FlipLink CLI
Automatizza la pubblicazione dei flipbook in qualsiasi pipeline CI/CD con la FlipLink CLI: crea, pubblica, cattura l'URL e blocca tutto sugli exit code.
Converti in blocco una cartella di PDF in flipbook
Converti i PDF in flipbook da un'intera cartella con un loop della shell e la CLI di FlipLink: raccogli gli URL in un CSV e salta i file rotti.
FlipLink CLI, API o MCP: quale integrazione conviene usare?
CLI, API o MCP per FlipLink: confronta impegno, pubblico e casi d'uso, poi crea lo stesso flipbook in tre modi. Scegli l'integrazione giusta.