Cron for GitHub作った

Cron for GitHub gem作った。

TL;DR

場所はどこでもいいけど、たとえばHerokuから、定期的にブランチを切ることで、webhookを起動させて、GitHubエコシステムを強制起動するコマンド及びgem。

使い方

毎日とか毎週とかHeroku Schedulerから定期実行出来る。Heroku Schedulerは10min/1hour/1day しか選べないが、例えばスクリプト側で、起動されたうちの月曜日の場合は、とか書けばいい。Githubが割とローレベルのapiを提供してくれているので、branch作ったりbranch消したりしてるのにgit clone不要。さくさく快適すぎる。

gemの機能は正確にはcreate branch for github, clear branches for github で、cronにするかどうかは、このgemの外側でどうつかうかなんだけど、名前のインパクト重視で、ひとまず cron for github。

appの使いかた面はこっちに書いた。
GitHubとHerokuの組み合わせでCron for GitHub – Saddler – checkstyle to anywhere

背景

ビルドを定期的にできればいいのに、という要望はtravis-ciに昔からあって、実現していない。

Nightly Builds – CircleCIがそれかと思ったら、これは

簡単な話が「外から環境変数を追加した上で、特定のブランチに対するテストを実行させる」機能

CircleCIを使ってbundle updateを定期実行する – Qiita

で、起動時にはcurlで起こしてやる必要があった。curlはどこから叩くんだっていう。

ciを定期的に叩きたい構想はしばらく前から持っていて、その一つの実現がTachikoma.io。でもTachikoma.ioが提供するのは Dependency Update as a Service 一つだけだった。これgithubのwebhook起点にすればいいのでは?という発想に気づいてからさくさくっと出来た。

自画自賛で神gem。更にCron for GitHubにHerokuデプロイボタンを付けたリポジトリも用意。tagsとか消したら死ぬ系のrefは消せないようにしてるけど、考慮漏れてたら追加は必要。

いやーpacksaddleプロダクト便利だなあ。

Tachikoma.iostraregy: none相当のことが完全にできる上、スケジューラーで実行間隔指定、プルリクエストを送らないなどTachikoma.ioやtachikoma gemで指定しづらかったところが解消できる、完全上位互換ですね。

参照

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中