GitHub がCI/CDを始めると聞いて

いやー、衝撃たるや。

とうことで、興奮気味に調べたことや感想のメモ。

先日のツイートBe one of the first to hear the latest on GitHub Actions. といっていたので「え!まだ、GitHub Actionsが進化する!?」とワクワクどきどきはしていたものの、そう来るとは〜〜〜

「これが何なのか」といえば、例えばクランチの記事など。

techcrunch.com

公式のエントリーが出てくるのが迅速なのも嬉しい

github.blog

&& public repoに対しても「Actions / CIが来るぞ」というのも、本当に待ち望んでいた事態でありまして、震える。

関連: GItHub Actionsを理解しよう! - 大好き!にちようび

実際どうなるのか?

残念ながら、まだ自分の環境では使えていないのですが。
例えばbootstrapは初期ローンチ組っぽい。(だってさ、こちらもまたpublic repoだぜ・・!)

なので、「実際に動いている様子」はここから見られる。

bootstrap/test.yml at master · twbs/bootstrap · GitHubで内容を定義しており、実際の結果は例えばこのコミットなど。

これらを比較してみて、「ジョブ(ステップ)が確かにそれぞれ実行・出力されているな」というイメージが掴めるのではないでしょうか。 f:id:o0h:20190809091716p:plain

移行はどうやるの?

諸々の制約はつくものの、マイグレーションプログラムが用意されています。
go製で、バイナリポンで動くのが嬉しい。数年前だったらシェルスクリプトだよねきっと。

help.github.com

これについては実際に手元で動かしてみたけど、たしかに「動いた」。
もともと自分で定義していた.workflowファイルが、なるほどこうなるのか〜と。

f:id:o0h:20190809094740p:plain

詳細な定義ファイルの書き方については、以下に仕様があります。

help.github.com

ざっくりいうと何なのか?

「GitHub CIについて」の公式資料がこちら。

help.github.com

ということで、 公式な説明は Core concepts for continuous integration with GitHub Actions を読んで見るのが近道だと思う。

大まかに言えば「Linux(Ubuntu) / Windows / Mac」のイメージや、あるいはコンテナベース(=GItHub Actions)で多様な処理を実行できる。そして、その処理の発火条件や前提条件(依存)の定義などを、柔軟に行える・・・!といったところか。 jobs.<job_id>.runs-onjobs.<job_id>.steps.usesを参照。

「GitHubのCI」だからこそできるような、例えば発火条件に「変更されたファイル(パス)の指定」があったり、「PRのアサイン状態」があったり。jobs.<job_id>.ifを参照。利用するサービス(DBとか)についても、Dockerのイメージを指定すれば組み込める。jobs.<job_id>.servicesを参照。

といった感じで、「どういった世界観なのか?」であれば「ジョブ > ステップの定義と、その発動条件やマトリックスのルールセットを定義する」という「ザ・CI」なのだけど*1。なのだけど、個人的には、「何をどこまでできるか?」という点で言えば「Workflow syntax for GitHub Actions」を読むだけでもかなりワクワクした!

いろいろな・・・本当に色々なことができちゃうな〜〜、と思う。 もちろん、プロダクションへの投入については、可用性もあることながらジョブの起動や並列実行の制約など「試してみないとなんとも言えない」部分は多い。それにしたって、現時点では最高に使ってみたいオモチャの1つなのは間違いない。。。!

はやく使ってみてぇ〜〜

*1:ActionsはVisualized Editorを目玉にしていた雰囲気もあったけど、どうするんだろうw

やったこと・書いたもの{2019,07}

会社ブログ

tech.connehito.com

tech.connehito.com

社内LT

OSS

github.com これの前段でissueも立ててみていた、cakeにissue立てるの初めて(だと思う) #13392 差分的に、このくらいならPR作っちゃったほうが早いよねーて思いつつ、「ずっと昔からあるクラスで(正直に言って)この違和感のあるコードが残っているのなんで?」っていう疑問があったので、議論があるのかなーという。
結果的にmarkstoryさんから「reasonable」と後押しをもらえたので、じゃあ書くね〜つってコードにした次第。

github.com

packagist.org ↑に書いた記事で紹介したやつ

勉強会・LT

中の人にTwitterでお声がけいただき参加。「Ops」っぽい人が多い空間で、新鮮だった!

その他

GWを振り返る

GWはあれやるぞ!!これやるぞ!!!という意気込みがあったのですが
ここ1ヵ月ほど、かなりのモヤモヤとエネルギー切れを起こしていたので*1
開始3日目くらいで「とにかく何も考えないようにしよう」とシフトしていました。
「やる気が出ない」というより、何かをやろうとすると強いストレスを感じる的なノリだったので、それならさ〜と開き直って布団生命体を全うしようと思ったわけです。

その結果、(布団の上で|デスクの前に座して飲酒をしながら)漫画を読み返したので、成果をまとめます。
読んだ順に*2、各シリーズの1巻を貼ります。


喧嘩稼業(1) (ヤングマガジンコミックス)

喧嘩稼業(1) (ヤングマガジンコミックス)

最高だった

子供はわかってあげない(上) (モーニング KC)

子供はわかってあげない(上) (モーニング KC)

久しぶりに読んだ、こんな話だったかそういえばー!よかった

たいようのマキバオー 1 (ジャンプコミックスDIGITAL)

たいようのマキバオー 1 (ジャンプコミックスDIGITAL)

よかった

たいようのマキバオーW 1 (プレイボーイコミックス)

たいようのマキバオーW 1 (プレイボーイコミックス)

よかった

まんがの作り方(1) (RYU COMICS)

まんがの作り方(1) (RYU COMICS)

よかった

幼女戦記(1) (角川コミックス・エース)

幼女戦記(1) (角川コミックス・エース)

よかった

波よ聞いてくれ(1) (アフタヌーンコミックス)

波よ聞いてくれ(1) (アフタヌーンコミックス)

好き

シスタージェネレーター 沙村広明短編集 (アフタヌーンコミックス)

シスタージェネレーター 沙村広明短編集 (アフタヌーンコミックス)

よかった

ヤサシイワタシ(1) (アフタヌーンコミックス)

ヤサシイワタシ(1) (アフタヌーンコミックス)

痛い・・😢

ヨイコノミライ [完全版](1) (IKKI COMIX)

ヨイコノミライ [完全版](1) (IKKI COMIX)

もっとドロドロしてなかったっけ!って思った

みどりのマキバオー 1 (ジャンプコミックスDIGITAL)

みどりのマキバオー 1 (ジャンプコミックスDIGITAL)

よかった

凪のお暇 1 (A.L.C. DX)

凪のお暇 1 (A.L.C. DX)

よかった

ベアゲルター(1) (シリウスコミックス)

ベアゲルター(1) (シリウスコミックス)

よかった

ザ・ファブル、ONE OUTS、ブルーピリオド、スピリットサークル、フットボールネーション、マージナル・オペレーション辺りは割と直近で再通読していた気がするので、読んでいないです。


それと、漫画ではないですが。

連休序盤に買うとすぐ尽きそうなので、終盤になってから買いました。


しかしまぁ、Kindle コミックやばいですね何も動かなくても無限にコンテンツ飛び込んでくるじゃん。YouTubeもだけど。

寝てるか暇つぶしをしているか、もっというと「寝るために暇つぶしをする」みたいな生き物と化していました。7連無。
FitBitの記録を見たら、平均睡眠時間(週間)が3月末の3倍程度になっていて、面白いなーと。
おかげさまで何も進捗がないですが、残された時間でちょっとだけリハビリをして、また社会に戻っていきたいです。


追記:

そーいえばコブラ結局読んでないなぁ

*1:年末から生活リズム狂っていたり、そのまま突入した2,3月からの4月がかなり手痛かったのが響いた

*2:kindleのライブラリで現時点でソートされている順