FeaturedNOTICIAS

Cómo crear una canalización de CI de GitLab para analizar estáticamente proyectos PHP – CloudSavvy IT


Imagen con los logotipos de GitLab y PHPStan

La realización de análisis de código estático ahorra tiempo al descubrir problemas ocultos. PHPStan es una herramienta de análisis estático para PHP que le ayuda a aumentar la calidad de su base de código. A continuación, se explica cómo ejecutar PHPStan en sus canalizaciones de CI de GitLab.

Es bueno ejecutar PHPStan con regularidad a medida que desarrolla nuevas funciones. Usarlo localmente solo te lleva hasta cierto punto. Confíe en que los demás miembros de su equipo son tan disciplinados como usted. La integración del análisis estático en un flujo de trabajo de CI / CD garantiza que el código no se pueda fusionar si rompe la rama principal del proyecto.

Obtenga la instalación con PHPStan

Primero debe agregar PHPStan a su proyecto. Ya tenemos una guía detallada sobre la instalación y configuración de PHPStan, por lo que solo cubriremos los conceptos básicos aquí.

Primero, use Composer para instalar PHPStan:

composer require --dev phpstan/phpstan

Luego, crea un archivo básico phpstan.neon archivo de configuración en su proyecto:

parameters:
  level: max
  paths:
    - src
    - tests
  tmpDir: .tmp

El directorio temporal se sobrescribe para ayudar con el almacenamiento en caché de GitLab CI, configurado a continuación.

TE INTERESA>>  La temporada 4 de MY HERO ULTRA RUMBLE ya está disponible

Ahora puede ejecutar PHPStan localmente para verificar que su configuración funcione:

vendor/bin/phpstan analyse

En esta etapa, no importa si se pasan las pruebas.

Configuración de GitLab para CI

Asegúrese de haber enviado el código a un proyecto en su servidor de GitLab. Deberá verificar que la función Pipeline esté habilitada para su proyecto; si ve «CI / CD» en la barra lateral izquierda, está listo para comenzar.

Para habilitar el sistema de CI del proyecto, haga clic en el botón «Configuración» en la barra lateral. Expanda la sección «Visibilidad, características del proyecto, permisos» y habilite la función «Pipeline».

Si usa las solicitudes de combinación (MR) de GitLab de manera disciplinada, ahora puede configurar GitLab para evitar que las MR se fusionen a menos que tengan una canalización exitosa. Expanda la sección de configuración «Solicitudes de combinación» y seleccione el botón de alternancia «Las ejecuciones deben realizarse correctamente». Haga clic en «Guardar» para confirmar. Esto evitará fusionar accidentalmente un MR cuando PHPStan falla con sus modificaciones.

Para usar GitLab CI, debe tener un GitLab Runner definido a nivel de instancia, grupo o proyecto. Los corredores son responsables de ejecutar los trabajos de CI creados por el sistema GitLab.

Usaremos la imagen PHPStan Docker para ejecutar PHPStan en nuestra canalización de CI. Esto requiere el uso de un GitLab Runner que use el ejecutor de Docker. Si está en una instancia autogestionada y necesita configurar un nuevo Runner, siga las instrucciones en nuestro artículo de configuración de GitLab CI.

Crear una canalización de CI de GitLab

GitLab CI se configura mediante un archivo .gitlab-ci.yml archivo en la raíz del proyecto. Las canalizaciones de CI admiten múltiples etapas secuenciales. Los trabajos de cada etapa se realizan en paralelo. Para nuestros propósitos de ejecución de PHPStan, necesitamos un solo paso que funcione.

stages:
  - phpstan

cache:
  key: $CI_COMMIT_REF_SLUG
  paths:
    - .tmp/
    - vendor/

phpstan:
  stage: phpstan
  image: ghcr.io/phpstan/phpstan
  script:
    - analyse --no-progress --error-format gitlab > phpstan.json
  artifacts:
    when: always
    reports:
      codequality: phpstan.json

Este archivo CI de GitLab contiene todo lo que necesitamos para ejecutar PHPStan dentro de nuestra canalización. Definamos una fase, phpstan, que contiene una obra también llamada phpstan. El trabajo utiliza la imagen oficial PHPStan Docker del registro de contenedores de GitHub.

TE INTERESA>>  La última de Marko: "Ricciardo tiene un problema mental"

La caché de CI de GitLab está configurada para almacenar en caché el archivo .tmp es vendor directorio. Esto mejorará el rendimiento de las ejecuciones posteriores en la misma rama. La caché se restablecerá automáticamente. De vuelta en el nuestro phpstan.neon, configuramos el tmpDir para .tmp por esta razón, significa que ahora podemos hacer referencia con confianza en la configuración de caché de canalización de CI.

También tenemos caché vendor para evitar reinstalar innecesariamente las dependencias de Composer en cada ejecución. Tenga en cuenta que no tiene que apresurarse composer install manualmente: la imagen oficial PHPStan Docker lo llama automáticamente.

los --error-format la bandera se pasa a PHPStan’s analyse mando. Esto configura PHPStan para crear un archivo JSON en el formato aceptado por el Informe de calidad del código de GitLab. Abajo en el artifacts sección, este archivo se carga en GitLab al final del trabajo.

Usando la tubería

Comprometa el tuyo .gitlab-ci.yml y envíelo a su servidor GitLab. El sistema CI debería comenzar ahora y crear su primera canalización. Utilice el enlace «CI / CD» en la barra de navegación izquierda para ver el progreso de la canalización.

Si obtiene una marca verde, ¡las pruebas PHPStan han pasado! Su sucursal está en buena forma y lista para unirse. Si aparece una cruz roja, tiene otro trabajo que hacer. PHPStan y GitLab CI simplemente impidieron fusionar código potencialmente dañado.

TE INTERESA>>  Beware of 'Deferred Interest' Promotions

Puede obtener la lista de errores haciendo clic en el icono de descarga a la derecha de la canalización. Seleccione el elemento de calidad del código PHPStan para obtener el informe JSON de los errores detectados por PHPStan.

Usar con solicitudes de fusión

Leer JSON manualmente no es una gran experiencia. Sin embargo, las solicitudes de combinación de GitLab exponen automáticamente el contenido del informe. Dado que el informe está marcado como un artefacto de calidad del código de GitLab, GitLab sabe cómo presentar la información que contiene.

Las solicitudes de combinación con una canalización fallida deben mostrar una sección expandible «Calidad del código». Indica el número de errores encontrados. Expanda la sección para ver una lista completa de los problemas detectados por PHPStan.

Después de solucionar los problemas, envíe sus cambios a GitLab. La canalización se ejecutará nuevamente. Una vez completado, verá el nuevo estado en la pantalla Pipelines y en el widget de calidad del código de su solicitud de fusión.

Conclusión

PHPStan le ayuda a escribir mejor PHP, que es menos susceptible a problemas ocultos. Para aprovecharlo al máximo, la herramienta debe incorporarse al flujo de trabajo de desarrollo de tal manera que no se pueda omitir ni omitir.

Usar PHPStan con GitLab CI le brinda la consistencia que necesita para estar seguro de su código. Configurar GitLab para bloquear MR con una tubería fallida significa que los cambios no pueden ingresar a la rama principal sin pasar una ejecución de PHPStan. El soporte completo de PHPStan para los informes de calidad del código de GitLab facilita la evaluación de errores sin salir de la interfaz de usuario web, lo que le ayuda a resolver rápidamente cualquier problema que descubra.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Botón volver arriba
hentai creampir hentairulz.com saoff summer xxxx hot zoztube.mobi xhamsted ماياخليفة سكس parabg.com سكس قذف جماعى سكس جنوب افريقيا arab-porno.net سكس بنات محجبة freefuck redwap2.com karnataka blue film نيك خادمة freetvtube.info قصص نيك محارم الارشيف 23 sexy rapes teenextube.mobi latest scandals in bollywood milf manga truehentai.com la blue girl manga ang probinsyano june 19 pinoyshowstv.com enchong pokemon henatai hentaicredo.com boku no pico nokare .com gotporn.mobi www.freesexdoor.com indian first night xxx pornxvideos.info xxx six india sex samantha sex zatube.mobi cuddling porn mom son sleeping sex hdtporno.org velamma episode 74 indian free porn mms youjizz.sex velamma episode 79