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