RethinkDB: 4. GitHub Actions
Cette documentation fait partie du guide GitHub Actions & GitLab CI. Consultez le guide complet ici : Lancez un vrai service RethinkDB à partir de votre pipeline GitHub Actions ou GitLab CI, exécutez vos tests dessus, puis supprimez-le automatiquement.
Bienvenue dans la documentation Stackhero
Stackhero offre un service RethinkDB cloud prêt à l'emploi, conçu pour la fiabilité et la simplicité d'utilisation. Vous profitez de :
- Mises à jour sans interruption en un seul clic
- Performance élevée et sécurité avancée sur votre propre infrastructure privée et dédiée
Démarrez en un rien de temps : essayez l'hébergement cloud RethinkDB de Stackhero en quelques minutes. Stackhero prend en charge l'installation et la gestion, vous permettant de vous concentrer sur le développement de votre application.
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 RethinkDB.
name: CI avec RethinkDB
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
env:
STACKHERO_TOKEN: ${{ secrets.STACKHERO_TOKEN }}
STACK_NAME: ci-rethinkdb-${{ 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 netcat-openbsd
- name: Créer le service RethinkDB
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="rethinkdb" \
--instance="$INSTANCE" \
--region="$REGION")
echo "SERVICE_ID=$SERVICE_ID" >> "$GITHUB_ENV"
stackhero service-wait-for --service="$SERVICE_ID"
- name: Exécuter les tests sur RethinkDB
run: |
set -euo pipefail
config=$(stackhero service-configuration-get --service="$SERVICE_ID" --format=json)
host=$(echo "$config" | jq -r '.configuration.domain')
# Open a TCP connection to the driver port.
nc -z -w 5 "$host" 28015
echo "✅ RethinkDB 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 RethinkDB et évitant toute facturation pour des ressources inutilisées.