「みんなの翻訳」は、世界中の文書をみんなで協力して翻訳するサイトです。

みんなの翻訳ロゴ
ブクタブ
翻訳サイト

カテゴリ一覧

このサイトについて 新規登録はこちら お試し翻訳

一覧

2017/07/28

メンテナンス終了のお知らせ

2017/7/25-2017/7/28に実施したメンテナンスは、2017/7/28/14:20に終了いたしました。 ご協力をいただき、ありが…

List

Hnoss

English⇒Japanese

acai

English⇒Japanese

jhoo0509

English⇒Japanese

yoko

English⇒Japanese

ホーム > 翻訳記事

翻訳記事

【GitLab 公式 を訳してみた】GitLab CI で Git submodules を使う

 GitLab Documentation>GitLab Continuous Integration (GitLab CI)>GitLab CI で Git submodules を使う

 注:

  • この機能は、新しいCI job の権限モデルとして、GitLab 8.12にて導入されました。これより古いバージョンのGitLabでは大変使いづらいことになりますので、なるべくアップグレードをしてからお使いください。
  • GitLab 8.12 あるいは、それより上のバージョンをお使いでない方は、submodule機能がソースへのアクセスができるように詳細な設定をしなくてはなりません。(例:『gitlab.com/group/project』への接続にSSHキーを使うように設定するなど。)
  • GitLab 8.12 以上では、CI job がソースにアクセスする際にあなたの名義(権限)を使います。詳しくは、Jobs permissions model を参照してください。
  • GitLabインスタンスでの HTTP(S) Git protocol の使用は、必ず許可しておいてください。



  .gitmodules」ファイルを設定する

  Git submodeulesを管理しているファイルには、「.gitmodules」という名前がついています。おそらくプロジェクトに既にあるものと思われますが、どうしてもなかったら作成しましょう。

  次の例を参考に、ファイルを設定しましょう。

  1. 皆さんのプロジェクトは「https://gitlab.com/secret-group/my-project」設置されているとします。
  2. ソースの確認には、「git@gitlab.com:secret-group/my-project.git」のようなSSHアドレスが使われるものとします。
  3. プロジェクトは「https://gitlab.com/group/project」傘下であり、サブモジュール機能はそこから提供されたものを使うとします。


 GitLab 8.12以上をお使いで、同じGitLabサーバーに存在するサブモジュールの指定する場合には、相対 URLをお使いください。「.gitmodules」ファイルのアップデートに相対 URLを使用します。「.gitmodules」の指定に相対URLを使用することをGitに許可すると、すべてのCI jobをHTTP(S)通信でクローンしたり、すべてのローカルチェックアウトにSSHを使用することが簡単になります。

 「.gitmodules」ファイルは次のように設定してください。

======================
[submodule "project"]
 path = project
 url = ../../group/project.git
======================

  上記の設定は、Gitがソースをクローンする際に、自動的に指定されたURLを利用するようにするものです。
 HTTP(S) や SSH のいずれかを使用している場合でも、Gitは同じチャンネルを使用するようになります。
 この設定をするだけで、CIがjobを実行する時にはHTTP(S)を使用し(GitLab CI はソースのクローンにHTTP⦅S⦆しか使えない関係上)、ローカルクローンにはSSHが使われるようになります。結果的に接続の使い分けが可能になるのです。

  ちなみに、全てのサブモジュールが同一のGitLab サーバーになかった場合、プロトコルにはすべてHTTP(S)が使われます。URLも省略してはなりません。
 以下のように設定します。

======================
[submodule "project-x"]
 path = project-x
 url = https://gitserver.com/group/project-x.git
======================

  「.gitmodules」の設定が正しく完了したら、「.gitlab-ci.yml」の設定にどんどん移っていきましょう。

 

  CI jobsに Git Submodulesを使う

  先ほどの段階で完成したGit Submodulesを、みなさんのCI jobに使っていくには、さらにいくつかの工程を踏まなくてはなりません。

1.まず、同じGitLabサーバーに設置しているsubmodulesは、相対 URLで指定していますね。(念のためご確認を。)
2.次に、gitlab-runner v1.10以降をお使いの方は、「GIT_SUBMODULE_STRATEGY」という変数を定義しておくことができます。ここで当てはまる数値は、「normal」か「recursive」です。
 ここでランナーが、jobを実行する前にサブモジュールをどのように扱うかを指定することができます。

======================
variables:
 GIT_SUBMODULE_STRATEGY: recursive
======================

  GIT_SUBMODULE_STRATEGYにて各設定キーワードが、どのような意味を持つかについては、.gitlab-ci.yml 設定メニューGit Submodule Strategy の章)をご覧ください。

 3.gitlab-runnerが v1.10よりも古い場合は、git submoduleの同期・アップデートを「before_script」に書き込まなくてはいけません。

======================
before_script:
 - git submodule sync --recursive
 - git submodule update --init --recursive
======================

  「--recursive」を(sync/updateに)付けるか否かで、再帰的サブモジュールを使うかどうかを定められます。

  jobを実行する前に、Git submodulesを動作させなくてはなりませんから、それぞれの「sync」「update」の設定を「before_script」に施す必要があります。
起動中のRunnerワークスペースに、GitはサブモジュールURLを設置します。
 URLの「.git/config (あるいは .git/modules/<submodule>/config) 」には、トークンが含まれております。トークンのURLは「.gitmodules」とそこで設定しておいたリモートURLを元に作成されます。

 同じランナーでjobが何度も繰り返される場合は、「.git/config」の内容がキャッシュされます。すると同時にサブモジュールURL(略称なし)もキャッシュとして保持されることになりますので、トークンについても以前のjobから次のjobに引き継がれます。「sync」はサブモジュールURLを完全URLのままアップデートするかどうかを設定します。
 

  Edit this page

PDF
更新日:2018-03-23 21:54:01 Hnoss 0  del.icio.usに追加   はてなブックマークに追加   twitterに投稿   facebookでshare
[ 原文 ] https://docs.gitlab.com/ee/ci/git_submodules.html 原文ページプロジェクト並びにドキュメントファイルは、MIT Licenseのもと公開されています。(URL:https://gitlab.com/gitlab-com/gitlab-docs/blob/master/LICENSE) この記事の文章は、訳者の判断によりCreative Commons BY (version 3.0) を適用するものとします。
翻訳者ページをみる

この記事の翻訳者

Hnoss さんの翻訳記事

【GitLab 公式 を訳してみた】GitLab UX ガイド

GitLab Documentation > GitLab development guides >GitLab UX ガイド  現在、UX documentationの内容を、 design.gitlab.com projectに移行しております。この説明書の更新…2018-05-26 14:48:52

【GitLab 公式 を訳してみた】GitLab UX ガイド>デザイン原則

GitLab Documentation > GitLab development guides > GitLab UX ガイド >デザイン原則  これから説明するデザイン原則は、GitLabの使い勝手が均一されるように制定されました。 …2018-05-26 14:47:51

[翻訳]GitLabハンドブック>エンジニアリング

現在の位置: チームハンドブック 目次 >エンジニアリング   連絡方法 Public Issue Tracker (GitLab CEの場合) ; 不特定多数に公開しては問題が発生するような一部の題材に…2018-05-26 00:10:26

[翻訳]GitLabハンドブック>UX部門

現在の位置: チームハンドブック 目次 >UX部門   UX ガイド  GitLabの見た目は、 UXガイド を基準に構成されている。このガイドが、わが社におけるデザインの原論、表現法、…2018-05-26 00:09:10