Skip to main content

常にいまいち

IssueのトリガーでGithub Actionsを動かしてみる

具体的にはIssueに特定のラベルが付いていたらそれを元にGithub Pagesに記事を追加したい。 試しに このブランチ でテストを行ったがうまく行かなかった。 ブランチ に含まれるworkflowはpushでは起動するがissuesで動かない。

masterじゃないと動かないという制限があるかも? ということで 新規レポジトリ作ってmasterにactionsを登録したら動いた。 https://github.com/ques0942/github-actions-sample/commit/ee6bf81ebec027eda315d135aacd744def3e8ca8/checks?check_suite_id=393358382

こちらのレポジトリでもPRの段階ではissuesからのイベントでは起動されなかった。 やはり何かしら制限がありそう。 トリガーされるイベントが多すぎるので制限されるのもわからないではないが、masterでしかテストできないのはなかなか不便。

結論

この資料に記載があったが、masterかデフォルトブランチに設定がないと起動しない模様。

memo

runnerにインストールされているソフト

こちら

特定のラベルが含まれているか調べるには

https://github.community/t5/GitHub-Actions/Do-something-if-a-particular-label-is-set/td-p/40712#

コンテキストの中身を確認する

以下のようにechoを使うことで中身をダンプできる。

name: pullrequest from issue

on: issues

jobs:
  display:
    runs-on: ubuntu-18.04
    steps:
      - name: display
        run: echo '${{ toJson(github.event) }}'

if節関連

if節の中ではenvは使えない。${VAR}でもenv.VARでも駄目だった。 if節の中では文字列はシングルクォーテーションのみ。ダブルクォーテーションでは駄目。 バックスラッシュで改行することはできない。

env関連

envの中で定義済みの変数を展開することはできないっぽい

envで変数を定義するときに以下のように定義しても展開されない模様。

VAR: 1
VAR2: ${VAR}-2

envを複数定義することもできないのでこれに関しては諦めるしかなさそう。

actionのwithで環境変数を使う

stepsでactionを使用する場合withで引数を渡すが、ここにenvで定義した環境変数を渡したい場合は $VAR とするのではなく、 env.VAR とする必要がある。

git関連

git pushをrun内で実行するとうまく行かなかったのでaction使ったほうが良さそう。

github関連

前述のpush actionも良いが、このaction を使用すると、gitへのcommit及びpull requestの作成をやってくれるのでかなり楽に実現できる。 steps内でファイルの追加、削除、更新してこのactionを実行するとそれらをまとめてcommitしてpull requestを作成してくれる。 ただし変更差分は全てcommitされるので不要なファイルを無視するか削除する必要がある。