Verifica la configuración de CI/CD

Requisitos previos para CI/CD

Para configurar Checks para que se ejecuten en una canalización, recupera las entradas de configuración clave de tu cuenta de Checks y tu proyecto de Google Cloud.

Verifica la cuenta y la app de destino

Cuando ejecutes Checks en tu plataforma de CI/CD, deberás asignar los resultados a una cuenta de Checks y a una app que hayas conectado a esa cuenta de Checks. Para ello, necesitarás el ID de cuenta y el ID de aplicación de Checks.

Para obtener tu ID de cuenta, visita la página Configuración de la cuenta.

Para obtener tu ID de la app, visita la página de configuración de la app.

Autenticación

Se debe usar una cuenta de servicio cuando se usan verificaciones en una configuración de automatización, como CI/CD. Para obtener más información sobre cómo crear y configurar una cuenta de servicio, consulta Autentica la CLI.

Si usas uno de los complementos de CI/CD de Checks, consulta la documentación del complemento para saber cómo proporcionar las credenciales.

Si usas la CLI de Checks en tu sistema de CI/CD, se recomienda que uses variables de entorno de CI para configurar tu clave JSON. Por ejemplo:

CHECKS_CREDENTIALS=/my/path/to/serviceaccount.json

Configura verificaciones para que se ejecuten en una canalización de CI/CD

Checks admite los siguientes enfoques:

  • Complementos de Checks para CI/CD: Checks proporciona complementos prediseñados para varias plataformas de CI/CD, incluidas GitHub y fastlane. Consulta la navegación lateral para obtener más información.
  • CLI de Checks: Los equipos con flujos de trabajo más complejos o que usan un sistema de compilación sin un complemento prediseñado de Checks pueden usar la CLI de Checks en su canalización de CI/CD. Consulta Configuración con la CLI de Checks y Configuración universal con la CLI de Checks para obtener más detalles.
  • API de Checks: Para los equipos con flujos de trabajo altamente personalizados, Checks ofrece una API de REST sólida. Úsala para iniciar análisis, recuperar informes y adaptar la experiencia a tus requisitos únicos. Encontrarás más información en la documentación de la API de Checks.

Configuración universal con la CLI de Checks

Si no existe un complemento de Checks para tu plataforma de CI/CD, puedes usar la CLI de Checks. Los desarrolladores pueden crear scripts de la CLI de Checks directamente en cualquier plataforma de CI/CD que admita pasos de flujo de trabajo de ejecución de scripts.

Se pueden crear secuencias de comandos de la CLI de Checks para realizar las siguientes acciones:

  • Devuelve códigos de error distintos de cero solo cuando se cumplen ciertos criterios, por ejemplo, sal con un código de error solo si se encuentran problemas de alta prioridad. Ten en cuenta que la CLI nunca devolverá un código de error; el desarrollador debe devolver los códigos de error de forma manual en el paso de la secuencia de comandos.
  • Genera todos sus datos en formato JSON para mayor flexibilidad.

A continuación, se muestra un ejemplo del uso de la CLI en las acciones de GitHub en cada confirmación, en lugar de la acción de GitHub de CI/CD de Checks. También transformamos el resultado para producir un código de error cuando Checks encuentra problemas de prioridad:

name: Example workflow using Checks
run-name: ${ { github.actor } } is running Checks App Compliance GitHub Action
on: [push]
jobs:
  checks:
    runs-on: ubuntu-latest
    steps:
        uses: actions/checkout@v4
      - name: Checks App Compliance analysis
        run:
          echo 'Starting Checks App Compliance scan...'
          chmod +x ./checks
          ./checks report generate --binary-path=${CHECKS_BINARY_PATH} --app-id=${CHECKS_APP_ID} --account-id=${CHECKS_ACCOUNT_ID} --no-input --json  --wait-and-print-report > checks_results.json
          echo "Wrote App Compliance scan results to checks_results.json"
        env:
            # Replace all inputs with your configurations.
            CHECKS_CREDENTIALS: ${{ secrets.SERVICE_ACCOUNT_JSON }}
            CHECKS_APP_ID: "123456"
            CHECKS_ACCOUNT_ID: "654321"
            CHECKS_BINARY_PATH: "./app_release.apk"
      - name: Read JSON file
        uses: actions/github-script@v6
        with:
            script: |
                const fs = require('fs');
                const json = fs.readFileSync('./checks_results.json', 'utf8');
                const report = JSON.parse(json);

                console.log(`Generated report name: ${report.name}`);
                console.log(`Report console URL: ${report.resultsUri}`);

                const failingChecks = [];
                for (const check of report.checks) {
                    if (check.severity.toString() === 'PRIORITY' && check.state.toString() === 'FAILED') {
                        failingChecks.push(check);
                    }
                }

                if (failingChecks.length > 0) {
                    console.log(`${failingChecks.length} priority issue(s) detected: `);
                    for (const check of failingChecks) {
                        console.log(`Type: ${check.type}. Details: ${JSON.stringify(check)}`);
                    }
                    process.exit(1);
                }

Comentarios

¿Tienes un flujo de trabajo de CI/CD que te gustaría que se agregara a esta guía? Escríbenos a checks-support@google.com.