~ruther/qmk_firmware

6c4b6531fe8fed46bec54fae993a1bab8246dd7d — Joel Challis 4 years ago 82bb47a
CI: Add workflow for codebase formatting (#7382)

* Add workflow for codebase formatting

* stash

* review comments

* Swap to a more complete push action
A .github/workflows/format.yaml => .github/workflows/format.yaml +34 -0
@@ 0,0 1,34 @@
name: Format Codebase

on:
  push:
    branches:
    - master

jobs:
  generate:
    runs-on: ubuntu-latest
    container: qmkfm/base_container

    # protect against those who develop with their fork on master
    if: github.repository == 'qmk/qmk_firmware'

    steps:
    - uses: actions/checkout@v2

    - name: Install dependencies
      run: |
        apt-get update && apt-get install -y dos2unix

    - name: Format files
      run: |
        bin/qmk cformat
        bin/qmk pyformat
        bin/qmk fileformat

    - name: Commit files
      uses: stefanzweifel/git-auto-commit-action@v4
      with:
        commit_message: "Format code according to conventions for ${GITHUB_SHA}"
        commit_user_name: QMK Bot
        commit_user_email: hello@qmk.fm

M .travis.yml => .travis.yml +0 -1
@@ 19,7 19,6 @@ addons:
      - llvm-toolchain-trusty-7
    packages:
    - diffutils
    - dos2unix
    - clang-format-7
    - libstdc++-7-dev
script:

M lib/python/qmk/cli/__init__.py => lib/python/qmk/cli/__init__.py +1 -0
@@ 14,6 14,7 @@ from . import compile
from . import config
from . import docs
from . import doctor
from . import fileformat
from . import flash
from . import generate
from . import hello

A lib/python/qmk/cli/fileformat.py => lib/python/qmk/cli/fileformat.py +13 -0
@@ 0,0 1,13 @@
"""Format files according to QMK's style.
"""
from milc import cli

import subprocess


@cli.subcommand("Format files according to QMK's style.", hidden=True)
def fileformat(cli):
    """Run several general formatting commands.
    """
    dos2unix = subprocess.run(['bash', '-c', 'dos2unix **'])
    return dos2unix.returncode

M util/travis_compiled_push.sh => util/travis_compiled_push.sh +0 -5
@@ 10,12 10,7 @@ echo "Using git hash ${rev}"

if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then

# fix formatting
git checkout master
git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 dos2unix
git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} '*.c' '*.h' '*.cpp' | grep -z -e '^drivers' -e '^quantum' -e '^tests' -e '^tmk_core' | grep -zv -e 'quantum/template' -e 'tmk_core/protocol/usb_hid' -e 'platforms/chibios' | xargs -0 clang-format-7 -i
git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 git add
git commit -m "format code according to conventions [skip ci]" && git push git@github.com:qmk/qmk_firmware.git master

git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE}