¿De dónde obtiene el runner el código para ejecutar?
sobes.tech AI
Respuesta de la IA
El Runner obtiene el código para ejecutar desde el repositorio del sistema de control de versiones, generalmente a través de un protocolo como Git. La URL específica del repositorio y la rama (o etiqueta, commit) se indican en la configuración del pipeline que inicia este runner.
El proceso de obtención puede ser el siguiente:
- El Runner recibe la orden de ejecutar una tarea del orquestador CI/CD (por ejemplo, GitLab CI/CD, GitHub Actions, Jenkins).
- Junto con la orden, se transmite información sobre la tarea, incluyendo el enlace al repositorio, la rama/commit y el contexto de ejecución.
- El Runner realiza una operación de clonación del repositorio (o parte de él) en su espacio de trabajo temporal local.
- Tras una clonación exitosa, el runner cambia a la versión especificada del commit, rama o etiqueta, asegurando trabajar con la versión correcta del código.
Ejemplo de comando de clonación en GitLab CI:
# Clonar el repositorio indicado en la variable CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Entrar en el directorio del proyecto
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Verificar el commit necesario
git checkout "$CI_COMMIT_SHA"
En algunos casos, si hay caché, el runner puede primero verificar si existe una copia local del repositorio y solo realizar git fetch y git checkout para actualizar al estado necesario, en lugar de clonar completamente.
La configuración que define la fuente del código generalmente se especifica en un archivo YAML que describe el pipeline (por ejemplo, .gitlab-ci.yml, .github/workflows/*.yml).