InfluxDB: 4. GitHub Actions

Deze documentatie maakt deel uit van de GitHub Actions & GitLab CI-gids. Bekijk de volledige gids hier: Start een echte InfluxDB-service vanuit uw GitHub Actions- of GitLab CI-pipeline, voer uw tests erop uit en ruim deze automatisch weer op.

👋 Welkom bij de Stackhero-documentatie

Stackhero biedt een volledig beheerde InfluxDB cloud-omgeving, ontworpen voor snelheid en eenvoud:

  • Onbeperkt schrijven, queries, dashboards, taken en buckets.
  • Onbeperkte dataretentie: bewaar uw metrics zo lang als u wilt.
  • Onbeperkte netwerk- en schijftransfers, zonder verborgen limieten.
  • Updates met één klik: altijd toegang tot de nieuwste functies en fixes.
  • Consistente performance en sterke beveiliging op uw eigen private, dedicated infrastructuur.

Met Stackhero kunt u zich volledig richten op uw data en inzichten. Aan de slag gaan met InfluxDB cloud hosting duurt slechts enkele minuten, en elke installatie is geoptimaliseerd voor langdurige betrouwbaarheid.

Om te beginnen slaat u het volgende op als .github/workflows/ci.yml. Vanaf nu zal elke push en pull request tests uitvoeren tegen een echte InfluxDB-instantie.

name: CI met 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"   # Pas aan indien nodig (zie stap 3)
      REGION: europe
    steps:
      - uses: actions/checkout@v4

      - name: Installeer de Stackhero CLI en de client
        run: |
          curl -fsSL https://www.stackhero.io/install.sh | sh
          apt-get update && apt-get install -y --no-install-recommends jq curl

      - name: Maak de InfluxDB-service aan
        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: Voer tests uit tegen 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 is bereikbaar vanuit CI."
          # U kunt hier uw eigen test suite uitvoeren met bovenstaande inloggegevens ...

      - name: Opruimen (altijd, ook bij fouten)
        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

De teardown-stap is ingesteld met if: always() zodat deze altijd wordt uitgevoerd, ongeacht het resultaat. Zo wordt uw InfluxDB-instantie altijd verwijderd en betaalt u niet voor ongebruikte resources.