2018年6月27日水曜日

git-browse-remote が便利だった

コマンドからカレントブランチの WEB (GitHub など)ページを開く git-browse-remote が便利だったのでご紹介。
これ、某所の推奨 git alias に載っていたのですが、まったく使ってませんでした。
会社変わって、環境が変わったこともあって使ってみたら、非常に便利でした。

参考:

1
2
3
[alias]
 br = browse-remote
 pr = browse-remote --pr

これで、現在のブランチのページやプルリクを見に行ってます。
結構、プルリクページを開くのって手間ですよね。
git pr だけでジャンプできるのでとても楽になりました!

hub コマンドでもできる
同じことが hub コマンドでもできます。
こちらは GitHub をより便利に使うためのツールで、git-browse-remote よりも高機能です。
alias git=hub のように git コマンドを置き換えて使うことができ、通常の git コマンドよりも GitHub を便利に使えるようになります。
ドキュメント

hub コマンドの詳細は省略。
ページ開くのだけなら、git-browse-remote で十分です。

GitHub Enterprise に対応する
.gitconfig で下記のように GitHub Enterprise の URL を設定すれば OK です。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# GitHub 用の設定
[browse-remote "github.com"]
 top = https://{host}/{path}
 ref = https://{host}/{path}/tree/{short_ref}
 rev = https://{host}/{path}/commit/{commit}
 pr = https://{host}/{path}/pull/{short_ref}
 file = "https://{host}/{path}/{file.directory? and :tree or :blob}/{short_rev}/{file}{lines && \"#L%s\" % lines.join(\"-\")}"
 
# GitHub Enterprise 用の設定
[browse-remote "hogehoge.github.jp"]
 top = https://{host}/{path}
 ref = https://{host}/{path}/tree/{short_ref}
 rev = https://{host}/{path}/commit/{commit}
 pr = https://{host}/{path}/pull/{short_ref}
 file = "https://{host}/{path}/{file.directory? and :tree or :blob}/{short_rev}/{file}{lines && \"#L%s\" % lines.join(\"-\")}"

2018年6月19日火曜日

Dockerhub Automated Build が終わったら Slack に通知する

Dockerhub から slack 通知の方法は先人の方々が紹介されています。
これらの方法を採用しても良かったのですが、今回は自分なりに一番簡単な方法で通知するようにしたので、紹介したいと思います。





Zapier を使う

Zapier を使います。
以上!







いやいや紹介してませんがな(`・ω・´)ゞ

Zapier とは?という方は、以前使った時の記事があるので、そちらを参照していただければと思います。
ブログズミ: CIサービスの結果を Twitter に投稿する
簡単にいうと IFTTT みたいなやつです。


設定
レシピは簡単です。
Webhook をトリガーに Slack の send message をアクションに設定します。


メッセージはこんな感じにしました。



New image was pushed to {{38337844__repository__repo_name}}:{{38337844__push_data__tag}}
{{38337844__repository__repo_url}}


最後に、Dockerhub の webhook に Zapier で作成した URL を設定します。


こんな感じに通知が来ますー

今回は以上です。

2018年6月14日木曜日

[Unity] メタァ・・・なんで忘れてしまうん・・・

Unity で .meta ファイルが commit されてなくて困ったってのをよく見かけるので書いた。

メタファイルをコミットしてない、かつ、対象のファイルがコミットされていると commit/push 禁止するフックスクリプト。
#!/bin/sh
err=0
# untracked な .meta ファイルを列挙
for METAFILE in `git clean -n -e meta | cut -f 3 -d " " | grep -o ".*\.meta"`; do
# .meta を含んだパスが METAFILE に入る
FILE=${METAFILE%.meta}
# .meta を除いたパスが FILE に入る
# FILE が存在し、git 管理下の場合警告
if [ -f "$FILE" ]; then
if [ ! -z "`git log -1 --oneline $FILE`" ]; then
# 過去にバージョン管理されたが、現在は管理外の場合がある
if [ -z "`git clean -nd | cut -f 3 -d " " | grep -v .meta | grep -o "$FILE/\{0,1\}$"`" ]; then
echo "$FILE"
err=1
fi
fi
fi
done
if [ $err -ne 0 ]; then
echo
echo .meta ファイルが commit されてません
echo $'\e[1;31mPUSH FAILED.\e[m'
exit 1
fi
exit 0
view raw check-meta.sh hosted with ❤ by GitHub


コミットされているかどうかの判定がびみょいが、まぁ使えるはず

2018年6月12日火曜日

iutest を CMake のパッケージ検索に対応させた

issue の方で提案頂いたので対応しました。
https://github.com/srz-zumix/iutest/issues/40
といっても、私はほとんど何もしてません。
issue に貼っていただいたテキストをコピペした程度です。(yumetodo san ありがとうございますm(__)m)


この記事はもう少し続きますが、今回は(も?)まとまりのない駄文ですので、はい。
きれいにまとまったときにちゃんと読んで頂ければ大丈夫です…








そもそも私、find_package を知りませんでした。
まずはそこからお勉強しました。

参考にしたところ
find_packageの動作 - Qiita
CMakeを使ってみた (7) find_packageとpkg_check_modulesによるライブラリ探索 - wagavulin's blog

依存パッケージを探してくれるもので、見つけたパッケージのインクルードパスとかライブラリパスとかが取れるみたいですね。
で、その探索に使われるのが、FindXXXX.cmake だったり、cmake/xxxx-config.cmake だったり、cmake/XXXXConfig.cmake だったりするわけですね。
(Find の方は非推奨?っぽいですが)
CMake のことにまた少し詳しくなった気がしました。




しかしながら、これを提供する側はどうするのがいいのか?というのがイマイチわからず。
とりあえず、ルートに cmake フォルダを掘って配置しましたが、これでいいのだろうか?
そもそも CMake でサンプル/テストビルドを作るのは用意して深めのディレクトリに置いてましたが、これもルート直下に CMakeLists.txt を置くのが普通なのかな?

圧倒的 CMake 力不足・・・
もうちょっと情報集めて整理したいですね・・・



ここまでお付き合い頂き、ありがとうございます。
なんだか申し訳ない気持ちでいっぱいですが、ここまでお付き合い頂いたついでに・・・
なにか参考になるページや情報をお持ちでしたら、コメント頂けると嬉しいです。

では。m(__)m

2018年6月4日月曜日

Docker で FROM image を --build-arg で指定する方法




Dockerfile を書いていて FROM で指定するベースイメージのバージョンを可変にしたいことってないでしょうか?
これ、ちゃんとできます!
やり方はそのまんま。 ARG を FROM の前に書くだけです!

# FROM の前に ARG が取れる
ARG VERSION=latest
# FROM の指定を引数可変にできる
FROM srzzumix/googletest:${VERSION}
# FROM 前の ARG を参照する場合はデフォルト値指定なしで再定義する
ARG VERSION
RUN echo ${VERSION} | tee image_version

ちなみに、ARG をFROM のあとでも使いたい場合は、FROM 後にもう一度 ARG を書く必要があります。
このとき、デフォルト値を書かないと FROM 前の ARG と同じものが取得できます。

今回はこれだけです。
(これだけですけど、個人的にはテスト環境を用意するのがまた少し楽になって嬉しかったですね)
ではでは。