Implementación de CI/CD en la aplicación .NET usando Shell Executor en GitLab

Shell Executor es un ejecutor muy simple que ayuda a construir la solución localmente en la máquina, donde está instalado GitLab Runner. Sin embargo, también ayuda ejecutar scripts de Bash y Windows PowerShell y Windows Batch está obsoleto. Habrá algunos requisitos y la configuración de la ruta necesaria para configurar GitLab Runner en el modo Shell Executor y comenzar la implementación en él.

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.

Requisitos:

Software

Descripción  

Git             

Estos son los primeros requisitos para confirmar los cambios en GitLab. Es un software de control de versiones que rastrea el conjunto cambiante de archivos.

Corredor de GitLab  

El trabajo de GitLab Runner es recoger y ejecutar el trabajo (cuando ocurre una nueva confirmación).

MSBuild.exe                                         

Descargue MSBuild.exe y guárdelo en su directorio local. Ayuda a compilar el proyecto cuando GitLab Runner realiza el trabajo. Si en una máquina, Visual Studio ya está instalado, no será necesario instalarlo. Se puede encontrar en C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe (búsqueda basada en la versión de Visual Studio)

nuget.exe

Descargue Nuget.exe y guárdelo en el mismo directorio donde está disponible MSBuild.

 Configuración de ruta:

Software/Archivo

Descripción de la ruta 

Git

Después de la instalación exitosa de Git en la máquina. La siguiente ruta debe configurarse para comunicarse con el repositorio de GitLab. Vaya a la variable de entorno del sistema, agregue estos dos con la ruta de la variable de usuario

  • C:\Archivos de programa\Git
  • C:\Archivos de programa\Git\bin
MSBuild.exe    Se necesitará la ruta MSBuild.exe en el archivo Yml, mientras que la configuración con GitLab. Por ejemplo, C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe o donde esté disponible su MSBuild. 
nuget.exe

La ruta de Nuget.exe también será necesaria en el archivo Yml, mientras que la configuración con GitLab. Por ejemplo, C:\Tools\Nuget\nuget.exe o donde esté disponible su Nuget. 

Mstest.exe

Esto es útil para ejecutar los casos de prueba de .Net, en Visual Studio 2019, está disponible en C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\mstest.exe

.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. Descarga GitLab Runner para Windows

2. Después de descargar con éxito, guárdelo en su directorio (por ej.: C:\Tools\GitLab-Runner) y cámbiele el nombre con el siguiente comando

gitlab-runner.exe

3. Abra el símbolo del sistema en el modo de administración, vaya al directorio de GitLab-Runner y verifique su estado usando 

gitlab-runner status

4. Si ya se está ejecutando, deténgalo antes de registrar un repositorio con GitLab Runner 

gitlab-runner.exe stop

5. Una vez que GitLab Runner se haya detenido con éxito, use el siguiente comando para el registro del repositorio

gitlab-runner.exe register

6. 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 la 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 la 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 la 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)

7. Después de un registro exitoso, inicie GitLab Runner 

gitlab-runner start

8. 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.

 Comando de Windows GitLab Runner

Dominio

Descripción 

registro gitlab-runner.exe Registrar el proyecto con GitLab Runner 
inicio de gitlab-runner.exe Iniciar el corredor 
detener gitlab-runner.exe detener al corredor
estado de gitlab-runner.exe Para saber el estado de gitlab-runner 
gitlab-runner unregister –nombre corredor de prueba   Anule el registro de Runner 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.exe).
anular el registro de gitlab-runner –url http://gitlab.example.com/ –token t0k3n Eliminar Runner por URL y token 
anular el registro de gitlab-runner –todos los corredores Dar de baja a todos los corredores
reinicio de gitlab-runner Este comando detiene y luego inicia el servicio GitLab Runner
desinstalación de gitlab-runner Este comando detiene y desinstala GitLab Runner para que no se ejecute como un servicio
ejecutivo de gitlab-runner Para ver una lista de ejecutores disponibles, ejecute
gitlab-runner –ayuda Verifique una lista reciente de comandos ejecutando
ejecución de gitlab-runner –ayuda Puede ver el nombre de la variable de entorno.
gitlab-corredor – depuración Para ejecutar un comando en modo de depuración
Shell ejecutivo de gitlab-runner Para ver una lista de todas las opciones disponibles para el ejecutor de shell, ejecute

.gitlab-ci.yml:   este es un formato de .gitlab-ci.yml y lo cambia según los requisitos 

variables:
 NUGET_PATH: 'C:\Tools\Nuget\nuget.exe'
 MSBUILD_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe'
 MSTEST_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\mstest.exe'
 TEST_FOLDER: '.\test\bin\Release'
 
stages:
 - build
 - test
 - deploy
 
before_script:  
     - '& "$env:NUGET_PATH" restore sourcecode\project.sln'  # sourcecode\project.sln-This path includes project solution where is available and restoring
     - '& "$env:NUGET_PATH" restore test\test.sln'     # This path includes test solution where is available.  and restoring      
         
build_job:
 stage: build
 only:
   - developer #this branch will run on GitLab Runner and can change it.  
 script:  
    - '& "$env:MSBUILD_PATH" sourcecode\project.sln /p:DeployOnBuild=true /p:Configuration=Release  /p:Platform="Any CPU" /P:PublishProfile=FolderProfile.pubxml'  
    - '& "$env:MSBUILD_PATH" test\test.sln /p:DeployOnBuild=true /p:Configuration=Release /p:Platform="Any CPU" /P:PublishProfile=FolderProfile.pubxml'  
 
 artifacts:
   expire_in: 365 days  #artifcats will be stored only 365 days after this it will expire  
   paths:
     - '.\sourcecode\project.sln\bin\Release\Publish\'
     - '.\sourcecode\project.sln\bin\Publish\'
     - '$env:TEST_FOLDER'
     - '.\$env:MSTEST_PATH\*.*'

test_job:
 stage: test
 only:
   - developer #this branch will run on GitLab Runner and can change it.  
 script:
   - .\test\test.bat  #This is bat file, if the test are written in script format  
   
 dependencies:
   - build_job

deploy_job:
 stage: deploy
 only:
   - developer #this branch will run on GitLab Runner and can change it.  
 script:
    - 'xcopy /y /s ".\sourcecode\project.sln\bin\Release\Publish\*.*" "C:\solutionDir"'  #Path where you want to store the solution  
 
     
 dependencies:    #after successfully build, only test stage will run  
   - build_job
   - test_job

Confirmación de código: después de una configuración exitosa, confirme y vea el estado del trabajo en GitLab. Vaya al repositorio de proyectos → Seleccione el menú CI/CD 

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 *