Tests continus et GitHub Actions pour la CI
Section Overview

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 :
- Ajoutez vos clés d’API et d’application Datadog en tant que secrets à votre référentiel GitHub.
- 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.
| Nom | Rô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-timeout | Spé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-path | Le chemin vers le fichier de configuration globale qui configure datadog-ci. Par défaut : datadog-ci.json |
datadog-site | Votre 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-errors | Faire é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-tests | Faire é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-timeout | Faire échouer la tâche CI si le batch CI échoue en raison d’un délai d’expiration. Par défaut : true |
files | Motifs 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-report | Le nom de fichier d’un rapport JUnit si vous souhaitez en générer un. Par défaut : aucun |
locations | Remplacer 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-ids | ID 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-rerun | Indique 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 |
subdomain | Le 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-query | Utilisez 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 |
tunnel | Utilisez le tunnel Continuous Testing pour lancer des tests contre des environnements internes. Par défaut : false |
variables | Remplacez 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
| Nom | Rôle |
|---|
batch-url | L’URL du batch CI. |
critical-errors-count | Le nombre d’erreurs critiques qui se sont produites pendant le batch CI. |
failed-count | Le nombre de résultats ayant échoué pendant le batch CI. |
failed-non-blocking-count | Le nombre de résultats ayant échoué pendant le batch CI sans bloquer la CI. |
passed-count | Le nombre de résultats ayant réussi pendant le batch CI. |
previously-passed-count | Le nombre de résultats ayant déjà réussi dans des batchs CI précédents sur le même commit. |
tests-not-found-count | Le nombre de tests qui n’ont pas pu être trouvés lors du démarrage du batch CI. |
tests-skipped-count | Le nombre de tests qui ont été ignorés lors du démarrage du batch CI. |
timed-out-count | Le nombre de résultats ayant échoué en raison du délai d’expiration du batch CI. |
raw-results | Le 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 :