#chiroito ’s blog

Java を中心とした趣味の技術について

nektos/actにイベントの情報を渡す

GitHub でリリースするときに、指定したバージョンをワークフロー内で使いたい時にnektos/act ではどうしたら良いか分からなかったので試したメモ。

Webにある記事や GitHub のマニュアルによると、${{ github.event.release.tag_name }} でタグの名前が取得できるらしい。

Webhook のイベントとペイロード - GitHub Docs

しかしながら、どうやってnektos/act へその情報を渡せば良いのかはドキュメントを見ても理解できませんでした。

GitHub - nektos/act: Run your GitHub Actions locally 🚀

test.yml というスモールケースを作って、先ほどの Github のマニュアルとnektos/actのドキュメントを眺めながら調査しました。

name: test

on:
  release:
    types:
      - published

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Deploy Production
        run: |
          export VERSION=`echo ${{ github.event.release.tag_name }} | awk '{print substr($0, 2)}'`
          echo ${VERSION}

その結果、github.event.release.tag_nameevent 以下を要素とした JSON を作ったらうまくいきました。

> cat event.json
{
  "release": {
    "tag_name": "vworkflow_test5"
  }
}

このファイルを使ったactの実行は以下のように -e ファイル名 でできます。

act -W .github/workflows/test.yml -e event.json