• Stars
    star
    4
  • Rank 3,304,323 (Top 66 %)
  • Language
    Ruby
  • License
    MIT License
  • Created about 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A GitHub Action that lints your HAML code with HAML Lint!

Project Status: Inactive – The project has reached a stable, usable state but is no longer being actively developed; support/maintenance will be provided as time allows.

βœ… 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/[email protected]
  with:
    file_paths: 'app/**/*.html.haml'
    fail_level: 'error'
  env:
    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/[email protected]

πŸ“¦ Example Workflow

Here is an example workflow file incorporating HAML Lint Action:

name: HAML Lint

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - name: HAML Lint
      uses: andrewmcodes/[email protected]
      with:
        file_paths: 'app/**/*.html.haml'
        fail_level: 'error'
      env:
        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

MIT

πŸ€– Check Out My Other Ruby GitHub Actions

✨ Contributors

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!

More Repositories

1

obsidian-beginner-vault-template

A minimal template for your first Obsidian vault aimed at setting good defaults.
56
star
2

awesome-lucky

A collection of awesome Lucky libraries, tools, frameworks and resources
44
star
3

standardrb-action

StandardRB Action: A GitHub Action to run StandardRB against your code!
Ruby
33
star
4

warp-one-dark-darker

Warp theme based on One Dark Darker
26
star
5

shotgun

Ready to go Rails App with TailwindCSS, ViewComponent, Devise, and more!
Ruby
25
star
6

pruner

CLI tool to delete Git branches
Ruby
20
star
7

bundler-audit-action

Bundler Audit Action
Dockerfile
17
star
8

stimulus_reflex_table_filter

Demo app showing how you can filter a table in a Ruby on Rails app with StimulusReflex
Ruby
17
star
9

awesome-bridgetown

A curated list of awesome things related to Bridgetown
13
star
10

rails-extension-power-pack

An extension pack of my favorite VS Code extensions for Ruby on Rails development.
Ruby
11
star
11

forem_lite

A simple tool to help you get articles from Forem/Dev.to
Ruby
11
star
12

andrewm.codes

My personal website built on Bridgetown
HTML
11
star
13

dishwasher

A CLI tool to help you easily delete forked repositories.
Ruby
10
star
14

awesome-stars

An Awesome List of my Awesome Stars
9
star
15

bridgetown-inline-svg

ARCHIVED migrated to bridgetown-svg-inliner
Ruby
9
star
16

bridgetown-netlify-cms-starter

A template to help you get started with Bridgetown + Netlify CMS
JavaScript
8
star
17

bridgetown-gh-pages-action

ARCHIVED See link below, this action is now longer needed following the release of Bridgetown V1
Shell
7
star
18

andrewmcodes

andrewmcodes public readme
6
star
19

andrewmcodes_gem

My gem card
Ruby
4
star
20

alfred-themes

My personal Alfred 5 themes
4
star
21

redux-on-rails

I DIDNT WANT THIS BUT YOU MADE ME DO IT
Ruby
3
star
22

.github

Default community health files for @andrewmcodes
3
star
23

bridgetown-torchlight-demo

A demo Bridgetown website that has Torchlight syntax highlighting configured!
JavaScript
3
star
24

dotfiles

My personal dot and settings files
Shell
3
star
25

release-please-demo

Ruby
2
star
26

turbo_debug

Ruby
2
star
27

vercel_ruby

WIP Vercel Serverless Functions written in Ruby
Ruby
2
star
28

.dotfiles-update

A temporary repo where I am rebuilding my dotfiles
Shell
2
star
29

rails-cable-route-bug-reproduction

Ruby
1
star
30

actions

Shared GitHub Actions
Shell
1
star
31

prettier-config

My personal Prettier configuration
JavaScript
1
star
32

bridgetown-gh-pages-demo

Demo of the new gh-pages configuration in Bridgetown v1.0
JavaScript
1
star
33

github-actions

MOVED TO andrewmcodes/actions
1
star
34

vscode-tailwindcss-extension-pack

An extension pack for VSCode of extensions for developing with Tailwind CSS.
1
star
35

remote-ruby-vault

Obsidian vault of Remote Ruby episodes for personal research
JavaScript
1
star
36

bridgetown-esbuild-minifySyntax

Benchmarking usage of minifySyntax with esbuild and Bridgetown
JavaScript
1
star
37

warp-radix

Warp theme based on the Radix color system
1
star
38

advent_of_code

Solutions to Advent of Code
Ruby
1
star