InfiniTime/.github/workflows/format.yml
2022-10-10 17:52:36 +02:00

70 lines
1.8 KiB
YAML

name: Code formatting
on:
pull_request:
branches: [ develop ]
paths:
- '**.cpp'
- '**.h'
- '!src/libs/**'
- '!src/FreeRTOS/**'
jobs:
test-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1000
- name: Fetch base branch
run: git fetch origin "$GITHUB_BASE_REF":"$GITHUB_BASE_REF"
- name: Install clang-format
run: |
sudo apt-get update
sudo apt-get -y install clang-format-12
- name: Check formatting
run: tests/test-format.sh
- name: Upload patches
uses: actions/upload-artifact@v3
if: failure()
with:
name: Patches
path: ./*.patch
test-clang-tidy:
runs-on: ubuntu-latest
container:
image: infinitime/infinitime-build
steps:
# This workaround fixes the error "unsafe repository (REPO is owned by someone else)".
# See https://github.com/actions/checkout/issues/760 and https://github.com/actions/checkout/issues/766
# The fix in "actions/checkout@v2" was not sufficient as the build process also uses git (to get the current
# commit hash, for example).
- name: Workaround permission issues
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Checkout source files
uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 1000
- name: Fetch base branch
run: git fetch origin "$GITHUB_BASE_REF":"$GITHUB_BASE_REF"
- name: Install clang-tidy
run: |
apt-get update
apt-get -y install clang-tidy-12
- name: Prepare environment
shell: bash
env:
SOURCES_DIR: .
run: |
. docker/build.sh
GetGcc
GetNrfSdk
GetMcuBoot
CmakeGenerate
- run: tests/test-tidy.sh