CI

JenkinsでSCMにGitを追加して、Bitbucktからクローンする方法

投稿日:2013/09/19 更新日:

JekninsでGitリポジトリを取得するためのプラグインがありますので、そのプラグインをダウンロードして、ついでにBitbucketからチェックアウトしたいと思います。

ちなみに、Bitbucketというのは語弊を恐れずにいうのであればGitHubのようなものです。
GitHubと大きな違いは運用スタイルで、GitHubは無料用途の場合、公開リポジトリしか作成できませんが、Bitbucketは無料で非公開リポジトリの作成が行えます。多分非商用の場合のみかと思いますが・・・。自分の場合、個人用途であっても引きこもりプログラムというのがあって、この場合はBitbucketを使っております。

以外に簡単なので、あんまり気張らずに見ていただければと思います。

まず最初にBitbucketでユーザーを作成しておいてください。
bitbucket

Bitbucket用の秘密鍵・公開鍵を作成

今回JenkinsはLinux上で動かします。
自分はtomcatというユーザーでTomcatを起動し、WARパッケージとして動かしています。
というわけで、tomcatユーザーにBitbucket用の秘密鍵と公開鍵を作成します。

su - tomcat
ssh-keygen

ここでパスフレーズを入力しろって言われるんですけど、パスフレーズは入力しません。そのままエンターを押してください。

.sshというディレクトリの中に、id_rsaとid_rsa.pubという2つのファイルができたと思います。
id_rsaというのは秘密鍵で、id_rsa.pubというのが公開鍵になります。公開鍵は後ほどBitbucketに登録します。

続いて、sshの設定を行います。
.ssh/configというファイルを作成します。既にある人は追加してください。

vim ~/.ssh/config

以下を入力。

Host bitbucket
    Port 22
    Hostname bitbucket.org
    IdentityFile ~/.ssh/id_rsa
    TCPKeepAlive yes
    IdentitiesOnly yes

保存が終わったら、権限を変更しておきます。

chmod 600 ~/.ssh/config 

最後に、./ssh/id_rsa.pubの内容をコピーしておいてください。

続いて、Bitbucket側の作業に移ります。

Bitbucketで公開鍵の登録

ユーザー登録が完了してログインできる状態になっていると思います。

(1)メニューのアカウントの管理からSSHキーというのをクリックします。
bitbucket_menu

(2)公開鍵の登録
鍵の追加をクリックして
addkey01

鍵を登録。
ラベルは後ほど変更可能です。
addkey02

Bitbucket側の作業はこれで完了です。
あと、テスト用にGitのリポジトリを一つ作成しておくとよろしいかと思います。
作成したら、動作確認用にクローン用のアドレスをコピーしておきます。
bitbucket_clone

クローンしてみる

ここで再びLinuxに戻ってクローンしてみます。
先ほど、コピーしたクローンのコマンドを実行してみます。

git clone git@bitbucket.org:${username}/hoge.git

${username}のところはBitbucketのアカウント名です。

クローンできたら完了です。まぁクローンしても何もないと思いますが・・・。

Jenkins用にGit用のプラグインを追加

最後の手順です。

プラグインの管理からGit Pluginというのをインストールします。
gitpluginプラグインを追加

インストールが完了したら、ジョブ作成時にソースコードの管理部分にGitというのが選択できるようになります。
gitinstallsucc
Repository URLの部分に、git@bitbucket.org:${username}/hoge.gitと入力すればクローンできるようになります。

まとめ

今回は空プロジェクトでしたが、実際Javaのプロジェクトの場合は、Antを使ってbuild.xmlを書けばJARファイルやWARファイルなんかを作成できるようになります。
環境さえ作ってしまえば、後は以外になんとかなるというかJenkinsが便利すぎるのでできるだけJenkinsで自動化したくなります。

最近、TomcatへのDeployもJenkinsに移行したので機会があればそちらのやり方もご紹介したいと思います。

-CI
-,

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

Jenkinsでビルド実行時に確認を行う方法

Jenkins便利ですねー。 ビルドボタン一発で処理が実行されますからね。 しかしながら、中には実行が怖いビルドもありますよね・・・。 例えば、本番サーバーで運用しているアプリケーションへのデプロイと …

no image

Jenkinsの管理画面で「URLがUTF-8でデコード・・・」みたいな警告が表示される場合の対応方法

クソ長いタイトルの通りなのですが、Tomcat上で動作している、Jenkinsの管理画面で 「URLがUTF-8でデコードされていません。ジョブ名などにnon-ASCIIな文字を使用する場合は、コンテ …

CircleCIでGradleをキャッシュする

基本的にCIサーバーには何かをキャッシュする仕組みが準備されていると思います。 ビルドにGradleを使った場合JARのダウンロードに非常に時間がかかる場合があるので、是非ともキャッシュしたいです。 …

Jenkins2でpipelineを使ってビルドするやりかた

概要 先日Jenkins2がリリースされました。 今はまだJenkins1系を使っているのですが、Jenkins2でビルド時にpipelineを使えるということで、一部のジョブをJenkins2に移行 …

AnsibleでWordPress環境を構築する

AnsibleでWordPressの動作環境を構築するplaybookを書きました。 Ansibleが2.0系になってからしっかりとつかっていなかったのと、今使っているVPSで稼働しているOSがCen …