Continuous Testing y GitHub Actions de CI

Activa tests de Datadog Synthetic desde tus flujos de trabajo de GitHub.
Para obtener más información sobre la configuración disponible, consulta la documentación datadog-ci synthetics run-tests.
Configuración
Para empezar:
- Añade tu API de Datadog y tus claves de aplicación como secretos a tu repositorio de GitHub.
- En tu flujo de trabajo de GitHub, utiliza
DataDog/synthetics-ci-github-action.
Tu flujo de trabajo puede ser simple o complejo.
Flujos de trabajo simples
Ejemplo de flujos de trabajo con ID públicos
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
Ejemplo de flujos de trabajo con el uso de un archivo synthetics.json existente
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}}
Para ver un archivo de test de ejemplo, consulta este archivo test.synthetics.json.
Nota: Por defecto, este flujo de trabajo ejecuta todos los tests mencionados en los archivos {,!(node_modules)/**/}*.synthetics.json (todos los archivos que terminan en .synthetics.json, excepto los de la carpeta node_modules). También puedes activar una lista de tests Synthetic especificando un public_id o utilizando una consulta de búsqueda.
Flujos de trabajo complejos
Ejemplo de flujos de trabajo con 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'
Ejemplo de flujos de trabajo con una consulta de búsqueda de prueba y anulación 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'
Ejemplo de flujos de trabajo con el uso de un archivo de configuración global con config_path
Por defecto, la ruta al archivo de configuración global es datadog-ci.json. Puedes anular esta ruta con la entrada 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'
Entradas
Para obtener más información sobre la configuración disponible, consulta la documentación datadog-ci synthetics run-tests.
| Nombre | Descripción |
|---|
api-key | (Obligatorio) Tu clave de API de Datadog. Esta clave se crea en tu organización Datadog y debe guardarse como secreto. |
app-key | (Obligatorio) Tu clave de aplicación de Datadog. Esta clave se crea en tu organización Datadog y debe guardarse como secreto. |
batch-timeout | Especifica la duración del tiempo de espera en milisegundos del lote de CI. Cuando se excede el tiempo de espera de un lote, el trabajo de CI falla y no se activan nuevas ejecuciones de tests, pero las ejecuciones de tests en curso se completan normalmente. Por defecto: 1800000 (30 minutos) |
config-path | Ruta al archivo de configuración global que configura datadog-ci. Por defecto: datadog-ci.json |
datadog-site | Tu sitio Datadog. Los valores posibles se indican en esta tabla. Por defecto: datadoghq.com
Configúralo en (asegúrate de seleccionar el SITIO correcto a la derecha). |
fail-on-critical-errors | Falla el trabajo de CI si se produce un error crítico que suele ser transitorio, como límites de frecuencia, fallos de autenticación o problemas de infraestructura de Datadog. Por defecto: false |
fail-on-missing-tests | Falla el trabajo de CI si la lista de tests por ejecutar está vacía o si faltan algunos tests explícitamente mencionados. Por defecto: false |
fail-on-timeout | Falla el trabajo de CI si el lote de CI falla por haber excedido el tiempo de espera. Por defecto: true |
files | Patrones glob para detectar archivos de configuración de tests Synthetic, separados por nuevas líneas. Por defecto: {,!(node_modules)/**/}*.synthetics.json |
junit-report | Nombre de archivo para un informe JUnit, si quieres generar uno. Por defecto: ninguno |
locations | Anula la lista de ubicaciones desde las que ejecutar tests, separadas por nuevas líneas o comas. Los valores posibles se enumeran en esta respuesta de API. Por defecto: ninguno |
public-ids | ID públicos de los tests Synthetic por ejecutar, separados por nuevas líneas o comas. Si no se proporciona ningún valor, los tests se detectan en los archivos de configuración de tests Synthetic. Por defecto: ninguno |
selective-rerun | Si se vuelven a ejecutar solo los tests fallidos. Si un test ya ha pasado para un commit dado, no se vuelve a ejecutar en los siguientes lotes de CI. Por defecto, se utiliza la configuración por defecto de tu organización. Configúralo como false para forzar ejecuciones completas cuando tu configuración lo permita por defecto. Por defecto: ninguno |
subdomain | Subdominio personalizado para acceder a tu organización Datadog. Si tu URL es myorg.datadoghq.com, el subdominio personalizado es myorg. Por defecto: app |
test-search-query | Utiliza una consulta de búsqueda para seleccionar los tests Synthetic que se van a ejecutar. Utiliza la barra de búsqueda de la página con la lista de tests Synthetic para crear tu consulta y, a continuación, cópiala y pégala. Por defecto: ninguno |
tunnel | Utiliza el túnel de Continuous Testing para lanzar tests contra entornos internos. Por defecto: false |
variables | Sustituye las existentes o inyecta nuevas variables locales y globales en tests Synthetic como pares clave-valor, separados por nuevas líneas o comas. Por ejemplo: START_URL=https://example.org,MY_VARIABLE=My title. Por defecto: ninguno |
Salidas
| Nombre | Descripción |
|---|
batch-url | URL del lote de CI. |
critical-errors-count | Número de errores críticos que se han producido durante el lote de CI. |
failed-count | Número de resultados que han fallado durante el lote de CI. |
failed-non-blocking-count | Número de resultados que han fallado durante el lote de CI sin bloquear CI. |
passed-count | Número de resultados que han sido aprobados durante el lote de CI. |
previously-passed-count | Número de resultados que ya han sido aprobados en lotes de CI anteriores en el mismo commit. |
tests-not-found-count | Número de tests que no se han podido encontrar al iniciar el lote de CI. |
tests-skipped-count | Número de tests que se han omitido al iniciar el lote de CI. |
timed-out-count | Número de resultados que han fallado debido al tiempo de espera del lote de CI excedido. |
raw-results | Matriz synthetics.Result[], como cadena codificada en JSON. |
Colaboración
Consultar CONTRIBUTING.md
Referencias adicionales
Documentación útil adicional, enlaces y artículos: