mainブランチにpushされたときに実行

on:
  push:
    branches:
      - main

Releaseが作成されたときに実行

on:
  release:
    types:
      - created

三項演算子的なやつ

  • ${{ env.VARIABLE }}の形式
    • ${{ condition && 'true_value' || 'false_value' }}
    • ${{ github.event.release.tag_name != '' && github.event.release.tag_name || 'latest' }}
    • 注意: true_valueがboolean的にfalseと解釈される値(空文字列)であってはならない。その場合、true_valuefalse_valueを交換してconditionを反転させる。
    • 文字列が空文字列の場合は空文字列、そうでなければ加工した文字列を変数に格納する、という方法で文字列を少しずつ加工していくと複雑な文字列が作りやすい

文字列の結合

  • フォーマット関数を使う
    • :区切りで結合: ${{ format('{0}:{1}', env.VARIABLE_A, env.VARIABLE_B) }}

便利なAction

  • 大抵の場合、READMEに用例が載っているのでコピペして使う
    • 新しい機能、細かい機能、細かい挙動は載っていなかったりする。そのときはコードを読む
  • Dockerイメージのビルド・プッシュ: https://github.com/docker/build-push-action
    • Docker Hubにpushする場合、アカウントを作成し、アクセストークンを取得しておく(無料プランでは1つしか作成できないので注意)
    • GitHub Pagesの公開: https://github.com/peaceiris/actions-gh-pages
      • 同一リポジトリにpushする場合、トークンなどを特別に設定する必要はない(何もしなくても、自動でgithub_tokenという変数にトークンが格納されている)
      • 別リポジトリにpushする場合、Personal Access Tokenはリポジトリのスコープを切れないので、SSH鍵を生成してDeploy keysに登録するのがおすすめ