hauleth

hauleth

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.

First Post!

OvermindDL1

OvermindDL1

Ooo very nice!

Most Liked

hauleth

hauleth

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

Last Post!

ijunaidfarooq

ijunaidfarooq

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

Where Next?

Popular in Discussions Top

PragTob
Hey everyone, this has been on my mind for some time and I’d love your input on it! TLDR: I feel like maps are superioer for storing and...
New
ricklove
I was just introduced to Elixir and Phoenix. I was told about the 2 million websocket test that was done 2 years ago. From my research, t...
New
jesse
Hi everyone, I hesitated to post this here because I don’t want you to think I’m spamming, but I’ve been working on a Platform-as-a-Serv...
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
AstonJ
If so I (and hopefully others!) might have some tips for you :slight_smile: But first, please say which area you’re finding most challen...
New
chuck
Let me start by stating an assumption: Phoenix is a great approach to building REST APIs. There are many reasons for this, but I will ass...
New
crispinb
On reading dhh’s latest The One Person Framework it strikes me that Phoenix with LiveView is already pretty much this. However, never hav...
New

Other popular topics Top

KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36689 110
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New

We're in Beta

About us Mission Statement