⏳ CICD se refiere a la integración continua/entrega continua, que es una idea de desarrollo de software propuesta para satisfacer las necesidades de las empresas financieras y de Internet para proyectos de iteración rápida. La idea general es escribir secuencias de comandos automatizadas para que el nuevo código deba pasar algunas verificaciones de reglas antes de que pueda implementarse en línea.
.gitlab-ci.yml
Gitlab es una excelente plataforma para implementar el proceso CICD, configura el proceso CI escribiendo archivos en el directorio raíz del proyecto , principalmente describiendo cómo se compila el proyecto .
1. Etapas
El parámetro de etapas define las etapas por las que pasa el código para pasar por la canalización y lo usan todos los trabajos.
Si las etapas no están definidas en el archivo, las tres etapas de compilación, prueba e implementación se incluyen de manera predeterminada.
stages:
- lint
- test
- build
Lo anterior es una definición del parámetro de etapas. El efecto en gitlab es el siguiente, lo que significa que el lanzamiento debe pasar la inspección de estas tres etapas por separado, por lo que se llama tubería vívidamente .
dos, trabajo
trabajo se puede traducir como "trabajo", que es .gitlab-ci.yml
la unidad básica de un archivo. Su definición básica es:
job_name:
stage: lint
script:
- xxx
- xxxx
other_param: xxx
El nombre del trabajo se declara primero y luego algunos de sus parámetros se declaran internamente. Un parámetro, como se declaró anteriormente stage
, indica que el trabajo está vinculado a lint
la etapa.
job es el elemento de nivel superior en el archivo y contiene al menos una script
instrucción. Si un trabajo no está asociado explícitamente con una etapa, se asocia con test
la etapa de manera predeterminada.
2.1 Otros parámetros en el trabajo
- image especifica la imagen de Docker utilizada;
- before_script define los comandos que se ejecutarán antes del trabajo, como instalar dependencias, imprimir información de depuración y similares;
- Las variables se pueden dividir en variables globales y variables locales a nivel de trabajo de acuerdo con diferentes ubicaciones.Las variables locales sobrescribirán las variables de familia con el mismo nombre dentro del trabajo;
# 全局变量
variables:
DATABASE: xxxxxxxx
# 作业级局部变量
job_name:
variables:
DATABASE: xxxxx
Hay variables especiales relacionadas con la estrategia de git en las variables, por ejemplo
GIT_SUBMODULE_STRATEGY
, cómo importar submódulos en git. El valor predeterminado esnone
, es decir, no se importa ningún submódulo;normal
significa que solo se importará el submódulo superior cuando se extraiga el submódulo;recursive
significa que todos los submódulos se importarán recursivamente.
- reintentar significa que cuando el trabajo falla, se puede volver a ejecutar. Solo hay tres valores: 0, 1 y 2. También hay dos atributos, y , que se pueden configurar
max
debajo de élwhen
, indicando el número máximo de reintentos y cuándo reintentar;