2013年1月19日土曜日

Jenkins Parameterized Trigger プラグイン

Jenkins Parameterized Trigger プラグイン

はじめに

  • Jenkins からパラメータを指定・設定してビルドができるようになる Parameterized Trigger プラグインを試してみました。
  • 具体的には、前のエントリ「Jenkins から Google App Engine アプリのデプロイ」を少し修正し、GAE の情報をパラメータで渡してデプロイする形に変更してみました。

Parameterized Trigger プラグインのインストール

プラグインのインストール

  • Jenkins のメニューから「Jenkins の管理」-「プラグインの管理」を選択
  • 「利用可能」タブから「Jenkins Parameterized Trigger pluguin」をチェックし決定

プロジェクトの設定

プラグインを有効化


  • プロジェクトの設定を選択
  • 「ビルドのパラメータ化」にチェック。パラメータの設定ができるようになります。

パラメータ化する項目の追加


  • GAE のメールアドレス用に「文字列」でパラメータを追加、パスワード用に「パスワード」でパラメータを追加

ビルド(デプロイ)スクリプトの修正

SDK=/usr/local/google_appengine
echo $GAE_PASSWORD | $SDK/appcfg.py --email=$GAE_ACCOUNT --passin update $WORKSPACE
echo $GAE_PASSWORD | $SDK/appcfg.py --email=$GAE_ACCOUNT --passin backends update $WORKSPACE$ git 

ビルド(デプロイ)の実行

パラメータ指定画面の表示

  • ビルドを実行後、パラメータを指定する画面が表示
  • パラメータを指定後、「ビルド」ボタン押下でビルドが実行されます。

2013年1月14日月曜日

Jenkins から Google App Engine アプリのデプロイ

Jenkins から Google App Engine アプリのデプロイ

はじめに

Google App Engine アプリのデプロイを、ローカルにインストールした Jenkins から実行する方法を試してみました。

Jenkins プロジェクトの作成

新規プロジェクトの作成

  • 左側のメニューから「新規ジョブ作成」リンクを押下
  • 「ジョブ名」を入力、「フリースタイル・プロジェクトのビルド」を選択し、「OK」押下

ビルド手順の入力

  • 「ビルド手順の追加」から「シェルの実行」
  • 「シェルスクリプト」に処理内容を入力

入力内容

SDK=/usr/local/google_appengine
EMAIL=xxxxxx@gmail.com
PASS="$JENKINS_HOME/.gae_pass"
cat $PASS | $SDK/appcfg.py --email=$EMAIL --passin update $WORKSPACE
cat $PASS | $SDK/appcfg.py --email=$EMAIL --passin backends update $WORKSPACE$ git 

2013年1月4日金曜日

CloudBees Jenkins for Google App Engine (2)

CloudBees Jenkins for Google App Engine

はじめに

前エントリ「CloudBees Jenkins for Google App Engine (1)」の続きで、Jenkins のプロジェクトを作成、GAE へのデプロイまで試してみました。

Jenkins プロジェクトの作成

新規プロジェクトの作成



  • 左側のメニューから「新規ジョブ作成」リンクを押下
    (ゼロからアプリを作る場合は中央の 1, 2, 3 の easy steps を使うのが良いのかもしれない)

プロジェクトの種別の選択



  • 「ジョブ名」に適当な名前を入力
  • 下のラジオボタンは「フリースタイル・プロジェクトのビルド」を選択

プロジェクトの設定 (1)



  • 特に変更箇所はなし

プロジェクトの設定 (2)



  • 「ソースコード管理システム」として「Git」を選択し、リポジトリの URL を入力
    (前エントリ「CloudBees Jenkins for Google App Engine (1)」で作成したリポジトリの URL を入力)

プロジェクトの設定 (3)



  • 「ビルド・トリガ」で「Build when a change is pushed to CloudBees Forge」が選択されていることを確認
  • 「ビルド」の「ビルド手順の追加」から「Deploy Python Application to Google App Engine」を選択

プロジェクトの設定 (4)



  • 「Python Version」で「2.7.2」を選択
  • 「Application Version」に「1」を入力
  • 「高度な設定...」ボタンを押下

プロジェクトの設定 (5)


  • 「高度な設定...」ボタンを押下して表示される「Update Backends」にチェック
    (GAE アプリで Backends Instance を使用しているため)
  • 「保存」ボタン押下して、設定を保存

Jenkins から Google App Engine へデプロイ

Google App Engine への自動デプロイ


  • ローカルのリポジトリを編集・コミットし、CloudBees へ push すると、Jenkins で自動的に GAE へのデプロイが始まることを確認

2013年1月3日木曜日

CloudBees Jenkins for Google App Engine (1)

CloudBees Jenkins for Google App Engine

はじめに

「CloudBees Jenkins for Google App Engine」は、CloudBees が提供するサービスで、Jenkins から Google App Engine へのデプロイができるらしいです。(まだそこまでは未確認)

今回、まずは Git リポジトリ機能のみ使えるようにしてみました。

Git リポジトリの作成

Google アカウントでサインイン



リポジトリサービスを選択



  • サインイン後、上部のメニューから「Repositories」リンクを選択

もう一回 Google アカウントでサインイン



  • 何で二回目があるのか、よく分からないが再度 Google アカウントでログイン
    Jenkins for GAE と、CloudBees の共通のアカウント?

リポジトリの作成



  • サインイン後のリポジトリ管理画面から「Create new code repository」ボタンを押下し、新しいリポジトリを作成する


  • 「Name」部分にリポジトリ名を入力
  • 「Permission Scheme」部分は「Private (users from your account only)」を選択 (非公開として使用します)
  • 「Repository Type」部分は「Git」を選択

作成した Git リポジトリに接続

SSH 鍵の生成

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/Suna/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/Suna/.ssh/id_rsa.
Your public key has been saved in /Users/Suna/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx Suna@xxxxxx
The key's randomart image is:
+--[ RSA 2048]----+
|  E+.            |
|  o      .       |
|   .    . .      |
|    o .. o       |
|   + = oS .      |
|    * = +  .     |
|   . o * ..      |
|      = +.       |
|     . o..       |
+-----------------+

$ cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc……

Cloudbees に公開鍵を設定



  • リポジトリ管理画面の鍵の設定リンクを押下し、公開鍵をコピー & ペースト

Cloudbees に作成した Git リポジトリのクローン作成

$ git clone ssh://git@git.cloudbees.com/xxxxxx/pluscheckin.git
Cloning into 'pluscheckin'...
Identity added: /Users/Suna/.ssh/id_rsa (/Users/Suna/.ssh/id_rsa)
warning: You appear to have cloned an empty repository.

クローンしたローカルリポジトリにファイルを追加

$ cd pluscheckin
$ git add ……
$ git commit

ローカルリポジトリの内容を Cloudbees に push

$ git push origin master
Counting objects: 39, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (35/35), done.
Writing objects: 100% (39/39), 32.82 KiB, done.
Total 39 (delta 8), reused 0 (delta 0)
To ssh://git@git.cloudbees.com/xxxxxx/pluscheckin.git
 * [new branch]      master -> master