A A GitHub Actions - user000422/0 GitHub Wiki

概要

汎用的なワークフローエンジン

■料金 パブリックリポジトリの場合は無料。 プライベートリポジトリの場合は従量課金。(月ごとに無料枠有り) コストを抑えたい場合は「Ubuntu」を使用しましょう。

CIは多くの場合、プルリクエストの作成時と更新時に実行します。(書籍より) CIは多くの場合、自動テストと静的解析を組み込みます。(書籍より)

静的解析おすすめは「actionlint」(書籍より)

ワークフローファイル

yaml形式のワークファイルをリポジトリへ追加するだけで実行可能。

配置 .github/workflows ※ここ以外へ配置しても動作しません。

name は適切に設定しましょう。GitHubで閲覧する際に便利です。

# ワークフロー名
name: sample

# イベント
on: push

# デフォルトシェル
# シェルを使用する場合は全てのワークフローに機械的に導入するのをおすすめ(書籍より)
defaults:
  run:
    shell: bash

# ジョブ(複数ジョブ可能)
jobs:
  # 1つ目のジョブ
  hello:
    name: Sample Job
    # ランナー(ジョブの実行環境 ubuntu、windows、macの3種類から選択)
    runs-on: ubuntu-latest

    # タイムアウト(すべてのワークフローに必ず設定すること ※デフォルトが360分のため)
    timeout-minutes: 1

    steps:
      # 2023頃 v4 導入
      - uses: actions/checkout@v4

      - name: Sample step
        run: echo "Hello, world"

on

起動イベントを指定する。 複数イベントの指定も可能。

# git push
on: push

# push はフィルターを使用して細かく制御することができる
on: push
  branches:
    - main

# プルリクエスト
on:
  pull_request:
    # アクティビティタイプ
    types:
      - opened

steps

stepsは複数指定可能。 シェルコマンドの実行とアクションの呼び出しが可能。

steps:
  - name: Sample Step

  # アクション「checkout」: リポジトリからソースの連携が可能になります
  - uses: actions/checkout@v4
  - run: echo "Hello, world"

Actions(アクション)

■GitHub Marketplace アクションを探すことができる。 https://github.com/marketplace

(応用)PHPUnit Laravel

参考になりそうなサイト: https://www.oookey.co.jp/blog/020_programming.html

jobs:
  test:
    name: Sample Job
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.3'
          extensions: oci8, pdo_oci, mbstring

      # 【Laravel】Composerのインストール
      - name: Install Composer
        run: composer install --no-interaction --prefer-dist

      # 【Laravel】envのコピー
      - name: Copy env
        run: cp .env.example .env

      # 【Laravel】キーの作成
      - name: Generate key
        run: php artisan key:generate

CIでは「そのスイートにあるテストは全部回す」が普通です。※GPT5.1