Skip to content

Commit

Permalink
workflows: added general and pre-commit github workflow
Browse files Browse the repository at this point in the history
Signed-off-by: Lorenzo Vagliano
  • Loading branch information
Lorenzovagliano committed Oct 25, 2024
1 parent 5cae23f commit 842c2df
Show file tree
Hide file tree
Showing 6 changed files with 114 additions and 6 deletions.
26 changes: 26 additions & 0 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Pre-Commit

on:
workflow_call:
inputs:
ref:
description: The reference to build
type: string
required: true

jobs:
linter:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10.11"

- name: Run pre-commit
uses: pre-commit/action@v3.0.0
19 changes: 19 additions & 0 deletions .github/workflows/pull-request-main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Pull request main

on:
pull_request_target:
branches: [main]
paths-ignore: ["docs/**"]

jobs:
test:
uses: ./.github/workflows/test-and-build.yml
with:
ref: ${{ github.event.pull_request.head.sha }}
secrets: inherit

pre-commit:
uses: ./.github/workflows/pre-commit.yml
with:
ref: ${{ github.event.pull_request.head.sha }}
secrets: inherit
12 changes: 6 additions & 6 deletions .github/workflows/test-and-build.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
name: Build and Test
on:
push:
branches:
- main
pull_request_target:
branches:
- main
workflow_call:
inputs:
ref:
description: The reference to build
type: string
required: true

env:
AIRFLOW_HOME: /home/runner/work/workflows/workflows
Expand Down
12 changes: 12 additions & 0 deletions .gitlint
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[general]
ignore=body-is-missing
extra-path=./scripts/gitlint_rules/
debug=true
verbosity=3
contrib = contrib-body-requires-signed-off-by, contrib-title-conventional-commits

[title-max-length]
line-length=50

[body-max-line-length]
line-length=72
10 changes: 10 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ repos:
rev: "v2.7.1"
hooks:
- id: prettier
stages: [commit]
- repo: https://github.com/pycqa/isort
rev: "5.12.0"
hooks:
Expand All @@ -22,3 +23,12 @@ repos:
- id: check-merge-conflict
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/jorisroovers/gitlint
rev: "v0.17.0"
hooks:
- id: gitlint
language: python
entry: gitlint
stages: [commit-msg]
args: [--msg-filename]

41 changes: 41 additions & 0 deletions scripts/gitlint_rules/rules.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import re

from gitlint.rules import CommitRule, RuleViolation

# EXAMPLE GITLINT CONFIGURATION

# class SignedOffBy(CommitRule):
# """This rule will enforce that each commit contains a "Signed-off-by" line."""

# name = "body-requires-signed-off-by"
# id = "Workflows1"

# def validate(self, commit):
# for line in commit.message.body:
# if line.startswith("Signed-off-by"):
# return

# msg = "Body does not contain a 'Signed-Off-By' line"
# return [RuleViolation(self.id, msg, line_nr=1)]


# class ApprovedSubject(CommitRule):
# """Validate subject of each commit.

# This rule will enforce that each commit starts with a "module: text" format.
# The 'module' can be any alphanumeric word, and the message must start with a colon followed by a space.
# """

# name = "approved-subject-in-title"
# id = "Workflows2"

# MODULE_PATTERN = re.compile(r"^[a-zA-Z0-9_-]+: .+")

# def validate(self, commit):
# title = commit.message.title

# if not self.MODULE_PATTERN.match(title):
# msg = "Subject does not follow 'module: text' format"
# return [RuleViolation(self.id, msg, line_nr=1)]

# return

0 comments on commit 842c2df

Please sign in to comment.