# This workflow checks if the code is properly formatted. name: Check format # This workflow can only be triggered by other workflows. on: workflow_call concurrency: group: ${{ github.workflow }}-${{ github.ref }}-format cancel-in-progress: true defaults: run: shell: bash jobs: pre-commit: runs-on: ubuntu-latest container: ghcr.io/xrplf/ci/tools-rippled-pre-commit steps: # The $GITHUB_WORKSPACE and ${{ github.workspace }} might not point to the # same directory for jobs running in containers. The actions/checkout step # is *supposed* to checkout into $GITHUB_WORKSPACE and then add it to # safe.directory (see instructions at https://github.com/actions/checkout) # but that is apparently not happening for some container images. We # therefore preemptively add both directories to safe.directory. See also # https://github.com/actions/runner/issues/2058 for more details. - name: Configure git safe.directory run: | git config --global --add safe.directory $GITHUB_WORKSPACE git config --global --add safe.directory ${{ github.workspace }} - name: Checkout repository uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - name: Check configuration run: | echo 'Checking path.' echo ${PATH} | tr ':' '\n' echo 'Checking environment variables.' env | sort echo 'Checking pre-commit version.' pre-commit --version echo 'Checking clang-format version.' clang-format --version echo 'Checking NPM version.' npm --version echo 'Checking Node.js version.' node --version echo 'Checking prettier version.' prettier --version - name: Format code run: pre-commit run --show-diff-on-failure --color=always --all-files - name: Check for differences env: MESSAGE: | One or more files did not conform to the formatting. Maybe you did not run 'pre-commit' before committing, or your version of 'clang-format' or 'prettier' has an incompatibility with the ones used here (see the "Check configuration" step above). Run 'pre-commit run --all-files' in your repo, and then commit and push the changes. run: | DIFF=$(git status --porcelain) if [ -n "${DIFF}" ]; then # Print the files that changed to give the contributor a hint about # what to expect when running pre-commit on their own machine. git status echo "${MESSAGE}" exit 1 fi