どのようなプロジェクトと実行テストを構築するためにGitlabを活性化し.gitlab-ci.ymlファイルをすべきですか?

パシャ:

私はGitlabに常駐GradleのJavaの11のプロジェクトを持っています。私が紹介したいgitlab-ci.ymlプロジェクトをビルドし、リモートブランチに、各プッシュでテストを実行するGitlabを強制します。

それは何のようになりますか?

私はかなり確信して同様の質問が既に求められていることだが、私はそれを見つけることができなかったので、私はあなたの助けに感謝します。

ジャスティン・アルバーノ:

Gitlabは提供し、公式の記述.gitlab-ci.ymlファイルを、それはゲートの出始めるのは少し長いかもしれません。基本的なプロジェクトのために、あなたは基礎として、以下を使用することができます。

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

なお、imageタグがに設定されているmaven:latest多くの例では、しかしGitlabはJDK 11を使用してプロジェクトをコンパイルするためには、imageタグがに設定する必要がありますmaven:3-jdk-11GRADLE_USER_HOME設定されている.gradleスクリプトはGradleの環境が適切にビルドを開始する前に設定されていることを確実にするために読まれることをカレントディレクトリの。

cacheセクションはGitlab CIは、(Gradleのビルドのため、である、キャッシュされたアーティファクトおよび依存関係を捜すべきであることパスを定義する.gradle/wrapper.gradle/cache)。各ビルドは、すべての依存関係にビルドが実行されるたびにダウンロードする必要と、実行に時間がかかる場合がありますビルド。このアップを高速化するために、キャッシュは、繰り返しの依存関係をダウンロードする必要性を取り除くために含めることができます。キャッシングの詳細は、プロジェクトのために異なる場合があります。参照してください公式cacheドキュメントの詳細については、を。

assembleそしてcheck手順は単純に実行gradle assembleし、gradle checkそれぞれ。ながらgradle testとは対照的に(多くの場合に十分であるgradle checkcheckステップを含むtest、他の検証手順を含めて差の詳細については。checkそしてtest、参照試験および検査の間のGradle差を

詳細については、以下を参照してください。


等価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

--batch-modeフラグはデフォルト値でMavenを実行し、すべてのデフォルトを選択するようユーザーに求められません。-Dmaven.repo.local=.m2/repositoryビルドサーバー(Gitlab)上の場所にローカルリポジトリを設定します。これGitlabのキャッシング能力に果たしています。各ビルドは、すべての依存関係にビルドが実行されるたびにダウンロードする必要と、実行に時間がかかる場合がありますビルド。このアップを高速化するために、キャッシュは、繰り返しの依存関係をダウンロードする必要性を取り除くために含めることができます。キャッシングの詳細は、プロジェクトのために異なる場合があります。参照してください公式cacheドキュメントの詳細については、を。

packageそしてtest単に実行ステップmvn packagemvn test(Mavenのオプションは上記と)、それぞれ。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=120174&siteId=1