1name: Uncrustify the source code 2 3on: 4 issue_comment: 5 types: [created] 6 7jobs: 8 Uncrustify: 9 name: Run_Uncrustify 10 if: ${{ github.event.issue.pull_request && github.event.comment.body == '/bot run uncrustify' }} 11 runs-on: ubuntu-20.04 12 steps: 13 - name: Dump GitHub context 14 env: 15 GITHUB_CONTEXT: ${{ toJson(github) }} 16 run: echo "$GITHUB_CONTEXT" 17 - name: Install Utils 18 run: | 19 sudo apt-get update && sudo apt-get --assume-yes install software-properties-common curl jq sed 20 sudo add-apt-repository ppa:git-core/ppa 21 sudo apt-get update && sudo apt-get --assume-yes install git 22 git --version 23 - name: get pullrequest url 24 run: | 25 echo ${{ github.event.issue.pull_request.url }} 26 - name: get upstream repo 27 id: upstreamrepo 28 run: | 29 echo "RemoteRepo=$(curl -H "Accept: application/vnd.github.sailor-v-preview+json" --url ${{ github.event.issue.pull_request.url }} | jq '.head.repo.full_name' | sed 's/\"//g')" >> $GITHUB_OUTPUT 30 - name: get upstream branch 31 id: upstreambranch 32 run: | 33 echo "branchname=$(curl -H "Accept: application/vnd.github.sailor-v-preview+json" --url ${{ github.event.issue.pull_request.url }} | jq '.head.ref' | sed 's/\"//g')" >> $GITHUB_OUTPUT 34 - name: echo upstream repo:branch 35 run: | 36 echo ${{ steps.upstreamrepo.outputs.RemoteRepo }}:${{ steps.upstreambranch.outputs.branchname }} 37 - name: Checkout upstream repo 38 uses: actions/checkout@v3 39 with: 40 repository: ${{ steps.upstreamrepo.outputs.RemoteRepo }} 41 ref: ${{ steps.upstreambranch.outputs.branchname }} 42 - name: Install Uncrustify 43 run: | 44 : # Install Uncrustify 45 echo "::group::Install Uncrustify" 46 sudo apt-get update && sudo apt-get --assume-yes install uncrustify 47 echo "::endgroup::" 48 - name: Run Uncrustify 49 run: | 50 : # Uncrustify on C files while ignoring symlinks. 51 : # Make a collapsible section in the log to run uncrustify 52 echo "::group::Uncrustify Check" 53 uncrustify --version 54 find . -iname "*.[ch]" | xargs uncrustify --no-backup --replace --if-changed -c tools/uncrustify.cfg -l C 55 echo "::endgroup::" 56 echo -e "\033[32;3mUncrustify Formatting Applied\033[0m" 57 - name: Push changes to upstream repository 58 run: | 59 : # Push changes to upstream repository 60 echo "::group::Push changes to upstream repository" 61 git config --global --add safe.directory '*' 62 git config --global user.name 'GitHub Action' 63 git config --global user.email 'action@github.com' 64 git add -A 65 git commit -m "Uncrustify: triggered by comment." 66 echo "::endgroup::" 67 git push 68 if [ "$?" = "0" ]; then 69 echo -e "\033[32;3mPushed formatting changes, don't forget to run 'git pull'!\033[0m" 70 exit 0 71 else 72 echo -e "\033[32;31mFailed to push the formatting changes\033[0m" 73 exit 1 74 fi 75