| # 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" |
| echo "::group::Style report for commits $REFSTART..$REFEND" |
| set +e |
| ./util/check-format-commit.sh $REFSTART..$REFEND |
| if [ $? -ne 0 ] |
| then |
| ERRORS_FOUND=1 |
| fi |
| set -e |
| echo "::endgroup::" |
| 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 |