diff --git a/.github/workflows/Dockerfile b/.github/workflows/Dockerfile new file mode 100644 index 0000000..41dfc93 --- /dev/null +++ b/.github/workflows/Dockerfile @@ -0,0 +1,5 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/alpine +FROM alpine:edge +# Install system build dependencies +RUN apk add --no-cache git clang diff --git a/.github/workflows/clang_format.yml b/.github/workflows/clang_format.yml new file mode 100644 index 0000000..510c104 --- /dev/null +++ b/.github/workflows/clang_format.yml @@ -0,0 +1,24 @@ +name: clang-format Check + +on: [push, pull_request] + +jobs: + # Building using the github runner environement directly. + clang-format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Fetch origin/master + run: git fetch origin master + - name: List of changed file(s) + run: git diff --name-only FETCH_HEAD + + - name: Build clang-format docker + run: cd .github/workflows && docker build --tag=linter . + - name: Check clang-format + run: docker run --rm --init -v $(pwd):/repo linter:latest clang-format --version + - name: clang-format help + run: docker run --rm --init -v $(pwd):/repo linter:latest clang-format --help + + - name: Check current commit + run: docker run --rm --init -v $(pwd):/repo -w /repo linter:latest sh -c "git diff --name-only FETCH_HEAD | grep '\.c$\|\.h$\|\.cc$' | xargs clang-format --style=file --dry-run --Werror "