| name: Kernel-Checker |
| |
| on: [push, pull_request] |
| |
| jobs: |
| kernel-checker: |
| name: FreeRTOS Kernel Header Checks |
| runs-on: ubuntu-20.04 |
| steps: |
| # Install python 3 |
| - name: Tool Setup |
| uses: actions/setup-python@v3 |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| |
| # There is shared code, hosted by FreeRTOS/FreeRTOS, with deps needed by header checker |
| - name: Checkout FreeRTOS Tools |
| uses: actions/checkout@v4.1.1 |
| with: |
| repository: FreeRTOS/FreeRTOS |
| sparse-checkout: '.github' |
| ref: main |
| path: tools |
| |
| # Checkout user pull request changes |
| - name: Checkout Pull Request |
| uses: actions/checkout@v4.1.1 |
| with: |
| path: inspect |
| |
| # Collect all affected files |
| - name: Collecting changed files |
| uses: lots0logs/gh-action-get-changed-files@2.2.2 |
| with: |
| token: ${{ secrets.GITHUB_TOKEN }} |
| |
| # Run checks |
| - env: |
| bashPass: \033[32;1mPASSED - |
| bashInfo: \033[33;1mINFO - |
| bashFail: \033[31;1mFAILED - |
| bashEnd: \033[0m |
| stepName: Check File Headers |
| name: ${{ env.stepName }} |
| shell: bash |
| run: | |
| # ${{ env.stepName }} |
| echo -e "::group::${{ env.bashInfo }} Install Dependencies ${{ env.bashEnd }}" |
| |
| # Copy the common tools from the FreeRTOS/FreeRTOS repo. |
| mv tools/.github/scripts/common inspect/.github/scripts |
| |
| # Install the necessary python dependencies |
| pip install -r inspect/.github/scripts/common/requirements.txt |
| cd inspect |
| |
| echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}" |
| |
| # Use the python script to check the copyright header of modified files. |
| .github/scripts/kernel_checker.py --json ${HOME}/files_modified.json ${HOME}/files_added.json ${HOME}/files_renamed.json |
| exitStatus=$? |
| echo -e "::endgroup::" |
| |
| if [ $exitStatus -eq 0 ]; then |
| echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" |
| else |
| echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" |
| fi |
| exit $exitStatus |