# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: Format

on: [pull_request, push]

jobs:
  # Run clang-format and verify there are no errors. We don't want to bother
  # building until we've at least got clean code.
  format:
    name: Code Format Check
    runs-on: ubuntu-18.04
    steps:
    - name: Installing dependencies
      run: |
        sudo add-apt-repository -y "deb http://mirror.enzu.com/ubuntu/ eoan main universe"
        sudo apt-get update -qq
        sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends clang-format-9
        wget https://raw.githubusercontent.com/llvm-mirror/clang/master/tools/clang-format/git-clang-format -O /tmp/git-clang-format
        chmod +x /tmp/git-clang-format
    - name: Checking out repository
      uses: actions/checkout@v2
      # We have to explicitly fetch master as well
    - name: Fetching master
      run: git fetch --no-tags --prune --depth=1 origin master
    - name: Running clang-format on changed source files
      run: |
        /tmp/git-clang-format origin/master --binary=clang-format-9 --style=file
        git diff --exit-code
