J'ai un projet Gradle Java 11 qui se trouve dans gitlab ce. Je voulais présenter gitlab-ci.yml
à la force gitlab ce pour construire un projet et exécuter des tests sur chaque poussée à une branche à distance.
Que devrait-il ressembler?
Je suis assez sûr qu'une question similaire a déjà été posée, mais je ne pouvais pas le trouver, je vous remercie de votre aide.
Gitlab ce fournit une description officielle du .gitlab-ci.yml
dossier, mais cela pourrait être un peu long pour commencer à sortir de la porte. Pour un projet de base, vous pouvez utiliser les éléments suivants comme 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
Notez que la image
balise est définie sur maven:latest
dans de nombreux exemples, mais pour gitlab ce pour compiler le projet en utilisant 11 JDK, l' image
étiquette doit être réglée sur maven:3-jdk-11
. Le GRADLE_USER_HOME
est réglé sur le .gradle
du répertoire courant que le script est lu de veiller à ce que l'environnement Gradle est correctement configuré avant de commencer la construction.
La cache
section définit les chemins CI gitlab ce doit rechercher les objets mis en cache et les dépendances (qui, pour une construction Gradle, est .gradle/wrapper
et .gradle/cache
). Builds peut prendre beaucoup de temps à exécuter, chaque génération nécessite le téléchargement de toutes les dépendances à chaque fois que la construction est exécutée; à accélérer ce, la mise en cache peut être inclus pour supprimer la nécessité de dépendances à plusieurs reprises de téléchargement. Les détails de la mise en cache peut varier pour votre projet. Voir la responsable cache
documentation pour plus d' informations.
Les assemble
et check
étapes exécutez simplement gradle assemble
et gradle check
respectivement. Alors que gradle test
serait suffisant dans de nombreux cas (par opposition à gradle check
l' check
étape comprend test
tout en incluant d' autres étapes de vérification. Pour plus d' informations sur la différence entre check
et test
, voir la différence entre le test et Gradle contrôle .
Pour plus d'informations, consultez:
- Comment activer la mise en cache d'artefact Maven ci gitlab ce coureur?
- dépendances de cache dans CI gitlab ce / CD
- Exemples CI gitlab ce / CD
- Cache de dépendance gitlab ce CI gradle
- Un échantillon de .gitlab-ci.yml pour un projet gradle
- gitlab ce 8.2.1, Comment utiliser le cache dans .gitlab-ci.yml
- Liste des images Gradle prises en charge
exemple équivalent 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
Le --batch-mode
drapeau court Maven avec des valeurs par défaut et ne demande pas à l'utilisateur de sélectionner les valeurs par défaut. Le -Dmaven.repo.local=.m2/repository
définit le référentiel local à l'emplacement sur le serveur de build (gitlab ce). qui joue dans la capacité de mise en cache des gitlab ce. Builds peut prendre beaucoup de temps à exécuter, chaque génération nécessite le téléchargement de toutes les dépendances à chaque fois que la construction est exécutée; à accélérer ce, la mise en cache peut être inclus pour supprimer la nécessité de dépendances à plusieurs reprises de téléchargement. Les détails de la mise en cache peut varier pour votre projet. Voir la responsable cache
documentation pour plus d' informations.
Les package
et test
étapes exécutez simplement mvn package
et mvn test
respectivement (avec les options Maven décrites ci - dessus).