only相当の処理を出来ないか調査した。Actionsを定義したいWorkflowに対する設定はないが、Actionで設定することができるactions/bin/filterを使うhttps://github.com/actions/bin/tree/master/filterサンプルブランチは以下。Actionsの情報になる。BETA版が公開されているGitHub公式のワークフローの自動化サービスだ。Actionsでは、一連の処理のまとまりをWorkflow、各処理はActionと定義している。各Actionはそれぞれで「別の」コンテナを起動して実行される。Workflowの定義は/.github/main.workflowファイルをリポジトリに配置することで設定でき、GitHub上で該当ファイルを開くとGUIエディタからも編集できる。やりたいことCI/CDを設定していると、例えば、masterブランチが更新されたときだけ実行されるデプロイジョブなどを作っていないだろうか。only相当の処理になる。Actionsでも設定できるのか調べた。actions/bin/filterを使う実は公式ですでに用意されているAction用のコンテナがあるのでそれを使えば簡単に実現できた。https://github.com/actions/bin/tree/master/filterGUIエディタからも選ぶことができる。今回はmasterブランチのときのみ後続のechoコマンドのActionを実行する簡単なWorkflowを定義してみた。actions/bin/filterコンテナで実行するActionを定義し、スクリプトとフィルターしたいブランチ名を引数に設定しておく。master"}なお、任意のshellコマンドを実行するActionはGUIエディタからすぐ選べないので、自分でactions/bin/sh@masterを選んで定義する。Workflow全体は以下のようになる。success"]}このWorkflowはリポジトリにpushイベントが発生されるたびに実行される。https://github.com/budougumi0617/actions-filter-branch/actions実行した結果が以下だ。masterブランチのときは最後までWorkflowが実行される。https://github.com/budougumi0617/actions-filter-branch/actions/workflow-runs/MDEwOkNoZWNrU3VpdGU0NzU0NTk5Mw==masterブランチでないときはNeutralというstatusでWorkflowは最後まで実行されなかったので、意図通りブランチ名でWorkflowを制御できた。https://github.com/budougumi0617/actions-filter-branch/actions/workflow-runs/MDEwOkNoZWNrU3VpdGU0NzU1MDMxNg==actions/bin/filterで行なっていることこれだけだと寂しいので、actions/bin/filterの中も確認してみた。リポジトリの中を見るといくつかの簡単なスクリプトが用意されており、READMEに書かれている通りに使えばよい。https://github.com/actions/bin/blob/master/filter/README.mdhttps://github.com/actions/bin/tree/master/filter/binactionbranchlabelreftaguserスクリプトの中身も非常にシンプルで、branchスクリプトは単にrefスクリプトへのエイリアスだ。refスクリプト自身も簡単なcase文が書かれているだけだった。78esac$GITHUB_REFはWorkflow実行毎に設定されている環境変数で、Workflow実行時のブランチ名やタグ名が取得できる。exist.終わりに今回はTwitterで@teitei_kさんと話題に上がったので他の確認よりまず先にやってみた。$GITHUB_REFが取れるところまでは知っていたので、スクリプトを自作しようと思ったがすでに公式で提供済みのものがあった。ActionsではCircleCIなどほどとリッチなYAMLのような設定を書けない。複雑な設定を書き始めると属人化しはじめたりするし、YAML地獄になったりしがちだ。私がGoのシンプルなところが好きなせいなのもあるかもしれないが、このActionとして小さく設定する今の塩梅が好きだ。実行ステータスを表示できるバッジなどが早くほしいのと、publicリポジトリはまだpush通知をトリガーにしかできないので、PRのイベントにも対応されると嬉しい。Goについて書いています。