0
0

More than 1 year has passed since last update.

Goで作った自作のコマンドラインをGitHub Actionsで使用する

Posted at

最近、こういったツールを作りました。
せっかく作ったツールのなので、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

リポジトリのReleasesをポチッと押して、
スクリーンショット 2023-02-03 15.02.30.png

タグができているのを確認して(手順通り進むとv0.0.1だけのはず、v0.0.3は無視してください)、
スクリーンショット 2023-02-03 15.02.52.png

タグの編集画面から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コマンドが使えるようになりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0