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