a-sel's blog

株式会社青山セレクトの技術メモ件、日記

GITの運用方法

たんなるsubversionの高速版、流行り、、だと考えていたんですが、良く調べてみると

いろんな使い方があるみたいでした。

当面は、混乱するので単なる履歴管理の集中管理としておいおい、作業箇所がかぶってきたらgithub-flowの方針に切り替えよう。

http://b.pyar.bz/blog/2014/01/22/github-flow/

 

それにしても、git-flow github-flowは別物なのか。。。紛らわしい。。

 

jenkins php 用設定

単にjenkinsにプラグインを入れただけでは全然動かない模様。。

[PHP Error] include_once(phing/tasks/ext/d51PearPkg2Task.php): failed to open stream: そのようなファイルやディレクトリはありません [line 1089 of /usr/share/pear/phing/Phing.php]
[PHP Error] include_once(): Failed opening 'phing/tasks/ext/d51PearPkg2Task.php' for inclusion (include_path='/usr/share/pear/../classes:.:/usr/share/pear:/usr/share/php') [line 1089 of /usr/share/pear/phing/Phing.php]

 

 

http://tech.aainc.co.jp/archives/2706

をもとにプラグインだけ導入

と記事読み返してみると、なんか色々サーバ側にインストールが必要とのこと。

 

ただ、

http://www.lovebug.jp/index.php?Jenkins%2FPHP%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%9D%E3%81%86%E3%81%AA%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B

 

こっちで初めてしまったので、後者をとりあえず実施。

 pear channel-discover pear.docblox-project.org

ここで見つからないとエラーがでるな。。とりあず、シカト。。

 

結果まだ同じエラー

 pear uninstall phing/phing

 pear install --alldeps phing/phing

してみたが、同じだ。。

pear.docblox-project.org

これが問題なのか?!

 

追記

にっちもさっちもいかないので、ソース取得してアナログで配置。。

wget https://github.com/markstory/Phing_d51PearPkg2Task/archive/master.zip

unzip master.zip

cp Phing_d51PearPkg2Task-master/src/phing/tasks/ext/d51PearPkg2Task /usr/share/pear/phing/tasks/ext/ -r

cp Phing_d51PearPkg2Task-master/src/phing/tasks/ext/d51PearPkg2Task.php /usr/share/pear/phing/tasks/ext/ -r

 

とりあえず、エラーは出なくなった。。が本当に問題ないのだろうか。。。

CI概要

とりあえず、CIは初挑戦なので、まずは青写真的に、構成を記述しておきます。

 

開発環境

↓(push)

GITLAB

↓(自動テスト実施)

JENKINS

↓(テスト成功後、検証機にデプロイ)

検証機

 

一番重要なのは、CIを回すことだと思うので、まずは敷居を低くして一般的なjenkinsプラグインで検証

gitlab jenkins apache共存

当初ポートを分けて利用しようと考えていたが、いまいちルータというの設定が煩雑なのでapacheにリバースプロキシにまとめる構成に決定

 

jenkins http://jenkins.hogehoge.a-sel.com/jenkins

gitlab http://gitlab.hogehoge.a-sel.com/

それ以外のアプリhttp://*.hogehoge.a-sel.com/

 

という形式apacheの設定はすごく簡単で、

    ProxyPass /jenkins http://localhost:8082/jenkins

    ProxyPassReverse /jenkins http://localhost:8082/jenkins

    ProxyRequests Off

 

の3行をバーチャルドメインに書くだけ。(意味はいまいち把握してないです。。)

jenkinsとgitlabの共存

jenkinsが8080でgitlabのunicornのポートが競合する。

unicornコンパイルがchefというものでやっていて、いまいち設定が分からなかったので

gitlabの設定は、

/etc/gitlab/gitlab.rb

に一元的に書けるようでは有るのだが指定方法が分からず

jenkins側のポートを変更。

/etc/sysconfig/jenkins

JENKINS_PORT="8082"

 

 

 

jenkinsのGitに関して

jenkinsインストールして、git plugin を入れてもgitのバージョンが古いとエラーで動かないない。

gitをmakeで入れなおした場合、jenkins側のgitの指定を変える必要がある。

jenkinsのシステム設定でgitのパスを指定する。