4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GitHub ActionでJavaScriptのフォーマット漏れをチェックする

Posted at

設定

1. prettierの設定

prettierの導入をします。様々なサイトで案内されているのでそちらを参照して下さい。
例)https://ics.media/entry/17030/
以下のようにpackage.jsonに記述がされると思います。

package.json
{
  "scripts": {
    "format": "prettier --write src"
  },
  "devDependencies": {
    "prettier": "^2.7.1"
  }
}

2. GitHub Actionの設定

Node.jsのversionが14の例です。
PullRequestが生成されたら、こちらのActionが実行されます。

.github/workflows/pre-merge.yml
name: Pre Merge

on:
  pull_request:
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

jobs:
  test:
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        node-version: [14.x]

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v2
        with:
          node-version: ${{ matrix.node-version }}

      - name: Install npm
        run: npm ci

      - name: Format code
        run: npm run format

      # format後にgit addして差分があるかgit diffでチェック
      - name: Check diff exists 
        run: |
          git add -N .
          git diff
          line=`git diff | wc -l`
          if [ $line -gt 0 ]; then
            echo "You need to format before commit"
            git diff
            exit -1
          fi

テスト

セミコロン忘れのPRを作成します。そうすると自動的にGitHub Actionが実行され、フォーマット漏れを検知しています。
Screen Shot 2023-02-01 at 14.51.00.png

その結果、PRはCheck Failedとなります。
Screen Shot 2023-02-01 at 14.51.17.png

最後に

タイトルではJavaScriptと書いていますが、prettierが対応している言語でしたら、もちろんチェック可能です。

以上

4
0
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
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?