GitHub Actions に Install azcopy v1 をリリースした

はじめに

前記事でも書いたが、GitHub Actions を使い始めた。

kheiakiyama.hateblo.jp

GitHub Actions(と Azure Pipelines) は Travis CI などと比べて Action という単位で抽象化できるのがメリットだと考えている。
自分がよく使うスクリプトを毎回書くのは嫌なのでどうにかしたいと考えたところ、オリジナルの Action をリリースできるとわかったのでカッとなって作った。
Action は以下。

github.com

この Action についてはこの記事では触れない。
詳細は上のリンクや GitHub リポジトリを参照のこと。

GitHub Actions の作り方

公式に丁寧なドキュメントが用意されているのでそちらを参照。

help.github.com

今回は「JavaScript アクション」で実装した。

コード自体は TypeScript で書くためのテンプレートリポジトリが公式から提供されているので、それをベースに作成した。

github.com

というか Template という GitHub の機能使ったの初めてだった。便利。

所感

リリースがすごく簡単でよい

GitHub リポジトリ上のリリース機能でチェックをつけるだけでリリースできる。
リリース後もチェックを外すだけで簡単に取り下げることができる。(もちろん既に利用者がいれば影響するわけだが)

GitHub Marketplaceでのアクションの公開 - GitHub ヘルプ

namespace の良し悪し

今回の Action でいえば - uses: kheiakiyama/install-azcopy-action@v1 のように指定する。
これはその Action の GitHub 上のユーザ名 + リポジトリ名である。

そのため npm や gem などパッケージ管理で起きがちな名前取得競争が発生しない。
その代わりにリポジトリ名に "action" をつけるべきか迷うことになった。
yaml を書くユーザ側からすれば "action" は不要なのだが、個人のリポジトリとしては識別できるようにつけておきたい。
書く側のエゴでつけることとした。

Category を選びづらい

Publish するときに以下のような画面から Category を選ぶ。

GitHub Actions publish category

以下の Action 検索画面を見るとわかるが、何かをインストールする Action に当てはまるちょうどいい Category がない。 GitHub Marketplace · Actions to improve your workflow · GitHub

GitHub Actions は WindowsUbuntu, Mac などのほぼバニラな環境からワークフローを組む特性上、何かのツールをインストールすることが多いきがするのだが、それに当てはまる Category がないのは厳しい。
最終的に苦し紛れに "Utilities" を選ぶことになった。

action.yml の branding プレビューが欲しい

branding:
  icon: 'triangle'  
  color: 'blue'

Marketplace 上での見た目を上記のようにメタデータで定義する。
これが残念ながらリリースしてみないとわからない。 以下のように内容ではなくプレビューが出てくると嬉しい。

GitHub Actions publish action.yml

GitHub Actionsのメタデータ構文 - GitHub ヘルプ

さいごに

OSS として公開しているので、問題が起きないように管理していきたい。
バグ報告や要望お待ちしています。

github.com

Effective DevOps ―4本柱による持続可能な組織文化の育て方

Effective DevOps ―4本柱による持続可能な組織文化の育て方