Skip to content
This repository has been archived by the owner on Nov 24, 2023. It is now read-only.

Latest commit

 

History

History
163 lines (140 loc) · 5.17 KB

README.ja.md

File metadata and controls

163 lines (140 loc) · 5.17 KB

Get Diff Action

CI Status codecov CodeFactor License: MIT

Read this in other languages: English, 日本語.

これは git diff を取得するための GitHub Actions です。

Table of Contents

Details

スクリーンショット

  1. Workflow の例
    Example workflow
  2. スキップ
    Skip

使用方法

on: pull_request
name: CI
jobs:
  eslint:
    name: ESLint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: technote-space/get-diff-action@v1
        id: git-diff
        with:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          PREFIX_FILTER: |
            src
            __tests__
          SUFFIX_FILTER: .ts
      - name: Install Package dependencies
        run: yarn install
        if: steps.git-diff.outputs.diff
      - name: Check code style
        # 差分があるソースコードだけチェック
        run: yarn eslint ${{ steps.git-diff.outputs.diff }}
        if: steps.git-diff.outputs.diff

以下のソースコードに差分がない場合、この Workflow はコードのスタイルチェックをスキップします。

  • src/**/*.ts
  • __tests__/**/*.ts

動作

  1. git diff を取得

    git diff "${FROM}"${DOT}"${TO}" '--diff-filter=${DIFF_FILTER}' --name-only

    例:(default)

    DOT: '...'
    DIFF_FILTER: 'AM'

    =>

    git diff "origin/${GITHUB_BASE_REF}"..."${GITHUB_REF#refs/}" '--diff-filter=AM' --name-only

    =>

    .github/workflows/ci.yml
    __tests__/utils/command.test.ts
    package.json
    src/main.ts
    src/utils/command.ts
    yarn.lock
    
  2. PREFIX_FILTERSUFFIX_FILTER オプションによるフィルタ

    例:

    SUFFIX_FILTER: .ts
    PREFIX_FILTER: src/

    =>

    src/main.ts
    src/utils/command.ts
    
  3. ABSOLUTE オプションがtrue(default)の場合に絶対パスに変換

    例:(default)

    /home/runner/work/my-repo-name/my-repo-name/src/main.ts
    /home/runner/work/my-repo-name/my-repo-name/src/utils/command.ts
    
  4. SEPARATOR オプションの値で結合

    例:

    SEPARATOR: ' '

    =>

    /home/runner/work/my-repo-name/my-repo-name/src/main.ts /home/runner/work/my-repo-name/my-repo-name/src/utils/command.ts
    

出力

diff

差分のあるファイルの結果
もし SET_ENV_NAME が設定されている場合、その名前で環境変数が設定されます。
default: SET_ENV_NAME=GIT_DIFF

count

差分のあるファイル数
もし SET_ENV_NAME_COUNT が設定されている場合、その名前で環境変数が設定されます。
default: SET_ENV_NAME_COUNT=

insertions

追加された行数
もし SET_ENV_NAME_INSERTIONS が設定されている場合、その名前で環境変数が設定されます。
default: SET_ENV_NAME_INSERTIONS=

deletions

削除された行数
もし SET_ENV_NAME_DELETIONS が設定されている場合、その名前で環境変数が設定されます。
default: SET_ENV_NAME_DELETIONS=

lines

追加された行数と削除された行数の和
もし SET_ENV_NAME_LINES が設定されている場合、その名前で環境変数が設定されます。
default: SET_ENV_NAME_LINES=

Action イベント詳細

対象イベント

eventName action
pull_request opened, reopened, rerequested, synchronize
pull_request *

もしこれ以外のイベントで呼ばれた場合、結果は空になります。

Author

GitHub (Technote)
Blog