GitHub CLI Extensionのプロジェクト
GitHub CLI ExtensionのGoプロジェクトを作成する方法については、GitHub CLI Extension を Go 言語で作るを参照。
上記記事通りにgh extension createコマンドでプロジェクトを作成すると、GitHub Actionsのワークフローファイルとして.github/workflows/release.ymlが生成される。
.github/workflows/release.ymlの内容
生成される.github/workflows/release.ymlの内容は以下の通り。
name: release
on:
push:
tags:
- "v*"
permissions:
contents: write
id-token: write
attestations: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: cli/gh-extension-precompile@v2
with:
generate_attestations: true
go_version_file: go.mod
手動でプロジェクトを作成した場合は、このワークフローファイルをリポジトリに追加すればよい。
リリースの実行
ワークフローファイルrelease.ymlでは、タグがv*の形式でプッシュされたときに実行されるように定義されている。
たとえば、v0.1.0というタグを作成してプッシュすると、リリースのワークフローが実行される。
git tag v0.1.0
git push origin v0.1.0
リリースが成功すると、GitHubリポジトリの「Releases」セクションに移動すると、ビルドされた拡張のバイナリファイルが添付される。
GitHubリポジトリでリリースされた拡張のインストール
リリースされた拡張は、GitHub CLIのgh extension installコマンドでインストールできる。
gh extension install [オーナー名]/[リポジトリ名]
[オーナー名]はGitHubリポジトリの所有者のユーザ名または組織名、[リポジトリ名]は拡張のリポジトリ名を指定する。
たとえば、オーナー名がsuerでリポジトリ名がgh-sampleの場合は以下のように実行する。
gh extension install suer/gh-sample
インストールが成功すると、gh extension listコマンドでインストールされた拡張が表示される。
$ gh extension list
NAME REPO VERSION
gh-sample suer/gh-sample v0.1.0
インストールされた拡張のアップグレード
インストールされた拡張を最新バージョンにアップグレードするには、以下のコマンドを実行する。
gh extension upgrade [オーナー名]/[リポジトリ名]
\第一線のプログラマーの行動原理を学べる!/
