LoginSignup
3
1

More than 1 year has passed since last update.

GitHub Actions workflowについてのススメ

Last updated at Posted at 2022-02-23

概要

GitHubActionsを利用したテストワークフローの構築について社内布教用にまとめてみた

経緯

@ucan-lab さんのハンズオンに参加して個人的に導入はしているがチーム内で技術共有をしてなかったので布教用としてまとめることにしました
なお、今回のworkflowについては以下のハンズオン資料を流用させていただいています。

解説

GitHub リポジトリの [Actions] タブに表示されるワークフローの名前。

name: Laravel Testing
  • on:ワークフローを発火させるトリガーを指定します
  • pull_request: PRが作成されたタイミングをトリガーします
  • branches:特定のブランチに対してのPRに対してだけトリガーします(デフォルトは全てのブランチが対象です)
on:
  pull_request:
    branches:
      - main
  • runs-on: ubuntu-latest: 実行する仮想マシンを指定します(今回はubuntuの最新版)
  • steps:ジョブのステップをグループ化する
  • uses: actions/checkout@v2 : リポジトリをチェックアウトし、ワークフローがアクセス可能にする

jobs:
  laravel-testing:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

- name :GitHubに表示するステップの名前
run:コマンドを実行するようにジョブに指示を出します

steps:
      - name: Docker Version
        run: docker version

run: |:複数コマンド順に実行します

docker-compose exec -T :擬似TTY(疑似端末)への割り当てを無効にする

ttyとは、標準入出力となっている端末デバイス(制御端末、controlling terminal)の名前を表示するUnix系のコマンドである。元来ttyとはteletypewriter(テレタイプライター)のことを指す。

steps:

      - name: OS Version
        # -T 擬似TTY(標準出力の接続先デバイス)への割り当てを無効
        run: |
          docker-compose exec -T app cat /etc/os-release
          docker-compose exec -T app cat /etc/debian_version

全体

.github/workflows/laravel-testing.yml
name: Laravel Testing

on:
  pull_request:
    branches:
      - main

jobs:
  laravel-testing:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Docker Version
        run: docker version

      - name: Build Docker Images
        run: docker-compose build

      - name: Create & Start Docker Containers
        run: docker-compose up -d

      - name: OS Version
        # -T 擬似TTY(標準出力の接続先デバイス)への割り当てを無効
        run: |
          docker-compose exec -T app cat /etc/os-release
          docker-compose exec -T app cat /etc/debian_version

      - name: PHP Version
        run: docker-compose exec -T app php --version

      - name: Composer Version
        run: docker-compose exec -T app composer --version

      - name: Install Dependencies
        run: docker-compose exec -T app composer install

      - name: Laravel Version
        run: docker-compose exec -T app php artisan --version

      - name: Laravel Setting
        run: |
          docker-compose exec -T app cp .env.example .env
          docker-compose exec -T app php artisan key:generate

      - name: Laravel Migrate Testing
        run: docker-compose exec -T app php artisan migrate

      - name: Laravel Rollback Testing
        run: docker-compose exec -T app php artisan migrate:refresh

      - name: Laravel Seeding Testing
        run: docker-compose exec -T app php artisan db:seed

      - name: Laravel PHPUnit Testing
        run: docker-compose exec -T app php artisan test
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1