name: Uncrustify the source code on: issue_comment: types: [created] jobs: Uncrustify: name: Run_Uncrustify if: ${{ github.event.issue.pull_request && github.event.comment.body == '/bot run uncrustify' }} runs-on: ubuntu-20.04 steps: - name: Dump GitHub context env: GITHUB_CONTEXT: ${{ toJson(github) }} run: echo "$GITHUB_CONTEXT" - name: Install Utils run: | sudo apt-get update && sudo apt-get --assume-yes install software-properties-common curl jq sed sudo add-apt-repository ppa:git-core/ppa sudo apt-get update && sudo apt-get --assume-yes install git git --version - name: get pullrequest url run: | echo ${{ github.event.issue.pull_request.url }} - name: get upstream repo id: upstreamrepo run: | 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 - name: get upstream branch id: upstreambranch run: | 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 - name: echo upstream repo:branch run: | echo ${{ steps.upstreamrepo.outputs.RemoteRepo }}:${{ steps.upstreambranch.outputs.branchname }} - name: Checkout upstream repo uses: actions/checkout@v3 with: repository: ${{ steps.upstreamrepo.outputs.RemoteRepo }} ref: ${{ steps.upstreambranch.outputs.branchname }} - name: Install Uncrustify run: | : # Install Uncrustify echo "::group::Install Uncrustify" sudo apt-get update && sudo apt-get --assume-yes install uncrustify echo "::endgroup::" - name: Run Uncrustify run: | : # Uncrustify on C files while ignoring symlinks. : # Make a collapsible section in the log to run uncrustify echo "::group::Uncrustify Check" uncrustify --version find . -iname "*.[ch]" | xargs uncrustify --no-backup --replace --if-changed -c tools/uncrustify.cfg -l C echo "::endgroup::" echo -e "\033[32;3mUncrustify Formatting Applied\033[0m" - name: Push changes to upstream repository run: | : # Push changes to upstream repository echo "::group::Push changes to upstream repository" git config --global --add safe.directory '*' git config --global user.name 'GitHub Action' git config --global user.email 'action@github.com' git add -A git commit -m "Uncrustify: triggered by comment." echo "::endgroup::" git push if [ "$?" = "0" ]; then echo -e "\033[32;3mPushed formatting changes, don't forget to run 'git pull'!\033[0m" exit 0 else echo -e "\033[32;31mFailed to push the formatting changes\033[0m" exit 1 fi