2017年3月28日火曜日

[自動化] ニコニコ静画で削除されたクリップを通知

クリップしたものの削除されてしまった投稿は、クリップから削除するようにしているが、全クリップ・全ページを目視するのは面倒なので、自動化しました。

環境は Semaphore + Python + BeautifulSoup で、ソースコードはこちらです。
https://github.com/srz-zumix/niconico-seiga

Semaphore では定期実行が可能なので、こちらを利用しました。
毎日チェックして削除された投稿があるとメール通知が飛んできます。


自動削除までやったらもっと楽になりますが、
これでも、どのクリップのどのページの投稿が消えたかすぐわかるので、随分楽になります。
自動化素晴らしい!
今回は以上です。では。

2017年3月21日火曜日

[CI] Semaphore 始めました

Semaphore は、既に2016年の3月から使っていたのですが、ブログにしてませんでした。

(いつのまにか変なおっさんが・・・)

ブログズミ: 無料で使える CI サービス比較」などで紹介したこともありますが、その当時はまだ使ってませんでした。
現在は iutest に対して clang analysis (scan-build) を行う CI として利用しています。
また、定期実行ができ Bitbucket 連携、private も Free プラン内で利用可能な点から他のことでも便利に使わせてもらっています。
今回はサインアップから概要程度の内容ですが、その辺の話もそのうち紹介したいと思ってます。

Semaphore
これまでに様々な CI サービスを紹介してきましたが、
Semaphore は Circle CI と同等の速さ(Travis や Codesihp よりは速い)と並列実行、シンプルが売りらしいです。
(シンプルだとは思ってるけど、速さとかは気にしたことないので実感ないなぁ)
個人的に便利だと思っているのは前述した、定期実行と Free プランで private リポジトリも扱える点です。


Pricing
さて、その Pricing ですが、基本的には有料です。
ただし、OSS であれば Free (2並列まで) で使えます(よくあるパターンですね)。また、Private リポジトリでも 100 job/月 までなら Free で使えます。

アカウント作成~プロジェクト作成
Semaphore は他の CI サービスと違い、Github などの外部アカウントでのサインアップがありません。
トップページの右サイドのところから、アカウント名、メールアドレス、パスワードを入力して、「Create Free Account」をクリックします。



入力したメールアドレスにメールが送られてくるので、
そちらのリンクを開いたら登録完了です。




つづいて、プロジェクトを作成していきます。
最初に Github か Bitbucket かを聞かれるので、選択してください。
初回はアカウント連携をする必要があると思いますので、適宜対応してください。


次にリポジトリを選択。


ブランチを選択。


リポジトリの解析が始まるので終わるまで待ちます。


解析が終わるとプロジェクトの作成が完了です。
あとは、何をさせるかを設定していきましょう。


設定に関しては特に説明するようなこともないので、省かせて頂きます。

最後に
Semaphore はシンプルに使えていいなぁーって感じくらいで、今回の紹介ではあんまり良さは伝わらないんじゃないかなと思います。
ただ、冒頭でも書いたとおり、Bitbucket + private が無料プランでデキルのが一番のメリットではないかと思います。
このへんも紹介したいところですが、まだまだ作業中な状態なので、もうちょっとお待ちください。定期実行の活用例は近いうちに紹介できると思います。

では。今回は以上です。









2017年3月13日月曜日

[MSBuild] コード分析警告をエラーとする

Visual Studio コード分析機能については省略。
こちらの機能が無効な状態で SCM 管理されている場合、MSBuild で /p:RunCodeAnalysis=true /p:EnablePREfast=true をつけてビルドするとコード分析が有効になります。
Jenkins でこれを実行して、警告集計している場合は、警告プラグインの設定でジョブを失敗にしたり、不安定にしたりできるので問題ないのですが、CI サービスを使っていると Warning は成功となってしまいます。(exit code 0)
実際、自作 C++ テスティングフレームワークの iutestAppVeyor でコード分析させてましたが、ずーーーっと警告を無視してました…





これを解決する方法はとても簡単です。
MSBuild のコマンドラインオプションに /p:CodeAnalysisTreatWarningsAsErrors=true を追加してください。これで、コード分析警告をエラーとして扱うようになります。



今回は以上です。