【GitHub Actions】AutoHotKeyスクリプトをAhk2ExeでコンパイルするアクションをMarketplaceに公開した話
最近GitHub Actionsを触っていて、このActionをMarketplaceに公開することが出来たので公開までの流れを書いていく。
実現したいこと
US配列のWindowsユーザが使用すると便利な alt-ime-ahk というAutoHotKeyスクリプトをもとに、細かなバグ修正や私が欲しい機能を追加したリポジトリがある。 新しいバージョンをリリースする際にAutoHotKeyが入っていない環境でも動作させたいため、Ahk2Exeというコンパイラを使用して実行可能ファイルにコンパイルする作業を行っていた。
最近、GitHub Actionsでこの作業を自動化したので、ついでにほかの人が使えるよう、GitHub Marketplaceに公開してみたいというわけ。
GitHub Actionsとは
GitHubが提供するCI/CDサービス。
主要なOSに対応しており、定期実行やイベントをトリガーにWorkflowを実行することが可能。
パブリックリポジトリにおける利用は無料で提供されている。
WorkflowとActionの違い
Workflow
定期実行やイベントをトリガーに実行される処理の手順が書かれたもの。
Action
Workflowのステップ内で呼ばれる関数のようなもの。
独自に開発したり、Marketplaceに公開されたものを使用することが可能。
公開までの道のり
まずは公式ドキュメントを読む
Actionの種類を選択
以下の3種類がある。
種類 OS Dockerコンテナ Linux JavaScript Linux、MacOS、Windows 複合実行ステップ Linux、MacOS、Windows
今回は、実現したいことに最適であろう 複合実行ステップ
を選択した。
action.yaml
の作成
今回は、複合実行ステップ
の場合の必須項目のみ紹介する。
- name
Action名 (公開にあたって 条件 がいくつかあり) - description
Actionの短い説明 - runs
- using
composite
を指定 - steps
実行ステップ- run
実行コマンド - shell
コマンドを実行するシェル
- run
- using
その他一部項目は、以下が参考になるかも。
GitHub > nekocodeX/GitHub-Action-Ahk2Exe > action.yaml
GitHub Docs > GitHub Actionsのメタデータ構文
README.md
の作成
以下の項目を意識しながら README.md
を書く。
- Actionが実行する内容の説明
- 必須の入力引数と出力引数
- オプションの入力引数と出力引数
- Actionが使用するシークレット
- Actionが使用する環境変数
- WorkflowにおけるActionの使用例
Marketplaceに公開
action.yaml
がリポジトリに存在すると以下のようなメッセージが表示される。
Draft a release
を押すことで見慣れたRelease作成画面に移動する。
早速、Publish this release to the GitHub Marketplace
を押したいところだが、その前に GitHub Marketplace Developer Agreement
に同意しなければいけない様子。
よく読んでから同意すると Publish this release to the GitHub Marketplace
チェックが入り、Marketplaceに公開するまでのチェック項目が表示される。
幸い全て満たしていたので、Marketplaceにおけるカテゴリといつも通りReleaseの内容を入力して Publish release
する。
これで公開されました!お疲れ様でした🎉
あとがき
Marketplaceに公開するということで、今回初めて README.md
を英語で書いたが、DeepLさんに頼っていることもあって少し不安な部分も…。GitHub Actionsはかなり自由度が高く可能性のあるサービスだと思うので積極的に活用していきたい💪
Discussion