Quel devrait être le fichier .gitlab-ci.yml qui active gitlab ce pour construire un projet et effectuer des tests?

Pacha:

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.

Justin Albano:

Gitlab ce fournit une description officielle du .gitlab-ci.ymldossier, 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 imagebalise est définie sur maven:latestdans 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_HOMEest réglé sur le .gradledu répertoire courant que le script est lu de veiller à ce que l'environnement Gradle est correctement configuré avant de commencer la construction.

La cachesection 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/wrapperet .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 cachedocumentation pour plus d' informations.

Les assembleet checkétapes exécutez simplement gradle assembleet gradle checkrespectivement. Alors que gradle testserait suffisant dans de nombreux cas (par opposition à gradle checkl' checkétape comprend testtout en incluant d' autres étapes de vérification. Pour plus d' informations sur la différence entre checket test, voir la différence entre le test et Gradle contrôle .

Pour plus d'informations, consultez:


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-modedrapeau 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/repositorydé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 cachedocumentation pour plus d' informations.

Les packageet testétapes exécutez simplement mvn packageet mvn testrespectivement (avec les options Maven décrites ci - dessus).

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=120176&siteId=1
conseillé
Classement