2019年2月2日土曜日

Github Actions を使ってみた

概要

昨年くらいからベータ版のエントリーが始まったのですが自分のところにようやく invite が来たのでさっそく試してみました
こんなメールが来ました

環境

  • Github Actions (2019/02/01 時点)

テスト用のリポジトリ作成

今回は新規でリポジトリを作成します
もちろん既存のものでも問題ありません

Actions タブから workflow を作成する

ではさっそく作成しましょう
今回はリポジトリに push されたらその情報を Slack に通知する action を使って workflow を作成します
Gitub Actions が使えるユーザはタブに「Actions」タブがあります

するとグラフィカルに workflow を作成する画面になります
「Create a new workflow」を選択します

こんな画面になります
すでにリポジトリへの「push」をトリガーにするアクションが 1 つあります
これをそのまま使っていきます

on push のアクションに青い丸があるのでこれを引っ張って下の四角の中に持っていきましょう
すると新しいアクションを追加することができます
右側に選択可能なアクションの一覧が表示されます

検索部分に Slack と入れてみましょう
すると「GitHub Action for Slack」というアクションが出てくるので「Use」を選択します

するとアクションの編集画面になるので編集していきます

まずは args を編集します
これは Slack に通知が来たときのメッセージ部分になります
好きなメッセージを入力しましょう

次に secret を設定します
「Create a new secret」があるので選択すると登録する画面になります
SLACK_WEBHOOK という名前にし Slack の Incomming Webhook URL を入力してください
入力できたら「Add secret」を選択し登録を完了します

あとは Done が一番したにあるので選択します
これで Slack に通知する用のアクションの作成は完了です

あとは「Start commit」を選択し適当なコミットメッセージを入力して「Commit new file」すれば workflow が作成されます

ちなみに workflow は github-actions-test/.github/main.workflow という名前でファイルとして保存されます
内容は Ruby の DSL っぽい形式で保存されます
要するにグラフィカルにワークフローを作成しないで直接ファイルを編集しても OK ということです

workflow "New workflow" {
  on = "push"
  resolves = ["GitHub Action for Slack"]
}

action "GitHub Action for Slack" {
  uses = "Ilshidur/action-slack@5b3a58f5e0ff655ca9c17a22516efdf9d0de36bf"
  args = "A new commit is pushed by anyone"
  secrets = ["SLACK_WEBHOOK"]
}

動作確認

ワークフローのファイルを作成すると push もされます
なのでしばらく待っていれば Slack に通知が来るのを確認できると思います

最後に

超簡単ですが Github Actions を試してみました
いわゆる CI/CD のプラットフォームです
これまでは Circle CI や Travis CI といった外部のプラットフォームを使っていたのですが、それを Github 上だけでできるようになった感じです
まだできることは少ないですが今後できることは拡充されていくと思います
ざっと見た感じだと AWS や Azure、GCP、heroku などには連携できるアクションがすでにあるようです

またアクションは独自で作成することもできます
ここ にアクションを作成するための簡単なドキュメントがあります
Dockerfile を用意してコンテナとして動作するようにすればいいだけなので好きな言語で簡単に書けると思います
最終的には Github Marketplace で公開するといろいろなユーザに使用してもらえます
自作アクションの作成方法も検証できたら紹介したいと思います

参考サイト

0 件のコメント:

コメントを投稿