Closed11
GitHub Actionsことはじめ
今までcircleci教だったけど、この度、GitHub Actionsに入信したので内容をざっくりまとめる
GITHUB ACTIONSについて学ぶをざっくり読んでみて
依存ジョブの作成
jobs.<job_id>.needs
で依存ジョブの指定ができる
下記の場合 setup→build→testの順で実行される
jobs:
setup:
runs-on: ubuntu-latest
steps:
- run: ./setup_server.sh
build:
needs: setup
runs-on: ubuntu-latest
steps:
- run: ./build_server.sh
test:
needs: build
runs-on: ubuntu-latest
steps:
- run: ./test_server.sh
needsは配列でもいい
job1→job2→job3
jobs:
job1:
job2:
needs: job1
job3:
needs: [job1, job2]
依存関係のキャッシング
node modulesのchache例
name: Caching with npm
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
# npm キャッシュファイルは Linux/macOS の `~/.npm` に保存される
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install Dependencies
run: npm install
- name: Build
run: npm build
- name: Test
run: npm test
GitHub Actionsのワークフロー構文をざっくり読んでみて
on
トリガになるイベントを指定する
on: push
on: [push, pull_request]
指定できるイベント一覧
スケジュールしたイベント
schedule
手動イベント
workflow_dispatch
repository_dispatch
webhook イベント
check_run
check_suite
create
delete
deployment
deployment_status
fork
gollum
issue_comment
issues
label
milestone
page_build
project
project_card
project_column
public
pull_request
pull_request_review
pull_request_review_comment
pull_request_target
push
registry_package
release
status
Watch
workflow_run
ブランチやtagの指定や、タイミングをtypesで指定できる
on:
# プッシュもしくはPull Requestでワークフローをトリガーする
# ただしメインブランチの場合のみ
push:
branches:
- main
pull_request:
branches:
- main
# page_buildとリリース作成イベントでもトリガーする
page_build:
release:
types: # この設定は上記のpage_buildイベントには影響しない
- created
※branchesとbranches-ignoreは同じworkflow内では書けない
jobs.<job_id>.steps[*].with
アクションで定義されている入力パラメータのmap
jobs:
my_first_job:
steps:
- name: My first step
uses: actions/hello_world@main
with:
first_name: Mona
middle_name: The
last_name: Octocat
INPUT_FIRST_NAME、INPUT_MIDDLE_NAME、INPUT_LAST_NAMEという環境変数としてアクセスできる
フィルタパターンのチートシート
パスやブランチのフィルタしたいときにみるところ
branchesとbrances-ignoreしたくなったらbranchesで!
を使う
on:
pull_request:
branches:
- staging
- '!renovate/**'
types: [opened, synchronize]
その他
コンテキストに何があるかとかはここ見ればバチコロよ
github actionsで使える環境変数
ワークフローコマンド
::
構文使ったらワークフローコマンド実行できる
例
- 出力パラメータの設定
echo "::set-output name=action_fruit::strawberry"
- デバッグメッセージ設定
echo "::debug::Set the Octocat variable"
- 警告メッセージ
echo "::warning file=app.js,line=1,col=5::Missing semicolon"
環境変数の設定
steps:
- name: Set the value
id: step_one
run: |
echo "action_state=yellow" >> $GITHUB_ENV
- name: Use the value
id: step_two
run: |
echo "${{ env.action_state }}" # This will output 'yellow'
github actionsのusesはここから探してる?
このスクラップは2021/09/22にクローズされました