From e8c6ede76e47b43146b4ceb46d8cbaf05a2410f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Louis=20Roch=C3=A9?= Date: Sat, 19 Oct 2024 21:17:44 +0800 Subject: [PATCH] ci: add auto format --- .github/workflows/lint.yml | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 41523a6..6a0efd5 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -5,7 +5,9 @@ on: - pull_request jobs: - lint-fmt: + # auto fix formatting, Thanks to robur.coop for the implementation + # https://discuss.ocaml.org/t/ocamlformat-and-github-actions/15464 + lint-auto-fmt: runs-on: ubuntu-latest steps: - name: Checkout code @@ -18,8 +20,25 @@ jobs: dune-cache: true allow-prerelease-opam: true - - name: Lint fmt - uses: ocaml/setup-ocaml/lint-fmt@v3 + - name: Install ocamlformat + run: grep version .ocamlformat | cut -d '=' -f 2 | xargs -I V opam install ocamlformat=V + + - name: Format code + run: | + git ls-files '*.ml' '*.mli' | xargs opam exec -- ocamlformat --inplace + + - name: Check for modified files + id: git-check + run: echo "modified=$(if git diff-index --quiet HEAD --; then echo "false"; else echo "true"; fi)" >> $GITHUB_OUTPUT + + - name: Commit and push changes + if: ${{ steps.git-check.outputs.modified == 'true' }} + run: | + git config --global user.name "Automated ocamlformat GitHub action, developed by robur.coop" + git config --global user.email "autoformat@robur.coop" + git add -A + git commit -m "formatted code" + git push lint-opam: runs-on: ubuntu-latest