Zum Inhalt springen
duxt

Remote-Quellen und OG-Bilder cachen

Öffentliche Repository-Downloads und gerenderte Social Cards sicher zwischen CI-Builds wiederverwenden.

Content-Downloads und gerenderte OG-Bilder können einen kurzlebigen CI-Runner überdauern. Sie haben unterschiedliche Invalidierungsregeln und deshalb je ein eigenes duxt-Kommando.

Öffentliche Remote-Quellen

- id: sources
  run: duxt-cache-key --root . --github >> "$GITHUB_OUTPUT"
- if: steps.sources.outputs.cacheable == 'true'
  uses: actions/cache@v6
  with:
    path: ${{ steps.sources.outputs.paths }}
    key: ${{ steps.sources.outputs.key }}

--root nennt die konsumierende Nuxt-App. Das Kommando läuft nach der Installation und vor dem Build. Sein Key enthält die aufgelösten Repositories und Refs; contents.sqlite* bleibt ausgeschlossen, weil es ein Parsergebnis und kein Download ist. Schon eine private, SSH- oder authentifizierte Quelle setzt cacheable=false für die gesamte Liste. Ohne --github zeigt das Kommando die redigierten Eingaben und den Grund.

Gerenderte OG-Bilder

- id: og
  run: duxt-og-cache --root . --run "$GITHUB_SHA" --github >> "$GITHUB_OUTPUT"
- uses: actions/cache@v6
  with:
    path: ${{ steps.og.outputs.path }}
    key: ${{ steps.og.outputs.key }}
    restore-keys: ${{ steps.og.outputs['restore-keys'] }}

Die konsumierende Nuxt-Konfiguration bindet zusätzlich @kirchdev/duxt/og-image-cache ein und fingerprintet Theme-Optionen, Fonts und Renderer-Versionen. Geänderte Eingaben leeren einen wiederhergestellten Cache, bevor ein altes Bild ausgeliefert werden kann. Nach dem Build berichtet duxt-og-cache --root . --report --since "$STARTED_MS" --log build.log die tatsächliche Wiederverwendung.

Checkliste

  • --root zeigt auf die konsumierende App.
  • Der Source-Cache läuft nur bei cacheable == 'true'.
  • contents.sqlite* und private Quellen gelangen nicht in den Cache.
  • Der OG-Cache verwendet die ausgegebenen Rolling Restore Keys.
  • Die Nuxt-Konfiguration fingerprintet site-eigene Rendering-Eingaben.
War diese Seite hilfreich?