name: format on: [push, pull_request] jobs: format: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - name: Dependencies run: | sudo apt -q update sudo apt install -q -y clang-format-6.0 - name: Check run: | if [[ -n "${GITHUB_BASE_REF}" ]]; then # pull request, check head branch against base branch GITHUB_BEFORE="$(git ls-remote origin "${GITHUB_BASE_REF}" | cut -f1)" elif [[ "${GITHUB_REF}" != "refs/heads/master" ]]; then # workflow triggered from some branch other than master, assume that # the branch will eventually be merged into master GITHUB_BEFORE="$(git ls-remote origin refs/heads/master | cut -f1)" else # master branch, compare against previous state # (jq comes preinstalled on github runners) GITHUB_BEFORE="$(jq -r '.before' "${GITHUB_EVENT_PATH}")" fi # github interleaves stderr and stdout, redirect everything to stdout /bin/bash -eu build-aux/ci/format-code.sh "${GITHUB_BEFORE}..${GITHUB_SHA}" 2>&1