Automatic Elixir code reviews with Credo, GitHub Workflows, and Reviewdog

Some time ago GitHub announced Actions (still in beta, but with public access) that is like built-in CI service with great integration into rest of GitHub. This allows developers to define their own actions to be reused by others and publish them on Marketplace.

So I created new action that allows to run automatic Credo reviews by utilising great Reviewdog tool.

Usage is pretty simple. If you have Workflows enabled you just create new file named .github/workflows/lint.yml that contains:

name: Lints CI

on: [pull_request]

jobs:
  credo:
    runs-on: ubuntu-latest
    container:
      image: elixir:1.9.1-slim
    steps:
    - uses: actions/checkout@v1
    - name: Install Dependencies
      run: |
        mix local.rebar --force
        mix local.hex --force
        mix deps.get
    - name: Run Credo
      uses: hauleth/reviewdog-action-credo@v1
      with:
        github_token: ${{ secrets.github_token }}

And as the result you will get report with style violations.

10 Likes

Ooo very nice!

Also crated one for Erlang code and Elvis linter.

I have created GH Organisation to group all repositories that are meant for operations that manage BEAM projects.

4 Likes

Do this comment on GH Pull request? same as Hound?

what violation and on which file it happened?

Hi, this is what I did.

1: Added a file in .github/workflows/ci.yml

name: Code Quality and Ex Unit Tests

on: [pull_request]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-elixir@v1
      with:
        otp-version: '23.0'
        elixir-version: '1.11.1'
    - name: Install Dependencies
      run: |
        mix local.rebar --force
        mix local.hex --force
        mix deps.get
    - name: credo
      uses: red-shirts/reviewdog-action-credo@v1
      with:
        github_token: ${{ secrets.ghactions }}
        reporter: github-pr-review

it gave me this error.


Run red-shirts/reviewdog-action-credo@v1
  with:
    github_token: ***
    reporter: github-pr-review
    level: error
/usr/bin/docker run --name 7fe9c421da50be8a228f67077_4634b0 --label 179394 --workdir /github/workspace --rm -e INPUT_GITHUB_TOKEN -e INPUT_REPORTER -e INPUT_LEVEL -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RETENTION_DAYS -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_SERVER_URL -e GITHUB_API_URL -e GITHUB_GRAPHQL_URL -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e GITHUB_ACTION_REPOSITORY -e GITHUB_ACTION_REF -e GITHUB_PATH -e GITHUB_ENV -e RUNNER_OS -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_URL -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/evercam-server2/evercam-server2":"/github/workspace" 179394:2906b797fe9c421da50be8a228f67077  "***" "error" "github-pr-review"
** (Mix) Could not find an SCM for dependency :bcrypt_elixir from EvercamMedia.Mixfile