Hello, world

name: Hello, world!

on:
  push:

jobs:
  hello-world:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v3

      - run: echo 'Hello, world!'

runs-on に指定できる値

Workflow syntax for GitHub Actions - GitHub Docs

hosted runner に入っているツール

About GitHub-hosted runners - GitHub Docs

outputs

Defining outputs for jobs - GitHub Docs

name: output

on:
  workflow_dispatch:

jobs:
  output:
    runs-on: ubuntu-22.04
    steps:
      - id: build-foo
        run: echo foo=bar >> $GITHUB_OUTPUT

      - run: echo $VALUE
        env:
          VALUE: ${{ steps.build-foo.outputs.foo }}

run name

name: Change run-name

run-name: Custom run-name (actor=${{ github.actor }}, inputs.foo=${{ inputs.foo }})

on:
  workflow_dispatch:
    inputs:
      foo:
        type: string
        description: foo is my input
        required: false

jobs:
  foo:
    runs-on: ubuntu-22.04
    steps:
      - run: echo Hello, world!

https://github.com/lambdasawa/github-actions-sandbox/actions/runs/4247601960/attempts/1

job summary

name: Job Summary

on:
  workflow_dispatch:

jobs:
  job-foo:
    runs-on: ubuntu-22.04
    steps:
      - run: echo '# foo' >> $GITHUB_STEP_SUMMARY

      - run: echo '# bar' >> $GITHUB_STEP_SUMMARY

  job-bar:
    runs-on: ubuntu-22.04
    steps:
      - run: echo '# hoge' >> $GITHUB_STEP_SUMMARY

      - run: echo '# fuga' >> $GITHUB_STEP_SUMMARY

https://github.com/lambdasawa/github-actions-sandbox/actions/runs/4247552065

祝日ならジョブをキャンセルする

name: Hello, world!

on:
  push:

jobs:
  hello-world:
    runs-on: ubuntu-22.04
    steps:
      - name: Check holiday
        run: curl -fsSL https://holidays-jp.github.io/api/v1/date.json | jq -e --arg date $(TZ=Asia/Tokyo date '+%Y-%m-%d') '.[$ARGS.named.date] == null'

      - run: echo 'Hello, world!'

Slack 通知

ref: slack/README.md at main · integrations/slack

/github subscribe owner/repo workflows

workflow_dispatch

ブラウザ (or gh workflow run コマンド) から手動で実行するためのトリガー。

ワークフローをトリガーするイベント - GitHub Docs

repository_dispatch

GitHub API 経由でワークフローを実行するためのトリガー。

ワークフローをトリガーするイベント - GitHub Docs

workflow_run

あるワークフローの完了をトリガーにして、別のワークフローを実行するためのトリガー。

ワークフローをトリガーするイベント - GitHub Docs

workflow_call

あるワークフローから別のワークフローを呼び出すためのトリガー。

Reusing workflows - GitHub Docs

custom action (composite action)

複数の steps をまとめて再利用可能な step として定義できる。

Creating a composite action - GitHub Docs

その他