github Action
best practic
Workflow
push, merge等のgithubへのEventに応じてアクションを実行できる。
イベント一覧
git repositoryの.github/workflows/以下にyamlファイルを配置することで設定できる。
code: .github/workflows/hoge.yaml
name: action-name
jobs:
# jobname
job1:
# Runnerの指定
runs-on: ubuntu-latest
# 実行
steps:
- name: first job first step
run: echo "hoge"
- name: first job second step
run: echo "hoge2"
job2:
runs-on: ubuntu-latest
steps:
- name: second job first step
run: echo "fuga"
- name: second job second step
run: echo "fuga2"
Actionの実行権限はレポジトリごとに設定可能
MarketPlaceにActionが登録されていて再利用できる
ただし外部Actionはセキュリティの担保が怖い
enterpise環境だとrepositoryごとにRunnerを作成しておく必要があるかも
self-hosted runnerの構築
あらかじめ用意されたイメージでの実行ではなくカスタムされたVMでの実行
社内ネットワークのサーバープールを指定できたり
レポジトリごとに構築。
github/USER/REPOSITORY/settings/actions/runners/new
デフォルトではパブリックレポジトリではself hosted runnerは利用許可されていない。
self-hosted runnerの設定画面でAllow public repositoriesで許可しておく。
Github Actionの実行基盤であるRunnerを自分で構築する
actions
再利用できる一連のアクション
action
checkout等のよくあるパターンがこれで対応可能
MarketPlaceで公開されているものが再利用可能
matrix
組み合わせや変数違いで同じジョブを実行させたいとき
便利アクション
yaml check
yamlintでsyntax check
upload artifact
github artifactにデータをあげられる