Configuring Detekt with GitHub Actions for Kotlin Projects

GitHub Actions is a powerful platform for automating your software development workflows. If you’re working on a Kotlin project and want to ensure code quality through static code analysis, integrating Detekt into your GitHub Actions workflow is a great idea. Detekt is a sophisticated static analysis tool specifically designed for Kotlin codebases. In this blog post, we’ll walk you through the steps to set up and configure Detekt as part of your GitHub Actions pipeline for Kotlin projects.

Prerequisites

Before diving into GitHub Actions configuration, make sure you have the following:

  1. A Kotlin project hosted on GitHub.

Step 1: Create a Detekt Configuration

To set up Detekt, you need a detekt.yml configuration file in your project. This file defines the rules and settings for code analysis. You can create it at the root of your project or in a configuration folder. Here’s a minimal example of a detekt.yml file:

build:
  maxIssues: 10
  excludeCorrectable: true
  weights:
     complexity: 1
     LongParameterList: 1
     style: 1
     comments: 1

You can extend this file with more rules and configurations according to your project’s needs. As done here Detekt setup

Step 2: GitHub Actions Workflow Configuration

In your GitHub repository, create a .github/workflows directory if it doesn’t already exist. Inside this directory, create a YAML file (e.g., detekt.yml) for your Detekt workflow.

Here’s a basic configuration example:

name: Detekt
on:
  pull_request:

jobs:
  detekt:
    runs-on: ubuntu-latest

    steps:
      # https://github.com/marketplace/actions/checkout
      - uses: actions/checkout@v3

      # https://github.com/marketplace/actions/run-detekt-with-reviewdog
      - name: Run detekt with reviewdog
        uses: alaegin/Detekt-Action@v1.22.0-RC3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          detekt_config: config/detekt/detekt.yml
          reporter: github-pr-review
          fail_on_error: false

Step 3: Workflow Execution

When you push changes to your Kotlin project, the Detekt GitHub Actions workflow will automatically trigger. It checks out the code, sets up the required Java version, and runs Detekt using Gradle.

If Detekt identifies any code issues based on your detekt.yml configuration, it will report them in the workflow’s logs. If there are no issues, the workflow will complete successfully.

Conclusion

Integrating Detekt with GitHub Actions allows you to automate the process of code quality analysis for your Kotlin projects. By setting up this workflow, you can maintain a high level of code quality and ensure that your Kotlin codebase adheres to your defined coding standards.

Keep in mind that you can further customize your GitHub Actions workflow to send notifications or take specific actions when issues are detected. With this setup, you can streamline the development and code review process and catch code quality issues early. Happy coding!

Related Post