Git
Tutorial Git: Análisis estático con SonarCloud
SonarCloud: Aprende a configurar un proyecto Spring Boot con GitHub Actions para análisis de calidad de código continuo y mejora de estándares.
Aprende Git y certifícateQué es SonarCloud: Análisis de calidad de código y métricas
SonarCloud es una plataforma en la nube para el análisis estático de código, que permite evaluar la calidad y seguridad del software de forma continua. Se integra con repositorios de código como GitHub y ofrece análisis para múltiples lenguajes de programación, incluyendo Java, Python, JavaScript y muchos más.
Con SonarCloud, se pueden detectar bugs, vulnerabilidades y code smells en el código fuente antes de que lleguen a producción. Además, proporciona métricas detalladas sobre la cobertura de pruebas, la duplicación de código y el nivel de deuda técnica.
SonarCloud puede implementar Quality Gates, que actúan como puntos de control para garantizar que el código cumple con ciertos estándares de calidad antes de integrarse en la rama principal. Si el código no supera estos umbrales definidos, se puede bloquear su incorporación hasta que se realicen las correcciones necesarias.
La integración con GitHub permite que los análisis de SonarCloud se ejecuten automáticamente mediante GitHub Actions, proporcionando retroalimentación inmediata en las solicitudes de extracción (pull requests).
SonarCloud también ofrece una interfaz web intuitiva donde se visualizan todas las métricas y resultados de análisis. Desde allí, se pueden explorar detalles específicos, asignar problemas a miembros del equipo y seguir el progreso de la mejora continua.
Configuración de SonarCloud en proyecto Spring Boot para GitHub Actions
Para integrar SonarCloud en un proyecto Spring Boot y utilizar GitHub Actions para análisis continuos, se deben realizar configuraciones tanto en SonarCloud como en el repositorio de GitHub.
Primero, se necesita crear una cuenta en SonarCloud o acceder si ya se dispone de una. Se recomienda utilizar la autenticación vía GitHub para facilitar la integración y permitir que SonarCloud acceda a los repositorios necesarios.
Dentro de SonarCloud, se crea una organización o se utiliza una existente. Esta organización debe estar vinculada al repositorio de GitHub que contiene el proyecto Spring Boot. Para ello, se otorgan los permisos necesarios a SonarCloud para acceder a los repositorios en GitHub.
A continuación, se añade el proyecto a SonarCloud. Se selecciona la opción de importar un proyecto desde GitHub y se elige el repositorio correspondiente. SonarCloud asignará un identificador único al proyecto, que será necesario para las configuraciones posteriores.
Tras elegir un repositorio SonarCloud lo analiza automáticamente:
Ejecución del análisis de forma automatizada con GitHub Actions
Si se quiere que cuando se haga un commit y push se ejecute el análisis automáticamente con GitHub Actions, se puede configurar en Adminstración y método de análisis:
Después pulsar y configurar GitHub Actions:
Después veremos las instrucciones exactas para configurarlo:
Para que GitHub Actions pueda ejecutar el análisis en SonarCloud, se requiere un token de autenticación. El token se ha generado en pantalla, se copia y se pega en el repositorio de GitHub:
Después es nececesario crear el workflow en el repositorio de GitHub, este es un ejemplo de un workflow:
name: WorkFlow 1 paso con SonarCloud
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
services:
selenium:
image: selenium/standalone-chrome
ports:
- 4444:4444
options: --shm-size=2g
steps:
# 1. Checkout the repository
- uses: actions/checkout@v4
# 2. Cache SonarQube Cloud packages
- name: Cache SonarQube Cloud packages
uses: actions/cache@v4
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
# 3. Cache Maven packages
- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
# 4. Set up JDK 23
- name: Set up JDK 23
uses: actions/setup-java@v4
with:
java-version: '23'
distribution: 'temurin'
cache: maven
# 5. Install dependencies
- name: Install dependencies
run: mvn install
# 6. Run tests with coverage
- name: Run tests with coverage
run: mvn clean verify
# 7. Upload Jacoco coverage to SonarCloud
- name: Análisis con SonarCloud
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: mvn org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=alansastre_spring-github-actions -Dsonar.organization=alansastre -Dsonar.host.url=https://sonarcloud.io
# Construir imagen docker
# - name: Construir imagen docker
# run: docker build -t alansastre/spring-github-actions .
#
# # Push docker image to docker hub
# - name: Push docker image to docker hub
# run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin && docker push alansastre/spring-github-actions
Se puede ver el repositorio entero aquí.
A partir de ahora cada vez que se hace commit y push se analiza automáticamente el proyecto:
Ejercicios de esta lección Análisis estático con SonarCloud
Evalúa tus conocimientos de esta lección Análisis estático con SonarCloud con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Comandos básicos
GitHub como remoto
Comandos básicos
Comandos avanzados
Git con GitHub Desktop
Ramas
Instalación y configuración
Introducción a Git
Comandos avanzados
Resolución de conflictos
Git con Intellij IDEA
Git con Visual Studio Code
Todas las lecciones de Git
Accede a todas las lecciones de Git y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Git
Introducción Y Entorno
Instalación Y Configuración
Introducción Y Entorno
Primeros Pasos Con Git
Introducción Y Entorno
Ciclo De Vida De Los Archivos
Comandos
Comandos Básicos
Comandos
Comandos Avanzados
Comandos
Gitignore Y Archivos Temporales
Comandos
Visualización Y Navegación De Cambios
Comandos
Etiquetas Tags Y Releases
Comandos
Ramas
Ramas
Merge Vs Rebase
Ramas
Stash De Cambios Entre Ramas
Ramas
Cherry Pick De Cambios
Ramas
Deshacer Cambios
Ramas
Gitflow
Ramas
Resolución De Conflictos
Trabajo Remoto Y Colaboración
Github Como Remoto
Trabajo Remoto Y Colaboración
Git Con Visual Studio Code
Trabajo Remoto Y Colaboración
Git Con Intellij Idea
Trabajo Remoto Y Colaboración
Git Con Github Desktop
Trabajo Remoto Y Colaboración
Crear Y Organizar Issues En Github
Trabajo Remoto Y Colaboración
Github Pages Para Crear Sitios Web
Trabajo Remoto Y Colaboración
Repositorio Especial Username Github
Trabajo Remoto Y Colaboración
Pull Requests (Pr) En Github
Integración Continua Ci
Ci Con Github Actions
Integración Continua Ci
Análisis Estático Con Sonarcloud
Integración Continua Ci
Desplegar En Vercel Desde Github
Integración Continua Ci
Certificados de superación de Git
Supera todos los ejercicios de programación del curso de Git y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Entender los beneficios de usar SonarCloud para el análisis de calidad del código.
- Aprender a integrar SonarCloud con un repositorio de GitHub.
- Configurar un proyecto Spring Boot para ser analizado por SonarCloud.
- Implementar GitHub Actions para análisis automatizados en cada cambio de código.
- Crear un archivo de propiedades 'sonar-project.properties'.
- Generar y usar un token de autenticación en GitHub Secrets.
- Configurar un workflow en GitHub Actions para SonarCloud.