Información general

Lanzamiento de GitHub

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:

  1. Añade tu API de Datadog y tus claves de aplicación como secretos a tu repositorio de GitHub.
  2. 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.

NombreDescripció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-timeoutEspecifica 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-pathRuta al archivo de configuración global que configura datadog-ci.
Por defecto: datadog-ci.json
datadog-siteTu 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-errorsFalla 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-testsFalla 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-timeoutFalla el trabajo de CI si el lote de CI falla por haber excedido el tiempo de espera.
Por defecto: true
filesPatrones glob para detectar archivos de configuración de tests Synthetic, separados por nuevas líneas.
Por defecto: {,!(node_modules)/**/}*.synthetics.json
junit-reportNombre de archivo para un informe JUnit, si quieres generar uno.
Por defecto: ninguno
locationsAnula 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-idsID 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-rerunSi 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
subdomainSubdominio 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-queryUtiliza 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
tunnelUtiliza el túnel de Continuous Testing para lanzar tests contra entornos internos.
Por defecto: false
variablesSustituye 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

NombreDescripción
batch-urlURL del lote de CI.
critical-errors-countNúmero de errores críticos que se han producido durante el lote de CI.
failed-countNúmero de resultados que han fallado durante el lote de CI.
failed-non-blocking-countNúmero de resultados que han fallado durante el lote de CI sin bloquear CI.
passed-countNúmero de resultados que han sido aprobados durante el lote de CI.
previously-passed-countNúmero de resultados que ya han sido aprobados en lotes de CI anteriores en el mismo commit.
tests-not-found-countNúmero de tests que no se han podido encontrar al iniciar el lote de CI.
tests-skipped-countNúmero de tests que se han omitido al iniciar el lote de CI.
timed-out-countNúmero de resultados que han fallado debido al tiempo de espera del lote de CI excedido.
raw-resultsMatriz synthetics.Result[], como cadena codificada en JSON.

Colaboración

Consultar CONTRIBUTING.md

Referencias adicionales

Documentación útil adicional, enlaces y artículos: