開発者の環境設定
Omnibus GitLabの開発には、Downloadsページから入手できる既存のパッケージを使用することができます。 これらのパッケージをビルドして使用するためのビルド環境のセットアップ方法については、ビルド環境のセットアップをお読みください。
-
コンテナの設置
分離を提供し、変更のたびにパッケージが再構築されるのを防ぐために、開発にはコンテナを使用するのが好ましいです。 以下の例では、Debian Jessieイメージを持つDebianホスト上でDockerを使用しています。 手順は他のOSでも同様で、コマンドが異なるだけです。
-
公式のDockerインストールドキュメントに従って、お使いのOSにDockerをインストールしてください。
-
Debian Jessie イメージのプル
docker pull debian:jessie
-
シェルプロンプトでのDockerイメージの実行
docker run -it debian:jessie bash
これにより、Dockerがjessieイメージを実行し、Bashプロンプトが表示され、以下の手順が適用されます。
-
-
基本的な必要工具のインストール
Omnibus GitLabの開発に使用する基本ツールは、以下のコマンドでインストールできます。
sudo apt-get install git
-
GitLab CEナイトリーパッケージの入手とインストール
最新のGitLab CE nightlyパッケージ(使用しているOSのもの)をNightly Buildリポジトリから入手し、そのページに記載されている手順でインストールします。 GitLabの設定と起動が完了したら、ホストブラウザから
<ip address of host>
.GitLabにアクセスできるかどうかを確認します。Note
このイシューは#864 で報告されています。 当面の間、パッケージの最新バージョンを調べるには、パッケージのプッシュ日 (リポジトリページのパッケージ名の横にあります) を考慮してください。 -
Omnibus GitLabのソース取得
Omnibus GitLabのソースコードは、GitLab.comのリポジトリから入手してください。
git clone https://gitlab.com/gitlab-org/omnibus-gitlab.git ~/omnibus-gitlab
~/omnibus-gitlab
ディレクトリ内部で開発を行います。 -
クックブックに加えた変更を適用するように GitLab に指示します。
開発中、Cookbookに加えた変更を実行中のGitLabインスタンスに即座に適用する必要があります。 そのため、インストール時に同梱されたCookbookではなく、それらのCookbookを使うようにGitLabに指示する必要があります。 これには、既存のCookbooksディレクトリのバックアップと、変更を加えたディレクトリの場所へのシンボリックリンクが必要です。
sudo mv /opt/gitlab/embedded/cookbooks/gitlab /opt/gitlab/embedded/cookbooks/gitlab.$(date +%s) sudo ln -s ~/omnibus-gitlab/files/gitlab-cookbooks/gitlab /opt/gitlab/embedded/cookbooks/gitlab
-
Dockerコンテナ固有の項目
reconfigure
を実行する前に、runsv を起動する必要があります。/opt/gitlab/embedded/bin/runsvdir-start &
reconfigure
を実行した後、sysctlエラーが発生する可能性があります。よくあるインストールに関する問題のドキュメントに回避策があります。
これで、~/omnibus-gitlab/files/gitlab-cookbooks/gitlab
フォルダに必要な変更を加え、sudo gitlab-ctl reconfigure
を実行して変更を有効にすることができます。
開発環境に対して GitLab QA を実行します。
開発インスタンスに対して GitLab QAテストを実行することができます。
これにより、新しい作業が期待通りに動作し、他の何かを壊していないことを保証します。 QAに独自のテストを追加して、作業内容を検証することもできます。
-
GitLab QA が使用するユーザーアカウントを開発インスタンスに作成します。
そして、開発者のインスタンスにアクセスできるマシンであれば、どこからでもアクセスできます:
-
GitLab EEリポジトリをクローンします。
git clone git@gitlab.com:gitlab-org/gitlab.git
-
qa
ディレクトリに移動します。cd gitlab-ee/qa
-
必要なgemのインストール
bundle install
-
テストの実行
GITLAB_USERNAME=$USERNAME GITLAB_PASSWORD=$PASSWORD bundle exec bin/qa Test::Instance $DEV_INSTANCE_URL
OpenShift GitLab 開発セットアップ
Omnibus GitLab開発セットアップドキュメントを参照してください。