Skip to content

Instantly share code, notes, and snippets.

@takahi-i
Last active August 29, 2015 14:13
Show Gist options
  • Save takahi-i/f1a91f27044d7d0696f3 to your computer and use it in GitHub Desktop.
Save takahi-i/f1a91f27044d7d0696f3 to your computer and use it in GitHub Desktop.
Walter GitHub 連携

設定

service:
    type: github
    token: token
    from: user name
   
pipeline:
    - stage_name: command_stage_1
      stage_type: command
      command: echo "hello, world"

処理のながれ

  • walter 起動
  • 前回の実行時間が記載されたファイル(.walter-update?)をオープン
  • 設定ファイル (pipeline.yml) をオープン
  • GitHub service ブロックがある場合(service)
    • ファイル(pipeliine.yml)をクローズする。別のコミットに移動した際にファイルが違っている可能性があるため。
    • レポジトリ名を取得する
    • チェックするコミット取得
      • pull requests: 前回の実行時間以降に追加された、Open の pullreqests, 既存の pullrequest の更新
      • master ブランチの最新 commit: masterブランチでローカルより新しいコミットが origin にある場合には pull して取ってくる
    • 各コミットに対して以下を実行する
      • pr_num と head commit を checkout
      • walter を local モード で起動(注:チェックアウトされた先の pipeline.yml を使用)。ここで GitHub に聞きに行くと無限ループの予感
      • 結果を GitHub state API で登録
      • checkout master で元のブランチに戻る
  • 実行時間を記載してクローズ。
  • Github service ブロックがない場合
    • local で実行して終了。実行時間は記載しない。

注意事項

  • .walter-update にStateを追加するべきか。
    • cron で連続実行中にまだ処理が行われていれば実行しないようにしたい
  • まずは master ブランチきめうちにする。
    • 必要になったら、設定ファイルにベースブランチをしていできるようにする。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment