--- /dev/null
+# Copyright 2021-2024 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+name: Coding style validation
+
+on: [pull_request]
+
+env:
+ PR_NUMBER: ${{ github.event.number }}
+ GH_TOKEN: ${{ github.token }}
+
+permissions:
+ contents: read
+
+jobs:
+ check-style:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ path: openssl
+ - name: check style for each commit
+ working-directory: openssl
+ shell: bash
+ run: |
+ ERRORS_FOUND=0
+ git fetch origin $GITHUB_BASE_REF:$GITHUB_BASE_REF
+ REFSTART=$(git rev-parse $GITHUB_BASE_REF)
+ REFEND=$(git rev-parse HEAD)
+ echo "Checking from $REFSTART to $REFEND"
+ for i in $(git log --no-merges --format=%H $REFSTART..$REFEND)
+ do
+ echo "::group::Style report for commit $i"
+ set +e
+ ./util/check-format-commit.sh $i
+ if [ $? -ne 0 ]
+ then
+ ERRORS_FOUND=1
+ fi
+ set -e
+ echo "::endgroup::"
+ done
+ SKIP_TEST=$(gh pr view $PR_NUMBER --json labels --jq '.labels[] | select(.name == "style: waived") | .name')
+ if [ -z "$SKIP_TEST" ]
+ then
+ exit $ERRORS_FOUND
+ else
+ echo "PR $PR_NUMBER is marked with style: waived, waiving style check errors"
+ exit 0
+ fi