Tests continus et GitHub Actions pour la CI

Section Overview

GitHub Release

Déclenchez des tests Synthetic Datadog depuis vos workflows GitHub.

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 secrets à votre référentiel GitHub.
  2. Utilisez DataDog/synthetics-ci-github-action dans votre workflow GitHub.

Vous pouvez utiliser un workflow simple ou complexe.

Workflows simples

Exemple de workflow utilisant des ID publics

name: Run Synthetic tests using the test public IDs
jobs:
  e2e_testing:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Run Datadog Synthetic tests
        uses: DataDog/synthetics-ci-github-action@v3.8.2
        with:
          api-key: ${{secrets.DD_API_KEY}}
          app-key: ${{secrets.DD_APP_KEY}}
          public-ids: |
            abc-d3f-ghi
            jkl-mn0-pqr

Exemple de workflow utilisant un fichier synthetics.json existant

name: Run Synthetic tests using an existing synthetics.json file
jobs:
  e2e_testing:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Run Datadog Synthetic tests
        uses: DataDog/synthetics-ci-github-action@v3.8.2
        with:
          api-key: ${{secrets.DD_API_KEY}}
          app-key: ${{secrets.DD_APP_KEY}}

Pour un exemple de fichier de test, consultez ce fichier test.synthetics.json.

Remarque : par défaut, ce workflow exécute tous les tests répertoriés dans les fichiers {,!(node_modules)/**/}*.synthetics.json (chaque fichier se terminant par .synthetics.json à l’exception de ceux dans le dossier node_modules). Vous pouvez également déclencher une liste de tests Synthetic en spécifiant un public_id ou en utilisant une requête de recherche.

Workflows complexes

Exemple de workflow utilisant une requête test_search_query

name: Run Synthetic tests by test tag
jobs:
  e2e_testing:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Run Datadog Synthetic tests
        uses: DataDog/synthetics-ci-github-action@v3.8.2
        with:
          api-key: ${{secrets.DD_API_KEY}}
          app-key: ${{secrets.DD_APP_KEY}}
          test-search-query: 'tag:e2e-tests'

Exemple de workflow utilisant une requête de recherche de test et des remplacements de variables

name: Run Synthetic tests using search query
jobs:
  e2e_testing:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Run Datadog Synthetic tests
        uses: DataDog/synthetics-ci-github-action@v3.8.2
        with:
          api-key: ${{secrets.DD_API_KEY}}
          app-key: ${{secrets.DD_APP_KEY}}
          test-search-query: 'tag:staging'
          variables: 'START_URL=https://staging.website.com,PASSWORD=stagingpassword'

Exemple de workflow utilisant un fichier de configuration globale avec config_path

Par défaut, le chemin vers le fichier de configuration globale est datadog-ci.json. Vous pouvez remplacer ce chemin avec l’entrée config_path.

name: Run Synthetic tests with custom config
jobs:
  e2e_testing:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Run Datadog Synthetic tests
        uses: DataDog/synthetics-ci-github-action@v3.8.2
        with:
          api-key: ${{secrets.DD_API_KEY}}
          app-key: ${{secrets.DD_APP_KEY}}
          config-path: './global.config.json'

Paramètres

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

NomRôle
api-key(Requis) Votre clé d’API Datadog. Cette clé est créée dans votre organisation Datadog et doit être stockée en tant que secret.
app-key(Requis) Votre clé d’application Datadog. Cette clé est créée dans votre organisation Datadog et doit être stockée en tant que secret.
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
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

Sorties

NomRôle
batch-urlL’URL du batch CI.
critical-errors-countLe nombre d’erreurs critiques qui se sont produites pendant le batch CI.
failed-countLe nombre de résultats ayant échoué pendant le batch CI.
failed-non-blocking-countLe nombre de résultats ayant échoué pendant le batch CI sans bloquer la CI.
passed-countLe nombre de résultats ayant réussi pendant le batch CI.
previously-passed-countLe nombre de résultats ayant déjà réussi dans des batchs CI précédents sur le même commit.
tests-not-found-countLe nombre de tests qui n’ont pas pu être trouvés lors du démarrage du batch CI.
tests-skipped-countLe nombre de tests qui ont été ignorés lors du démarrage du batch CI.
timed-out-countLe nombre de résultats ayant échoué en raison du délai d’expiration du batch CI.
raw-resultsLe tableau synthetics.Result[], sous forme de chaîne encodée en JSON.

Contributions

Consulter CONTRIBUTING.md

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles :