Tengo un proyecto de 11 Gradle Java que reside en Gitlab. Quería introducir gitlab-ci.yml
a la fuerza Gitlab para construir un proyecto y ejecutar pruebas en cada pulsación a una rama remota.
¿Cuál debería ser similar?
Estoy bastante seguro de que una pregunta similar ya se ha pedido, pero no pude encontrarlo, así que aprecio su ayuda.
Gitlab proporciona una descripción oficial del .gitlab-ci.yml
archivo, pero que podría ser un poco largo para empezar a salir de la puerta. Para un proyecto básico, puede utilizar el siguiente como base:
image: gradle:jdk11
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
cache:
paths:
- .gradle/wrapper
- .gradle/caches
package:
stage: build
script:
- ./gradlew assemble
test:
stage: test
script:
- ./gradlew check
Tenga en cuenta que la image
etiqueta se establece en maven:latest
en muchos ejemplos, pero para que Gitlab para compilar el proyecto usando JDK 11, la image
etiqueta debe ajustarse a maven:3-jdk-11
. El GRADLE_USER_HOME
se ajusta a la .gradle
del directorio actual que el guión se lee de asegurar que el medio ambiente Gradle está configurado correctamente antes de iniciar la construcción.
La cache
sección se definen los caminos que Gitlab CI debe buscar los artefactos y las dependencias de caché (que, por una acumulación Gradle, es .gradle/wrapper
y .gradle/cache
). Construye puede tardar mucho tiempo en ejecutarse, ya que cada construcción requiere la descarga de todas las dependencias cada vez que se ejecuta la acumulación; a acelerar este proceso, el almacenamiento en caché puede ser incluido para eliminar la necesidad de descargar repetidamente dependencias. Los detalles para el almacenamiento en caché pueden variar para su proyecto. Ver el oficial de cache
la documentación para obtener más información.
El assemble
y check
pasos sólo tiene que ejecutar gradle assemble
y gradle check
, respectivamente. Mientras que gradle test
sería suficiente en muchos casos (en oposición a gradle check
, el check
paso incluye test
incluyendo también otras medidas de verificación. Para más información sobre la diferencia entre check
y test
, ver diferencia Gradle entre la prueba y de verificación .
Para obtener más información, consulte la siguiente:
- Cómo activar la caché artefacto experto para gitlab ci corredor?
- dependencias de caché en GitLab CI / CD
- GitLab CI / Ejemplos de CD
- Gitlab CI caché dependencia Gradle
- Una muestra de .gitlab-ci.yml para un proyecto Gradle
- gitlab 8.2.1, Cómo utilizar la memoria caché en .gitlab-ci.yml
- Lista de imágenes soportados Gradle
Equivalente ejemplo Maven:
image: maven:3-jdk-11
variables:
MAVEN_CLI_OPTS: "--batch-mode"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
cache:
paths:
- .m2/repository/
- target/
package:
stage: build
script:
- mvn $MAVEN_CLI_OPTS package
test:
stage: test
script:
- mvn $MAVEN_CLI_OPTS test
La --batch-mode
bandera se ejecuta Maven con valores por defecto y no pide al usuario que seleccione ningún defecto. El -Dmaven.repo.local=.m2/repository
configura el repositorio local a la ubicación en el servidor de compilación (Gitlab). que desempeña en la capacidad de almacenamiento en caché de Gitlab. Construye puede tardar mucho tiempo en ejecutarse, ya que cada construcción requiere la descarga de todas las dependencias cada vez que se ejecuta la acumulación; a acelerar este proceso, el almacenamiento en caché puede ser incluido para eliminar la necesidad de descargar repetidamente dependencias. Los detalles para el almacenamiento en caché pueden variar para su proyecto. Ver el oficial de cache
la documentación para obtener más información.
El package
y test
pasos sólo tiene que ejecutar mvn package
y mvn test
, respectivamente (con las opciones Maven descrito anteriormente).