Implementación de CI/CD en aplicaciones Java (Linux) usando Shell y Docker Executor en GitLab

Hay muchos ejecutores disponibles para implementar CI/CD con GitLab Runner. Sin embargo, Shell y Docker son más populares entre ellos y podemos configurar fácilmente un repositorio con estos ejecutores. Estos corredores se pueden elegir en función de los requisitos y la disponibilidad de los recursos. Este artículo se centra principalmente en los ejecutores Shell y Docker de la aplicación Java Linux y el código está escrito en script bash. La aplicación puede compilarse y probarse mediante un script bash.

Shell Executor : Shell Executor es un ejecutor muy simple que ayuda a construir la solución localmente en la máquina, donde está instalado GitLab Runner. En este caso, GitLab Runner está instalado en la máquina Linux, por lo que debe instalar el software requerido en el mismo sistema.

Docker Executor: Es una poderosa herramienta que incluye mucho software y se puede acceder por imagen. La ventaja de este ejecutor es que no necesitamos instalar ningún software manualmente, todo se hará a través de Docker y la imagen requerida se descargará desde Docker Hub. Sin embargo, la desventaja es que esta comunicación está bloqueada en algunas organizaciones por motivos de seguridad. Entonces, si este es el caso, Shell Executor es la mejor alternativa. 

Implementación de Java en Shell Executor:

Requisitos: Estos son el software básico que necesita instalar en una máquina Linux. Sin embargo, se puede cambiar según el script de compilación y es necesario descargar otro software si es necesario.

Software  Descripción  
Git  Este es el primer requisito, para confirmar los cambios en GitLab. Es un software de control de versiones que rastrea el conjunto cambiante de archivos.
JDK Necesita instalar una versión específica de JDK en la máquina a la que se dirige, para construir el archivo jar. Por ejemplo, OpenJDK-8
hormiga apache Esta es una herramienta que ayuda a construir procesos y generar el archivo jar del proyecto mientras se ejecuta este archivo. Contiene más información sobre el proyecto y agrega esta información dentro del jar.

Configuración de ruta: después de una instalación exitosa, debe configurar la ruta de este software instalado en la máquina, si no está configurada. Ejecute el siguiente comando en la máquina.

Variables / Archivo    Sendero 
Git

Establezca la ruta de Git en la máquina Linux, si aún no está configurada. Puede verificar con qué git 

exportar Git = /usr/bin/git   

JAVA

exportar JAVA=/usr/bin/java     

Puede verificar con qué Java

hormiga apache

exportar ANT=/usr/bin/ant      

Puede comprobar con qué hormiga

Permiso  Otorgue permiso para build.xml antes de que se ejecute: chmod -R 777 *
construir.xml Construirá el proyecto y generará el jar basado en la información que contiene 
.gitlab-ci.yml Este archivo debe estar dentro del directorio raíz del proyecto que contiene toda la configuración de CI/CD, incluido el software y la ruta del script. Aquí, puede mencionar cómo debería funcionar este repositorio. Antes de agregar este archivo al directorio raíz, debe verificar si es un archivo yml válido o no.

Configuración de GitLab Runner : siga los pasos a continuación para descargar y configurar GitLab Runner.

1. Descargue GitLab Runner en una máquina Linux 

sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

2. Dale permisos para ejecutar usando el siguiente comando:

sudo chmod +x /usr/local/bin/gitlab-runner

3. Cree un GitLab CI usando el siguiente comando:

sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

4. Instálelo y ejecútelo como un servicio usando el siguiente comando:

sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

5. Inicie GitLab Runner usando el siguiente comando:

sudo gitlab-runner start

6. Detenga GitLab Runner antes de registrar el repositorio usando el siguiente comando:

sudo gitlab-runner stop

7. Una vez que GitLab Runner se haya detenido con éxito, ingrese el siguiente comando en la terminal para el registro del repositorio.

sudo gitlab-runner register

8. Cuando realiza el registro del repositorio con GitLab Runner, debe responder las siguientes preguntas.

  • Ingrese la URL de su instancia de GitLab: puede ser diferente con cada organización y el formato será como http://gitlab.example.com     
  • Ruta: Vaya a Cuenta de GitLab → Seleccione el repositorio en el que desea registrar el corredor → Configuración → CI/CD → Expandir corredor
  • Ingrese el token gitlab-ci para este corredor: será un token único de cada proyecto que necesitará durante el registro y se puede encontrar      
  • Ruta: Vaya a Cuenta de GitLab → Seleccione el repositorio en el que desea registrar el corredor → Configuración → CI/CD → Expandir corredor
  • Ingrese la descripción de gitlab-ci para este corredor: ingrese el nombre del corredor (cualquier nombre), que lo ayudará a recordar qué corredor está ejecutando
  • Ingrese las etiquetas gitlab-ci para este corredor: es opcional si desea iniciar el corredor GitLab cuando una etiqueta específica está disponible en el archivo yml.
  • Ingrese el ejecutor: habrá una lista de varios ejecutores y escriba shell (ya que GitLab Runner ejecutará nuestro sistema)

9. Después de un registro exitoso , inicie GitLab Runner usando el siguiente comando

sudo gitlab-runner start

Para verificar que GitLab Runner haya registrado el repositorio respectivo y se haya iniciado el runner. Vaya a Cuenta de GitLab → Seleccione el repositorio en el que desea registrar el corredor → Configuración → CI/CD → Expandir corredor. Habrá un círculo de color verde disponible y el mensaje que se muestra será Corredores activados para este proyecto.  

Nota: si el círculo es gris, significa que el corredor no ha comenzado y comienza de nuevo.

Comandos de Linux GitLab Runner

Dominio Descripción
registro sudo gitlab-runner Registrar el proyecto con GitLab Runner 
registro sudo gitlab-runner Iniciar el corredor 
detener sudo gitlab-runner detener al corredor
estado de sudo gitlab-runner Para saber el estado de gitlab-runner 
sudo gitlab-runner unregister –name test-runner   Cancele el registro del corredor de un proyecto y reemplace el corredor de prueba con su nombre de corredor y este nombre se puede encontrar dentro del archivo config.toml (donde está disponible su gitlab-runner).
sudo gitlab-runner unregister –url http://gitlab.example.com/ –token t0k3n Eliminar Runner por URL y token 
sudo gitlab-runner unregister –todos los corredores Dar de baja a todos los corredores
reinicio de sudo gitlab-runner Este comando detiene y luego inicia el servicio GitLab Runner
desinstalación de sudo gitlab-runner Este comando detiene y desinstala GitLab Runner para que no se ejecute como un servicio
ejecución de sudo gitlab-runner Para ver una lista de ejecutores disponibles, ejecute
sudo gitlab-runner –ayuda Verifique una lista reciente de comandos ejecutando
sudo gitlab-runner ejecutar –ayuda Puede ver el nombre de la variable de entorno.
sudo gitlab-runner – depuración Para ejecutar un comando en modo de depuración
sudo gitlab-runner exec shell Para ver una lista de todas las opciones disponibles para el ejecutor de shell, ejecute

  .gitlab-ci.yml_shell Executor : A continuación se muestra el contenido de .gitlab-ci.yml en el modo ejecutor de shell. Sin embargo, cámbielo si es necesario según los requisitos.

stages:
 - build
 - execute

build:
 stage: build
 script:  
   - ant -f build.xml
 
 artifacts:
   paths:
   - abc.jar

execute:
 stage: execute
 script:  
  - pwd  
  - cd scripts
  - chmod -R 777 *
  - pwd  
  - ./run.sh

Implementación de Java en Docker Executor : no es necesario instalar ningún software manualmente, todo se tomará del contenedor docker. Sin embargo, puede instalar el software requerido ingresando el nombre en el archivo yml y también puede exportar la ruta. Para ejecutar GitLab runner en el modo ejecutor docker, vaya a Configuración de GitLab Runner (arriba) y seleccione docker en lugar de shell.

.gitlab-ci.yml_ Docker Executor : a continuación se muestra el contenido de .gitlab-ci.yml en el modo ejecutor de docker. Sin embargo, cámbielo si es necesario. 

image: ubuntu:latest

stages:
 - build
 - execute
 
before_script:
 - echo "Before script section"
 - apt-get update && apt-get -y install openjdk-8-jdk  && apt-get -y install ant
 
 
build:
 stage: build
 script:  
   - ant -f build.xml
 
 artifacts:
   paths:
   - abc.jar

execute:
 stage: execute
 script:  
  - pwd  
  - cd scripts
  - chmod -R 777 *
  - pwd  
  - ./runtest.sh

Publicación traducida automáticamente

Artículo escrito por amiransarimy y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *