gitとProjectLockerを利用してtwitterbotを管理してリリースしました。bot自体はlinode.comで動かしています。
ProjectLocker説明
ProjectLockerはワンストップのバグトラッキングシステムのホスティングサービスです。いわゆるBTS一式+ソース管理。プロジェクトごとにgitかsubversionのリポジトリを選択して使います。githubではなくこちらを選んだ理由はプライベートのリポジトリが無料で持てるから。tracやwikiはあるらしいけど利用してないので知りません。複数ユーザの管理や権限分けも可能。ただそもそも運営がDQNぽいのであんまり使わない方がいいと思います。
すぐやり方を忘れるので手順。gitはローカルリポジトリとconfig周りを設定済み。project locker, twitterはアカウント取得済み。
プロジェクト名を決める
決めるとやる気が出るので。今回は「時逆(tokisaka)」。
ローカルのディレクトリ構成を決める
$ mkdir $HOME/app/tokisaka
$ cd app/tokisaka
$ mkdir lib
$ mkdir spec
$ touch lib/foo.txt
$ touch spec/bar.txt
ローカルのディレクトリ構成の雛形は以上。gitはデフォルトだと(?)空ディレクトリを無視するのでファイルを作った。
ローカルリポジトリの準備
$ git init
$ git add .
$ git commit -m "initial commit"
ローカルリポジトリの準備ができた。
ProjectLocker側の準備
アカウントをとったあとどこからログインするのかいつも分からないので書いておく。ここからログインする。
ProjectLocker User Portal: Login
https://portal.projectlocker.com/
ログインしたら、左ペインの「Account Links」の中の「Add Project」からプロジェクトを追加する。入力するのはプロジェクト名とプロジェクト概要とgit/svn。
gitを選んでプロジェクトを作成完了。
プロジェクト一覧が出てくる。これは左ペインの「Account Links」の中の「List Project」と同じ。作ったプロジェクトの「Name」をクリックする。ここは直感的に。
「Users in Project」に誰もいなくて、「Account Users not Assigned to this Project」に自分がいるのでメールアドレスの隣の「Add To Project」をクリックする。「Users in Project」に自分が入る。
gitのリポジトリの場所が分からなくなったので後で追記する。左ペインの「User Links」から「User Home」を選択すると、プロジェクトごとのリポジトリURLとアカウントが表示される。tokisakaは「git-foobar@free2.projectlocker.com:tokisaka.git」
公開鍵を登録
「User Links」の中の「Manage Public Keys」に自分の公開鍵を登録する。「id_dsa.pub」の中身。
リモートリポジトリを登録
ローカルに戻る。
$ git remote add origin git-foobar@free2.projectlocker.com:tokisaka.git
$ git push
pushするとエラーが出る
To git-foobar@free2.projectlocker.com:tokisaka.git
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to 'git-foobar@free2.projectlocker.com:tokisaka.git'
なので先にpullしてやる
$ git pull git-foobar@free2.projectlocker.com:tokisaka.git
してから
$ git push
するとpushができる。ProjectLocker側でリポジトリを作ったときに「README」ってファイルが自動で生成されるが、それとぶつかるかららしい。
push, pullの時には鍵のパスフレーズを要求されるので入力する。
本番サーバ側(linode.com)からpull
秘密鍵を本番サーバに転送する。ProjectLockerに登録した公開鍵とペアのもの。その鍵を使って認証する。git initとgit pullでファイルを取得。pullするものを選べば反映したいブランチを適応できるんじゃないかな。HEADをガツンと反映するので知らない。
$ git init
$ git pull git-foobar@free2.projectlocker.com:tokisaka.git
パスフレーズを入力するとProjectLockerのリポジトリからpullしてくる。
リリース完了。
http://twitter.com/toki_b
最近のコメント