Synthetics et GitHub Actions pour la CI
Présentation
Déclenchez des tests Synthetic depuis vos workflows GitHub grâce à la commande CI Synthetics Datadog.
Configuration
Pour commencer :
- Ajoutez vos clés d’API et d’application Datadog à votre référentiel GitHub sous forme de secrets. Pour en savoir plus, consultez la section Clés d’API et clés d’application.
- 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: Exécuter des tests Synthetic avec des ID de test publics
jobs:
e2e_testing:
runs-on: ubuntu-latest
steps:
- name: Paiement
uses: actions/checkout@v2
- name: Exécuter des tests Synthetic Datadog
uses: DataDog/synthetics-ci-github-action@v0.3.0
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: Exécuter des tests Synthetic avec un fichier synthetics.json existant
jobs:
e2e_testing:
runs-on: ubuntu-latest
steps:
- name: Paiement
uses: actions/checkout@v2
- name: Exécuter des tests Synthetic Datadog
uses: DataDog/synthetics-ci-github-action@v0.3.0
with:
api_key: ${{secrets.DD_API_KEY}}
app_key: ${{secrets.DD_APP_KEY}}
Remarque : par défaut, ce workflow exécute tous les tests répertoriés dans les fichiers {,!(node_modules)/**/}*.synthetics.json
(à savoir, tous les fichiers qui se termine par .synthetics.json
, sauf ceux contenus 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: Exécuter des tests Synthetic en fonction des tags de test
jobs:
e2e_testing:
runs-on: ubuntu-latest
steps:
- name: Paiement
uses: actions/checkout@v2
- name: Exécuter des tests Synthetic Datadog
uses: DataDog/synthetics-ci-github-action@v0.3.0
with:
api_key: ${{secrets.DD_API_KEY}}
app_key: ${{secrets.DD_APP_KEY}}
test_search_query: 'tag:e2e-tests'
Exemple de workflow utilisant une configuration globale prioritaire avec config_path
name: Exécuter des tests Synthetic avec une configuration personnalisée
jobs:
e2e_testing:
runs-on: ubuntu-latest
steps:
- name: Paiement
uses: actions/checkout@v2
- name: Exécuter des tests Synthetic Datadog
uses: DataDog/synthetics-ci-github-action@v0.3.0
with:
api_key: ${{secrets.DD_API_KEY}}
app_key: ${{secrets.DD_APP_KEY}}
config_path: './synthetics-config.json'
Paramètres
Nom | Type | Prérequis | Description |
---|
api_key | chaîne | obligatoire | Votre clé d’API Datadog. Cette clé est créée par votre {organisation Datadog]2. Elle doit être stockée sous la forme d’un secret. Valeur par défaut : aucune. |
app_key | chaîne | obligatoire | Votre clé d’application Datadog. Cette clé est créée par votre {organisation Datadog]2. Elle doit être stockée sous la forme d’un secret. Valeur par défaut : aucune. |
public_ids | chaîne | facultatif | Une chaîne composée d’ID publics séparés par des virgules correspondant aux tests Synthetic à déclencher. Si aucune valeur n’est fournie, l’action recherche les fichiers dont le nom contient synthetics.json . Valeur par défaut : aucune. |
test_search_query | chaîne | facultatif | Déclenche les tests correspondants à une requête de recherche. Valeur par défaut : aucune. |
subdomain | chaîne | facultatif | Le nom du sous-domaine personnalisé permettant d’accéder à votre application Datadog. Si l’URL utilisée pour accéder à Datadog est myorg.datadoghq.com , la valeur du sous-domaine doit alors être définie sur myorg . Valeur par défaut : app . |
files | chaîne | facultatif | Expression globale permettant de détecter les fichiers de configuration des tests Synthetic. Valeur par défaut : {,!(node_modules)/**/}*.synthetics.json . |
datadog_site | chaîne | facultatif | Le site Datadog. Pour les utilisateurs situés dans l’UE, définissez le site sur datadoghq.eu . Exemple : datadoghq.com ou datadoghq.eu . Valeur par défaut : datadoghq.com . |
config_path | chaîne | facultatif | La configuration JSON globale utilisée lors du lancement des tests. Consultez l’exemple de configuration pour en savoir plus. Valeur par défaut : datadog-ci.json . |
Développement
yarn jest
# Créer le projet
yarn build
# Compiler le projet et ses dépendances afin de le publier
yarn package
Processus de publication
Pour publier une nouvelle version de synthetics-ci-github-action
, procédez comme suit :
- Créez une nouvelle branche pour la mise à niveau de la version.
- Modifiez la version du package à l’aide de la commande
yarn version [--patch|--minor|--major]
(choisissez l’option correspondant à la nature de vos changements).- Consultez la section Gestion sémantique des versions (en anglais) pour identifier les éléments à incrémenter.
- Recréez et empaquetez le projet avant de le publier. N’oubliez pas de modifier les exemples de version du fichier
README.md
- Envoyez la branche ainsi que le tag de version (
git push --tags
) en amont (à GitHub).- Créez une pull request en indiquant dans la description les modifications apportées. Cette pull request doit au moins être approuvée une fois.
- Fusionnez la pull request.
- Créez une version GitHub depuis la page Tags en prenant soin de décrire vos modifications.
⚠️ Vérifiez que le numéro de version respecte le format attendu : vX.X.X
.
Une fois ce processus terminé, la nouvelle version de l’action GitHub est disponible en tant que workflow.
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles :