GitBucket の統計データ表示プラグイン

ドラフト版

ちょっと作ってみている

ACR39-NTTCom on Linux

ちょっと地デジ受信のテストにB-CAS読めるマシンを増やしたくて、ACR39-NTTComを買った。 ところがこいつはそのままではLinuxでは認識してくれなかったのでメモ。

メーカーページ から PC/SC Driver Package をダウンロードして展開、中にあるパッケージから使ってるディストリビューションに合わせたものをインストールする。Debian/EPEL/Fedora/SUSE/Raspbian/Ubuntuとある。RaspbianもあるのでRaspberry Piでも大丈夫。

後は普通にPC/SC関連のパッケージを入れたりする。ただ今回は既に入っていたので、sudo service pcscd restartすればOKだった。

これで地デジカード(直感とは逆に色付きの面を下にすることに注意)をさせばpcsc_scanとかで認識する。

(Jenkins + GitBucket) * GitHub Organization Folder Plugin でウィーン

Jenkins 2 も LTS になってだいぶ経ちましたね。Jenkins 2 の目玉といわれる groovy スクリプトを使った Pipeline ジョブとその周辺のプラグイン類がなかなか面白いです。 今回はその中でも GitHub Organization Folder Plugin に注目してみました。

Pipeline ジョブってナニ?

groovy スクリプトでビルド手順などを記述するものです。従来のように GUI でポチポチするのではなく、 SCM の管理下に Jenkinsfile というファイルを置いておくと、その内容にしたがってビルドやテストなどを 実行してくれるものです。

GitHub Oraganization Folder Plugin ってナニ?

GitHub Organization Folder Plugin (以下GHO プラグイン) は、 GitHub の指定したユーザ/グループ (Organization) のリポジトリを全部チェックして、 Jenkinsfile があるリポジトリを探します。Jenkinsfile があると GHO プラグインが自動的に リポジトリに対応するフォルダーを作成してくれます。 更にそれぞれのリポジトリに対してブランチや PR 単位でジョブを作成してくれます。 グループ (ユーザ) / リポジトリ / ブランチ (PR) という階層構造になります。

Organization Plugin という割りには、ユーザも同じように扱うところがちょっと意外ですね。

それ GitBucket で出来ない?

GitHub にリポジトリが置いてある場合は普通に設定していけば GHO プラグインは使えるのですが、 今回は [GitBucket](https://github.com/gitbucket/gitbucket) で使うことに挑戦してみます。 GitBucket は

A Git platform powered by Scala with easy installation, high extensibility & github API compatibility

と謳っています。API compatible なのだったら GHO プラグインも動いちゃったりするのではないでしょうか。

そう思って、HTTP Proxy を間に入れて通信を確認したりして調査した結果、GitBucket の 4.2.0 では 動きませんでした。そこで、原因を調査して対策を講じた PR を送った結果、4.3.0 以降では条件付きで 動くようになりました。

どうすれば動くの?

GitBucket + Jenkins で GHO プラグインが動かなかった原因は以下の3点でした。

  • API v3 の確認に使う API root エントリポイントが無かった (API のリストを返す API)

  • API の認証に HTTP Basic 認証を使えなかった

  • Jenkins の Git Branch Source Plugin で git リポジトリの URL を決めうちで指定していた

このうち、前の2つについては GitBucket 側の問題なので、PR を送って 4.3.0 にマージされたので、 問題はなくなりました。最後の Jenkins のプラグイン (GHO プラグインがこのプラグインを使っている)で、 Git のリポジトリ URL を http://server/user/repo.git と決めうちにしているところが問題でした。

GitBucket では http://server:port/gitbucket_prefix/git/user/repo.git となります。 Jenkins の Git Branch Source Plugin では、

  • ポートの指定を無視する (HTTP なら80、HTTPS なら443になってしまう)

  • サーバのルートで動いているものとしている (prefix が指定できない) -

GitBucket と Jenkins を Pipeline で強力に連携させる

Jenkins の 2.7.1 が LTS にやってきたことを機に Jenkins 2 について色々と調べてみた。 目玉はやはり Pipeline Plugin の導入であり、Pipeline ジョブの場合、GitHub との連携は GitHub Organization Folder Plugin で行うのがとても便利らしい。 ところがこの GitHub Organization Folder Plugin はそのままでは GitBucket とは 連携できないらしい。そこで、どうして動かないのかを調べて、解決するべく PR 送るので、 補足を兼ねてメモしておく。

続きを読む…

GitbookでPDF出力を試してみる

ちょっと最近 Markdown/asciidoc などからの PDF 作成を調べて回っている。 asciidoctor も調べたんだけど出力の微調整でうまくいかなくて行き詰っている。 というわけで、Ver.3.0.0以降でPDF出力のテーマ設定が可能になったみたいな、 GitbookIO/gitboo を試してみる。

続きを読む…

ジェネレータをNikolaに変えた

なんとなく思うところあってサイトジェネレータを Hugo から Nikola に変えてみた。 Python で書かれていて、ソースにもテンプレートにも馴染みやすいのと、ipynb にも対応しているところがポイントかな。

エンコードしない人にもオススメのChinachuを便利にするたった一行のrecordedCommand

自宅の家電レコと比べたときの Chinachu の弱点は未視聴管理ができないことだと思っていました。 でも、ちょっと考えたら簡単な方法で未視聴管理(もどき)が出来ました。それが以下の recordedCommand に登録するシェルスクリプト(実際には他にも色々やってますけど)

続きを読む…

Airflowのインストールメモ

なんかリクエストがあったようなので、インストールメモを残しておこう。 ついでに環境も残しておいていつでも起動できるようにしておこう。

続きを読む…

Chinachuのサービス化を簡単に書く(Ubuntu/upstart限定)

upstart を使うとサービスの記述が簡単です。chinachu-wui と chinachu-operator の記述をしてみました。

続きを読む…

スケジューラ色々

Chinachuのエンコードジョブのバッチ管理にAzkabanを使っていたのだが、若干不満もあるので他に良いツールがないか調べてみた。 結果、今のところAzkabanが最適だという結論になってしまった。

続きを読む…