GitHub Actions超入門

>100 Views

October 20, 24

スライド概要

2024/10/20に「CI/CD・自動化勉強会 in 神戸」で発表したスライドです
https://kansai-web-app-dev.connpass.com/event/332368/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

【PHPer向け】 GitHub Actions超入門 2024/10/20 CI/CD・自動化勉強会 in 神戸

2.

自己紹介 ● 荒巻拓哉 / takaram ○ ○ X: @takaram71 GitHub: @takaram ● 1994年生まれ 社会人6年目 ● 大阪でSaaSを作ってるPHPerです

3.

https://github.co.jp/features/actions

4.

GitHub Actions ● GitHubが提供するワークフロー自動化ツール ○ ○ ○ ○ ● ビルド テスト デプロイ その他だいたい何でも パブリックリポジトリなら無料 ○ プライベートリポジトリも無料枠あり

5.
[beta]
name: Sample workflow
on:
pull_request:

起動タイミングを指定
● Pull Request作成、更新
● git push
● 他ワークフローから呼び出し
● Issue作成、コメント
● 手動実行
● 定時実行

jobs:
sample-job:
︙
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Get a random value
id: random
run: echo "val=$RANDOM" > "$GITHUB_OUTPUT"
- name: Print the value
run: echo "${{ steps.random.outputs.val }}"

6.
[beta]
name: Sample workflow
on:
pull_request:

実行するマシン・ OSを指定
●
●
●
●

Ubuntu
Windows
MacOS
自分で用意したマシン

jobs:
sample-job:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Get a random value
id: random
run: echo "val=$RANDOM" > "$GITHUB_OUTPUT"
- name: Print the value
run: echo "${{ steps.random.outputs.val }}"

7.
[beta]
name: Sample workflow
on:
pull_request:

実行ステップ
●
●

シェルコマンド
外部アクション
○ GitHub公式 (actions/…)
○ 3rd party

jobs:
sample-job:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Get a random value
id: random
run: echo "val=$RANDOM" > "$GITHUB_OUTPUT"
- name: Print the value
run: echo "${{ steps.random.outputs.val }}"

8.
[beta]
name: Sample workflow
on:
pull_request:
各ステップは同じマシンの別プロセスで実
行

jobs:
sample-job:
● 変数は引き継げない
● ファイルは引き継げる
runs-on: ubuntu-latest
● $GITHUB_OUTPUT に出力したデー
steps:
タは引き継げる
- name: Checkout code
uses: actions/checkout@v4
- name: Get a random value
id: random
run: echo "val=$RANDOM" > "$GITHUB_OUTPUT"
- name: Print the value
run: echo "${{ steps.random.outputs.val }}"

9.

GitHub ActionsでPHPを使う

10.

Step1: PHPをインストール shivammathur/setup-php を使う steps: - uses: shivammathur/setup-php@v2 with: php-version: '8.3' extension: swoole tools: php-cs-fixer, phpunit

11.

Step2: composerパッケージをインストール ramsey/composer-install を使う ● ● キャッシュをいい感じに効かせてcomposer installしてくれる composerコマンドはsetup-phpがインストールしてくれてる

12.

Step3: 各種ツールを実行 ● ● ● コマンドを叩くだけ ○ vendor/bin/phpunit ○ composer lint 終了ステータス != 0 ならジョブ失敗と判定される エラー内容をPull Requestのコメントに反映とかすると◎ ○ https://speakerdeck.com/o0h/phperkaigi-2022-cs2pr ○ https://zenn.dev/peraichi_blog/articles/01fy360dgteynbfv5tj3q6smv5

13.

番外編: PHPをインストールせずに使う GitHubが用意しているUbuntuのイメージにはPHPがインストール済み シェルスクリプトの代わりに使う程度ならsetup-phpなしでもOK OS PHP ubuntu-20.04 7.4 ubuntu-22.04 8.1 ubuntu-24.04 8.3

14.
[beta]
番外編: PHPをインストールせずに使う
steps:
- name: Do something
shell: php {0}
run: |
<?php
echo "hoge", PHP_EOL;
file_put_contents(getenv('GITHUB_OUTPUT'), 'result=fuga');