Fonctionnalités Tarifs Régions Support Essai gratuit Connexion EN

Automatiser avec GitHub Actions

Déclenchez un préchauffage de cache automatiquement après chaque déploiement avec GitHub Actions.

Exécutez un boost après chaque déploiement en production afin que votre cache soit chaud avant l'arrivée des utilisateurs.

Prérequis

  • Un boost déjà créé via l'API ou le tableau de bord
  • L'ID de votre site et l'ID de votre boost
  • Une clé API avec la portée boosts:write

Workflow

Ajoutez ce workflow dans .github/workflows/warm-cache.yml de votre dépôt :

name: Préchauffage du cache

on:
  deployment_status:

jobs:
  warm:
    if: github.event.deployment_status.state == 'success'
    runs-on: ubuntu-latest
    steps:
      - name: Déclencher un run CacheBoost
        run: |
          curl -sf -X POST \
            https://api.cache-boost.com/v1/sites/${{ vars.CACHEBOOST_SITE_ID }}/boosts/${{ vars.CACHEBOOST_BOOST_ID }}/run \
            -H "Authorization: Bearer ${{ secrets.CACHEBOOST_API_KEY }}"

Configuration

Ajoutez les éléments suivants à votre dépôt :

NomValeur
CACHEBOOST_API_KEYSecretsVotre clé API (cb_live_...)
CACHEBOOST_SITE_IDVariablesL'ID de votre site
CACHEBOOST_BOOST_IDVariablesL'ID de votre boost

Allez dans Settings → Secrets and variables → Actions pour les ajouter.

Attendre la fin du run

Si vous souhaitez que le workflow attende la fin du run :

      - name: Attendre la fin du run
        run: |
          RUN_ID=$(curl -sf -X POST \
            https://api.cache-boost.com/v1/sites/${{ vars.CACHEBOOST_SITE_ID }}/boosts/${{ vars.CACHEBOOST_BOOST_ID }}/run \
            -H "Authorization: Bearer ${{ secrets.CACHEBOOST_API_KEY }}" \
            | jq -r '.id')

          for i in $(seq 1 30); do
            STATUS=$(curl -sf \
              https://api.cache-boost.com/v1/runs/$RUN_ID \
              -H "Authorization: Bearer ${{ secrets.CACHEBOOST_API_KEY }}" \
              | jq -r '.status')
            echo "Statut du run : $STATUS"
            [ "$STATUS" = "done" ] && exit 0
            [ "$STATUS" = "failed" ] && exit 1
            sleep 10
          done
          echo "Délai d'attente dépassé"
          exit 1

La boucle ci-dessus expire après 5 minutes (30 × 10s). Ajustez seq 1 30 et sleep 10 en fonction de la durée estimée de votre crawl.