LoginSignup
2
1

More than 1 year has passed since last update.

GitHubActionsのCI/CDで静的解析とUTを行う

Posted at

目次

  • 概要
  • 環境
  • 設定内容
  • 実行結果
  • 参考

概要

チームで開発する際は、基本的には開発したものをレビューすると思われます。
本記事は、レビュアーの作業工数削減を目的に、
CI/CDパイプラインに静的解析とテストを組み込み、最低限のチェックを自動で行う内容について記載しております。
※テストは以降UTと略しております。

環境

前回と同様

設定内容

  • Github Actionsの設定
    PRマージ前に静的解析とUTを実行する設定例。
    対象ブランチやどのタイミングでキックするかについても設定可能になります。
pre-merge.yml
name: PR Checks
on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - '*'

jobs:
  tests:
    name: Run tests
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Set up JDK 17
        uses: actions/setup-java@v1
        with:
          java-version: 17
      - name: Make gradlew executable
        run: chmod +x ./gradlew
      - name: Run detekt
        run: ./gradlew detekt
      - name: Run test
        run: ./gradlew test
        env:
          DATABASE_URL: ${{ secrets.DATABASE_URL }}
          DATABASE_USERNAME: ${{ secrets.DATABASE_USERNAME }}
          DATABASE_PASSWORD: ${{ secrets.DATABASE_PASSWORD }}

実行結果

以下のように、レビュー前に必要最低限のチェックを自動で行うことができる。
image.png

なお、静的解析やUTでエラーとなった詳細やそもそもUT等がちゃんと行われているかどうかは、以下のように確認可能です。
image.png

もちろんエラーを解消させると、マージできるようになります。
image.png

※前回投稿したDocker自動起動はプルリクエストでも同様に展開可能です。
image.png

参考

https://docs.github.com/ja/actions
https://qiita.com/vZke/items/868eb9fd5289d2a25660

2
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
2
1