Continuous Testing et CircleCI Orb

Présentation

CircleCI Build Status CircleCI Orb Version Apache 2.0 License CircleCI Community

Exécutez des tests Synthetic Datadog dans vos pipelines CircleCI à l’aide de l’orb CircleCI Datadog.

Pour plus d’informations sur la configuration disponible, consultez la documentation datadog-ci synthetics run-tests.

Configuration

Pour commencer :

  1. Ajoutez vos clés d’API et d’application Datadog en tant que variables d’environnement à votre projet CircleCI.
  2. Vérifiez que l’image exécutant l’orb est une image basée sur Linux x64 avec curl installé.
  3. Personnaliser votre workflow CircleCI en ajoutant une étape synthetics-ci/run-tests et en spécifiant des entrées comme indiqué ci-dessous.

Vous pouvez utiliser un workflow simple ou complexe.

Utilisation simple

Exemple d’utilisation de l’orbe avec des ID publics

version: 2.1

orbs:
  synthetics-ci: datadog/synthetics-ci-orb@5.3.0

jobs:
  e2e-tests:
    docker:
      - image: cimg/base:stable
    steps:
      - synthetics-ci/run-tests:
          public_ids: |
            abc-d3f-ghi
            jkl-mn0-pqr

workflows:
  run-tests:
    jobs:
      - e2e-tests

Exemple d’utilisation de l’orbe avec un remplacement de la configuration globale

Cet orb remplace le chemin vers le motif pour les fichiers de test.

version: 2.1

orbs:
  synthetics-ci: datadog/synthetics-ci-orb@5.3.0

jobs:
  e2e-tests:
    docker:
      - image: cimg/base:stable
    steps:
      - synthetics-ci/run-tests:
          files: e2e-tests/*.synthetics.json

workflows:
  run-tests:
    jobs:
      - e2e-tests

Pour un autre exemple de pipeline qui déclenche des tests Synthetic, consultez le fichier simple-example.yml.

Utilisation complexe

Exemple d’utilisation de l’orbe avec une requête test_search_query

version: 2.1

orbs:
  synthetics-ci: datadog/synthetics-ci-orb@5.3.0

jobs:
  e2e-tests:
    docker:
      - image: cimg/base:stable
    steps:
      - synthetics-ci/run-tests:
          test_search_query: 'tag:e2e-tests'

workflows:
  run-tests:
    jobs:
      - e2e-tests

Exemple d’utilisation de l’orb avec le tunnel Continuous Testing

version: 2.1

orbs:
  synthetics-ci: datadog/synthetics-ci-orb@5.3.0

jobs:
  e2e-tests:
    docker:
      - image: your-image
    steps:
      - checkout
      - run:
          name: Running server in background
          command: npm start
          background: true
      - synthetics-ci/run-tests:
          config_path: tests/tunnel-config.json
          files: tests/*.synthetics.json
          test_search_query: 'tag:e2e-tests'
          tunnel: true

workflows:
  test-server:
    jobs:
      - build-image
      - integration-tests:
          requires:
            - build-image

Pour des options supplémentaires telles que la personnalisation du batchTimeout pour vos pipelines CircleCI, consultez la section Configuration des intégrations CI/CD. Pour un autre exemple de pipeline qui démarre un serveur local et déclenche des tests Synthetic à l’aide du tunnel Continuous Testing, consultez le fichier advanced-example.yml.

Paramètres

Pour plus d’informations sur la configuration disponible, consultez la documentation datadog-ci synthetics run-tests.

NomRôle
api_keyNom de la variable d’environnement contenant votre clé d’API Datadog. Cette clé est créée dans votre organisation Datadog et doit être stockée en tant que secret.
Par défaut : DATADOG_API_KEY
app_keyNom de la variable d’environnement contenant votre clé d’application Datadog. Cette clé est créée dans votre organisation Datadog et doit être stockée en tant que secret.
Par défaut : DATADOG_APP_KEY
backgroundIndique si cette étape doit s’exécuter en arrière-plan ou non. Consultez la documentation officielle CircleCI.
Par défaut : false
batch_timeoutSpécifie la durée du délai d’expiration en millisecondes pour le batch CI. Lorsqu’un batch expire, la tâche CI échoue et aucune nouvelle exécution de test n’est déclenchée, mais les exécutions de test en cours se terminent normalement.
Par défaut : 1800000 (30 minutes)
config_pathLe chemin vers le fichier de configuration globale qui configure datadog-ci.
Par défaut : datadog-ci.json
datadog_siteVotre site Datadog. Les valeurs possibles sont répertoriées dans ce tableau.
Par défaut : datadoghq.com

Définissez-le sur (assurez-vous que le SITE correct est sélectionné à droite).
fail_on_critical_errorsFaire échouer la tâche CI si une erreur critique généralement transitoire se produit, telle que des limitations de débit, des échecs d’authentification ou des problèmes d’infrastructure Datadog.
Par défaut : false
fail_on_missing_testsFaire échouer la tâche CI si la liste des tests à exécuter est vide ou si certains tests explicitement répertoriés sont manquants.
Par défaut : false
fail_on_timeoutFaire échouer la tâche CI si le batch CI échoue en raison d’un délai d’expiration.
Par défaut : true
filesMotifs glob pour détecter les fichiers de configuration de test Synthetic, séparés par des sauts de ligne.
Par défaut : {,!(node_modules)/**/}*.synthetics.json
junit_reportLe nom de fichier d’un rapport JUnit si vous souhaitez en générer un.
Par défaut : aucun
locationsRemplacer la liste des emplacements à partir desquels exécuter le test, séparés par des sauts de ligne ou des virgules. Les valeurs possibles sont répertoriées dans cette réponse d’API.
Par défaut : aucun
no_output_timeoutTemps écoulé pendant lequel la commande peut s’exécuter sans sortie. La chaîne est un décimal avec un suffixe d’unité, tel que 20m, 1.25h, 5s. Consultez la documentation officielle CircleCI.
Par défaut : 35m
public_idsID publics des tests Synthetic à exécuter, séparés par des sauts de ligne ou des virgules. Si aucune valeur n’est fournie, les tests sont découverts dans les fichiers de configuration de test Synthetic.
Par défaut : aucun
selective_rerunIndique s’il faut uniquement réexécuter les tests ayant échoué. Si un test a déjà réussi pour un commit donné, il n’est pas réexécuté dans les batchs CI suivants. Par défaut, le paramètre par défaut de votre organisation est utilisé. Définissez-le sur false pour forcer des exécutions complètes lorsque votre configuration l’active par défaut.
Par défaut : aucun
subdomainLe sous-domaine personnalisé pour accéder à votre organisation Datadog. Si votre URL est myorg.datadoghq.com, le sous-domaine personnalisé est myorg.
Par défaut : app
test_search_queryUtilisez une requête de recherche pour sélectionner les tests Synthetic à exécuter. Utilisez la barre de recherche de la page de liste des tests Synthetic pour élaborer votre requête, puis copiez-la et collez-la.
Par défaut : aucun
tunnelUtilisez le tunnel Continuous Testing pour lancer des tests contre des environnements internes.
Par défaut : false
variablesRemplacez les variables locales et globales existantes ou injecter de nouvelles variables dans les tests Synthetic sous forme de paires clé-valeur, séparées par des sauts de ligne ou des virgules. Par exemple : START_URL=https://example.org,MY_VARIABLE=My title.
Par défaut : aucun

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles :