1# __ __ _ 2# ___\ \/ /_ __ __ _| |_ 3# / _ \\ /| '_ \ / _` | __| 4# | __// \| |_) | (_| | |_ 5# \___/_/\_\ .__/ \__,_|\__| 6# |_| XML parser 7# 8# Copyright (c) 2021-2024 Sebastian Pipping <sebastian@pipping.org> 9# Copyright (c) 2023 Joyce Brum <joycebrum@google.com> 10# Licensed under the MIT license: 11# 12# Permission is hereby granted, free of charge, to any person obtaining 13# a copy of this software and associated documentation files (the 14# "Software"), to deal in the Software without restriction, including 15# without limitation the rights to use, copy, modify, merge, publish, 16# distribute, sublicense, and/or sell copies of the Software, and to permit 17# persons to whom the Software is furnished to do so, subject to the 18# following conditions: 19# 20# The above copyright notice and this permission notice shall be included 21# in all copies or substantial portions of the Software. 22# 23# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 26# NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 27# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 28# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 29# USE OR OTHER DEALINGS IN THE SOFTWARE. 30 31name: Enforce clang-format clean code 32 33on: 34 pull_request: 35 push: 36 schedule: 37 - cron: '0 2 * * 5' # Every Friday at 2am 38 workflow_dispatch: 39 40permissions: 41 contents: read 42 43jobs: 44 clang_format: 45 name: Enforce clang-format clean code 46 runs-on: ubuntu-22.04 47 steps: 48 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 49 50 - name: Install clang-format 19 51 run: |- 52 set -x 53 source /etc/os-release 54 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - 55 sudo add-apt-repository "deb https://apt.llvm.org/${UBUNTU_CODENAME}/ llvm-toolchain-${UBUNTU_CODENAME}-19 main" 56 sudo apt-get update # due to new repository 57 sudo apt-get install --yes --no-install-recommends -V \ 58 clang-format-19 \ 59 moreutils 60 echo /usr/lib/llvm-19/bin >>"${GITHUB_PATH}" 61 62 - name: Run clang-format 63 run: | 64 set -x 65 cd expat/ 66 ./apply-clang-format.sh 67 git config color.diff always 68 git diff --exit-code # i.e. fail CI when there is a diff (and present it) 69