Skip to content
A GitHub Action that lints your HAML code with HAML Lint!
Ruby Shell Dockerfile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Linters Tests Build Changelog Version Number All Contributors

HAML Lint Action

A GitHub Action to run HAML-Lint against your code and create annotations in the GitHub UI.

📄 Introduction

GitHub Actions are an amazing new tool that can dramatically improve productivity while using the GitHub platform. While it is not hard to write a custom GitHub action to run HAML-Lint on your codebase, this action takes that functionality one step further using the checks API. After the HAML Lint Action runs HAML-Lint against your code, it will create annotations that you can easily view, matched up with the offending code.

Since GitHub actions and the checks API are continually changing, it is possible that there will be breaking API changes that affect this action. If so, please open an issue and I will look into it as soon as I can.

💡 Usage

Add the following to your GitHub action workflow to use HAML Lint Action:

- name: HAML Lint
  uses: andrewmcodes/haml-lint-action@v0.0.2
    file_paths: 'app/**/*.html.haml'
    fail_level: 'error'
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

It is highly recommend you tie yourself to a version and do not do the following. I promise your life will be much easier. 😇

# ❌ Danger, sometimes I break things!
uses: andrewmcodes/haml-lint-action@master

# ✅ Much better.
uses: andrewmcodes/haml-lint-action@v0.0.2

📦 Example Workflow

Here is an example workflow file incorporating HAML Lint Action:

name: HAML Lint

on: [push]

    runs-on: ubuntu-latest
    - uses: actions/checkout@v1
    - name: HAML Lint
      uses: andrewmcodes/haml-lint-action@v0.0.2
        file_paths: 'app/**/*.html.haml'
        fail_level: 'error'
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Go here to see more examples!

💰 Available Inputs

Refer to the official haml-lint documentation for more information on the haml-lint options.

Input Parm Name Required Default Value haml-lint option Description Example
bundle false false no If you want to use a version of a gem you maintain this is your best bet. NOTE: action run time will increase relative to the size of your Gemfile. true
file_paths false app/views/ yes Define the paths you wish to be linted per run. Multiple paths can be on one line by adding a space. 'app/**/*.html.haml'
version false latest release no Define a specific version of the haml-lint gem. '0.33.0'
additional_gems false no Additional Gems can be installed via one line with spaces and commands are supported like a version. 'rubocop-rails rubocop-performance'
config_path false yes By default, haml-lint will load any file with the name .haml-lint.yml as a configuration file. If you want to load a config file with a different name or path, specify the path. 'config/haml-lint.yml'
exclude_paths false yes Define a list of paths to exclude from being linted. 'app/views/home/*.html.haml'
fail_level false error yes Can define error or warning to cause haml-lint to error out on. 'warning'

⚠️ Gotchas

  1. Due to the GitHub Check Runs API, we can only return 50 annotations per run. See here for more info.
  2. There is a bug with the Checks API that might cause your runs to get jumbled in the UI, but they will all still run and render annotations in the diff correctly.
  3. You can't use --version with multiple gems. You can specify multiple gems with version requirements using gem install 'my_gem:1.0.0' 'my_other_gem:~>2.0.0'

📸 Screenshots

HAML Lint Checks Overview

HAML Lint File Annotation

🔖 Changelog

View our Changelog

🆘 Contributing

Contributing Guide

🚨 Code of Conduct

Code of Conduct

©️ License


🤖 Check Out My Other Ruby GitHub Actions


Thanks goes to these wonderful people (emoji key):

Andrew Mason
Andrew Mason

🚇 📖 💻
Christopher Pezza
Christopher Pezza

💻 📖 🚇 👀

This project follows the all-contributors specification. Contributions of any kind welcome!

You can’t perform that action at this time.