2014年9月9日開催の"AWS Cloud Storage & DB Day"で使用した講演資料です。 以下のURLからもダウンロードすることができます。 http://iy-h.com/03/aws-storage-day-2014-09-09.pptxRead less
会社で github で管理しているリポジトリがあるのですが、なるべくなら master に直接 push するのは避けたいものです(最近のフローとしては pull request から master にマージされることが多いですよね)。 最初は github 上に git のフックを仕掛けて master に push しようとする要求があればはじくようにしたいと思ってたのですが github ではそういったことは出来ないようなので、サーバー側ではなくローカル側にフックを仕掛けて master に push できないようにしてみました。 デザイナなど黒い画面が苦手な人でも最低限のコマンドで実現出来るように、インストール用のスクリプトを書いて gist に公開 してみました。 フックのインストール ターミナルから以下のコマンドを実行すればOKです。 $ curl -s https://gi
masterへpushできなくする masterブランチ消しちゃった\(^o^)/ みたいな事が往々にしてあるので、 githubのPull Requestみたいに、 手元でマージしなくてもマージ可能な環境では、 developへのpushは禁止にしておくのがいいと思います。 以下のサイトに書かれているようなpre-commitスクリプトを、 そっくりそのままファイル名をpre-pushとすることで、 masterへのpushを禁止することができるようになります。 commitを禁止してても(たぶん)pushで削除はできてしまうので、pushも禁止にしておいた方が確実です(´・_・`) push禁止スクリプトを自動でコピーする ただ、これだけだとコピーするのを忘れた瞬間に終わるので、 clone時に自動でコピーされるようにします。 以下のように.gitconfigに書き、 ~/.git_t
golang製(Go言語)のDBマイグレーションツール、gooseを使ってMySQLのマイグレーションをやってみた。 インストール https://bitbucket.org/liamstask/goose こちらに書かれている通りにインストール。(もちろんGoは事前にインストールしておく) $ go get bitbucket.org/liamstask/goose/cmd/goose helpを見てみる。 $ goose --help goose is a database migration management system for Go projects. Usage: goose [options] <subcommand> [subcommand options] Options: -env="development": which DB environment to use
つい先日、GitHubで管理していたテスト用中央ブランチに、チームメンバーが誤ってgit push --forceしてしまい、 一部の歴史が消失するという事件が起きました。 ぎゃあああ!なんばしよっとね!うっかりでしたじゃ済まんばい! とか思っていたらJenkinsの開発者みたいなスゴい人でもやらかしちゃうみたいです。 Jenkinsの開発者、間違えて一ヶ月前のローカルレポジトリをgit push --forceしてしまう http://cpplover.blogspot.jp/2013/11/jenkinsgit-push-force.html スゴい人でもやらかすんだから、平民の我々もそのうちやらかすに違いない。 緊急バグ修正などで慌てていたら尚更ですね。(というか自分が一番やりかねない) というわけで、何とか仕組みの上で防くことができればと思って仕掛けることにしました。 以下のスクリ
Pull Request Builder Pluginとは? Jenkins Pull Request Builder Plugin(以下ghprb)とは、GitHubの指定したリポジトリにpull requestが作成されると、予め設定しておいたJobを実行し、実行結果をGitHubに通知し、記録してくれるプラグインです。 pull requestを作成すると導入すると、下記の問題を回避できるでしょう。 間違えてコンパイルエラーが起こるコードをpushしてしまった テストが失敗するコードをpushしてしまった そもそも「上記の問題が起きるコードなんか糞だ!pushするんじゃないよ!」という意見はこれまでもありました。しかし、僕らは人間です。間違いを犯すことがあるのが人です。 例えば、pull requestは、コードレビューの場面でとても役に立つ便利なもので、いろいろ指摘があったりしたと
hookを使ってるとリポジトリへpushしてすぐにjenkinsをビルドできて便利だけど、どのブランチにpushしてもhook URLが呼ばれてちょっと不便。 例えばdevelopブランチにpushされた時だけ、hookでdevelopのビルドジョブを実行する、みたいな事がやりたくて調べてみた。 やり方 自前のgitリポジトリだと.git/hooksで特定ブランチへのpush時だけhookする設定が書けるけど、Githubでは同じような事ができないので Jenkins側で受け取ったhookがどのブランチへのpushによるものかを判定してみる。手順は以下のとおり。 hook受取り用ジョブの作成 ビルドジョブとは別でGithubからhookを受け取る専用のジョブを用意しておく。 ジョブはパラメータ付きビルドにしておき、下のように payload という名前でパラメータを受け取れるようにする。デ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く