All Projects → talos-systems → Conform

talos-systems / Conform

Licence: mpl-2.0
Policy enforcement for your pipelines.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Conform

Dyn365 Ce Vsts Tasks
VSTS Extension for Dynamics 365 Customer Engagement
Stars: ✭ 94 (-62.7%)
Mutual labels:  build-automation
Grunt Drupal Tasks
Grunt-based build and testing tasks for Drupal
Stars: ✭ 125 (-50.4%)
Mutual labels:  build-automation
Zeus
An Electrifying Build System
Stars: ✭ 176 (-30.16%)
Mutual labels:  build-automation
Buildpipeline
AWS-powered serverless build, test and deploy pipeline ft. multiple environments
Stars: ✭ 105 (-58.33%)
Mutual labels:  build-automation
Redo
Smaller, easier, more powerful, and more reliable than make. An implementation of djb's redo.
Stars: ✭ 1,589 (+530.56%)
Mutual labels:  build-automation
Fdroidserver
F-Droid server and build tools.
Stars: ✭ 156 (-38.1%)
Mutual labels:  build-automation
Anydsl
Meta project to quickly build dependencies
Stars: ✭ 87 (-65.48%)
Mutual labels:  build-automation
Ducible
A tool to make Windows builds reproducible.
Stars: ✭ 211 (-16.27%)
Mutual labels:  build-automation
Nginx Builder
A tool to build deb or rpm package of required Nginx version from the source code, with the ability to connect third-party modules. Nginx parameters are set in the yaml configuration file.
Stars: ✭ 123 (-51.19%)
Mutual labels:  build-automation
Buildhelpers
Helper functions for PowerShell CI/CD scenarios
Stars: ✭ 174 (-30.95%)
Mutual labels:  build-automation
Make.go
A Go script that could replace your Makefile.
Stars: ✭ 105 (-58.33%)
Mutual labels:  build-automation
Aria2 Build Msys2
aria2 build scripts on msys2 with custom patches.
Stars: ✭ 112 (-55.56%)
Mutual labels:  build-automation
Baumeister
👷 The aim of this project is to help you to build your things. From Bootstrap themes over static websites to single page applications.
Stars: ✭ 171 (-32.14%)
Mutual labels:  build-automation
Igniteui Cli
Ignite UI Command-Line Interface by Infragistics
Stars: ✭ 105 (-58.33%)
Mutual labels:  build-automation
Earthly
Repeatable builds
Stars: ✭ 5,805 (+2203.57%)
Mutual labels:  build-automation
Pybuilder
Software build automation tool for Python.
Stars: ✭ 1,290 (+411.9%)
Mutual labels:  build-automation
Ci Detector
Detect continuous integration environment and get information of current build
Stars: ✭ 138 (-45.24%)
Mutual labels:  build-automation
Build Harness
🤖Collection of Makefiles to facilitate building Golang projects, Dockerfiles, Helm charts, and more
Stars: ✭ 236 (-6.35%)
Mutual labels:  build-automation
Jenkins Ue4
Automated Unreal Engine 4 Project Builds
Stars: ✭ 206 (-18.25%)
Mutual labels:  build-automation
Xrm Ci Framework
xRM CI Framework provides you with the tools automate the build and deployment of your CRM Solution. Using the framework to implement a fully automated DevOps pipeline will allow you to deploy more frequently with added consistency and quality.
Stars: ✭ 172 (-31.75%)
Mutual labels:  build-automation

Conform

Policy enforcement for your pipelines.

Conventional Commits GoDoc Travis Codecov Go Report Card Release GitHub (pre-)release


Conform is a tool for enforcing policies on your build pipelines.

Some of the policies included are:

  • Commits: Enforce commit policies including:
    • Commit message header length
    • Developer Certificate of Origin
    • GPG signature
    • Conventional Commits
    • Imperative mood
    • Spell check
    • Maximum of one commit ahead of master
    • Require a commit body
    • Jira issue check
  • License Headers: Enforce license headers on source code files.

Getting Started

To install conform you can download a release, or build it locally (go must be installed):

go get github.com/talos-systems/conform

Now, create a file named .conform.yaml with the following contents:

policies:
  - type: commit
    spec:
      header:
        length: 89
        imperative: true
        case: lower
        invalidLastCharacters: .
        jira:
          keys:
          - PROJ
          - JIRA
      body:
        required: true
      dco: true
      gpg: false
      spellcheck:
        locale: US
      maximumOfOneCommit: true
      conventional:
        types:
          - "type"
        scopes:
          - "scope"
        descriptionLength: 72
  - type: license
    spec:
      skipPaths:
        - .git/
        - .build*/
      includeSuffixes:
        - .ext
      excludeSuffixes:
        - .exclude-ext-prefix.ext
      header: |
        This is the contents of a license header.

In the same directory, run:

$ conform enforce
POLICY         CHECK                        STATUS        MESSAGE
commit         Header Length                PASS          <none>
commit         Imperative Mood              PASS          <none>
commit         Header Case                  PASS          <none>
commit         Header Last Character        PASS          <none>
commit         DCO                          PASS          <none>
commit         Conventional Commit          PASS          <none>
commit         Number of Commits            PASS          <none>
commit         Commit Body                  PASS          <none>
license        File Header                  PASS          <none>

To setup a commit-msg hook:

cat <<EOF | tee .git/hooks/commit-msg
#!/bin/sh

conform enforce --commit-msg-file \$1
EOF
chmod +x .git/hooks/commit-msg

We also provide a Pre-Commit hook that you can use as follows:

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/talos-systems/conform
    rev: master
    hooks:
      - id: conform
        stages:
          - commit-msg

License

license

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].