最近、こういったツールを作りました。
せっかく作ったツールのなので、GitHub Actionsの中で実際に使ってみたいな〜と思ったのですが、自作のパッケージを配布する方法がわからなかったので調べました。その時のメモです。
ツール紹介
ツールの中身のことを語っても仕方ないので、軽く説明すると、AWS GlueのデプロイなどをするAPIをラップしたものです。
ディレクトリ構成は以下のようになっています。
gjobctl
├── cmd/gjobctl
│ └── main.go
├── go.mod
├── go.sum
├── cli.go
├── deploy.go
├── create.go
.
.
.
└── RAEDME.md
Terminalで以下のようなコマンドが使えます。
$ gjobctl
Usage: gjobctl <command>
Flags:
-h, --help Show context-sensitive help.
Commands:
list
Get GlueJob List
get <jobname>
Get GlueJob details in Json format
create
Create GlueJob from Json file
update
Update GlueJob from Json file
script-deploy <script-local-path>
Deploy GlueJob script to S3.
run <jobname>
Run GlueJob.
Run "gjobctl <command> --help" for more information on a command.
Github Actionsで使うまでの道
リポジトリにタグを打つ
$ git tag -a v0.0.1 -m 'v0.0.1'
$ git push origin v0.0.1
タグができているのを確認して(手順通り進むとv0.0.1だけのはず、v0.0.3は無視してください)、
タグの編集画面からRelease Tagとしてv0.0.1
を登録してください。
これでGoアプリケーション側はおしまい。
Github Actions側
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v3
with:
go-version: 1.19
- name: Install-tool
run: |
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN
go install github.com/iwashi623/gjobctl/cmd/gjobctl@latest
こんな感じ。どのディレクトリでも追加する自作のパッケージを使用したいなら、PATHを通して置いたほうがいい。
これで、gjobctl
コマンドが使えるようになりました。