InfluxDB: 4. GitHub Actions
Cette documentation fait partie du guide GitHub Actions & GitLab CI. Consultez le guide complet ici : Lancez un véritable service InfluxDB depuis votre pipeline GitHub Actions ou GitLab CI, exécutez vos tests dessus, puis supprimez-le automatiquement.
👋 Bienvenue sur la documentation de Stackhero
Stackhero propose un environnement InfluxDB cloud entièrement managé, pensé pour la rapidité et la simplicité :
- Écriture, requêtes, tableaux de bord, tâches et buckets en illimité.
- Rétention des données illimitée : conservez vos métriques aussi longtemps que nécessaire.
- Transferts réseau et disque illimités, sans limite cachée.
- Mises à jour en un clic : profitez toujours des dernières fonctionnalités et correctifs.
- Performance constante et sécurité renforcée sur votre propre infrastructure privée et dédiée.
Avec Stackhero, concentrez-vous sur vos données et vos analyses. Déployer InfluxDB cloud hosting ne prend que quelques minutes, chaque configuration étant optimisée pour une fiabilité durable.
Pour commencer, enregistrez le contenu suivant dans .github/workflows/ci.yml. Désormais, chaque push et pull request lancera des tests sur une vraie instance InfluxDB.
name: CI avec InfluxDB
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
env:
STACKHERO_TOKEN: ${{ secrets.STACKHERO_TOKEN }}
STACK_NAME: ci-influxdb-${{ github.run_id }}-${{ github.run_attempt }}
INSTANCE: "10G" # Modifiez si besoin (voir étape 3)
REGION: europe
steps:
- uses: actions/checkout@v4
- name: Installer le Stackhero CLI et le client
run: |
curl -fsSL https://www.stackhero.io/install.sh | sh
apt-get update && apt-get install -y --no-install-recommends jq curl
- name: Créer le service InfluxDB
run: |
set -euo pipefail
STACK_ID=$(stackhero --format=script stack-create --name="$STACK_NAME")
echo "STACK_ID=$STACK_ID" >> "$GITHUB_ENV"
SERVICE_ID=$(stackhero --format=script service-add \
--stack="$STACK_ID" \
--service-store="influxdb" \
--instance="$INSTANCE" \
--region="$REGION")
echo "SERVICE_ID=$SERVICE_ID" >> "$GITHUB_ENV"
stackhero service-wait-for --service="$SERVICE_ID"
- name: Exécuter les tests sur InfluxDB
run: |
set -euo pipefail
config=$(stackhero service-configuration-get --service="$SERVICE_ID" --format=json)
host=$(echo "$config" | jq -r '.configuration.domain')
# Call the InfluxDB health endpoint.
curl -fsS "https://$host:8086/health" | grep -q '"status":"pass"'
echo "✅ InfluxDB est accessible depuis la CI."
# Vous pouvez lancer votre propre suite de tests ici avec les identifiants ci-dessus ...
- name: Nettoyage (toujours, même en cas d'échec)
if: always()
run: |
if [ -n "${SERVICE_ID:-}" ]; then
stackhero service-delete --service="$SERVICE_ID" --confirm
stackhero service-wait-for --service="$SERVICE_ID"
fi
if [ -n "${STACK_ID:-}" ]; then
stackhero stack-delete --stack="$STACK_ID" --confirm
fi
L'étape de nettoyage utilise if: always() pour s'assurer qu'elle s'exécute dans tous les cas, garantissant la suppression de votre instance InfluxDB et évitant toute facturation pour des ressources inutilisées.