diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml new file mode 100644 index 0000000000..4a293cd876 --- /dev/null +++ b/.github/workflows/format.yml @@ -0,0 +1,39 @@ +name: Code format check + +on: pull_request + +jobs: + treefmt: + runs-on: ubuntu-latest + steps: + - name: Create user program directory + run: | + mkdir -p $HOME/.local/bin + echo "$HOME/.local/bin" >> "$GITHUB_PATH" + + - name: Install treefmt + run: | + curl -L https://github.com/numtide/treefmt/releases/download/v2.0.5/treefmt_2.0.5_linux_amd64.tar.gz -o treefmt.tar.gz + tar -xvzf treefmt.tar.gz + install -m 755 treefmt $HOME/.local/bin + rm LICENSE README.md treefmt treefmt.tar.gz + + - name: Install clang-format + run: | + curl -L https://github.com/muttleyxd/clang-tools-static-binaries/releases/download/master-32d3ac78/clang-format-17_linux-amd64 -o clang-format + install -m 755 clang-format $HOME/.local/bin + rm clang-format + + - uses: actions/setup-python@v5 + + - name: Install cmake-format + run: | + pip install cmakelang + + - uses: actions/checkout@v4 + + - name: Check code format + continue-on-error: true + run: | + treefmt + git diff --exit-code