mirror of
				https://github.com/FreeRTOS/FreeRTOS-Kernel.git
				synced 2025-11-04 11:09:01 +01:00 
			
		
		
		
	AutoRelease + Header Checker Upgrades (#236)
* decouple kernel check configs from fr/fr + checker sources from PR ref * Combo of various small edits * enable compatibility with git action + create autorelease action
This commit is contained in:
		
							parent
							
								
									8e99e2d38b
								
							
						
					
					
						commit
						6349871ce6
					
				
							
								
								
									
										79
									
								
								.github/scripts/kernel_checker.py
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										79
									
								
								.github/scripts/kernel_checker.py
									
									
									
									
										vendored
									
									
										Executable file
									
								
							@ -0,0 +1,79 @@
 | 
			
		||||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
from common.header_checker import HeaderChecker
 | 
			
		||||
 | 
			
		||||
#--------------------------------------------------------------------------------------------------
 | 
			
		||||
#                                            CONFIG
 | 
			
		||||
#--------------------------------------------------------------------------------------------------
 | 
			
		||||
KERNEL_IGNORED_EXTENSIONS = [
 | 
			
		||||
    '.yml',
 | 
			
		||||
    '.css',
 | 
			
		||||
    '.idx',
 | 
			
		||||
    '.md',
 | 
			
		||||
    '.url',
 | 
			
		||||
    '.sty',
 | 
			
		||||
    '.0-rc2',
 | 
			
		||||
    '.s82',
 | 
			
		||||
    '.js',
 | 
			
		||||
    '.out',
 | 
			
		||||
    '.pack',
 | 
			
		||||
    '.2',
 | 
			
		||||
    '.1-kernel-only',
 | 
			
		||||
    '.0-kernel-only',
 | 
			
		||||
    '.0-rc1',
 | 
			
		||||
    '.readme',
 | 
			
		||||
    '.tex',
 | 
			
		||||
    '.png',
 | 
			
		||||
    '.bat',
 | 
			
		||||
    '.sh'
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
KERNEL_IGNORED_PATTERNS = [
 | 
			
		||||
    r'.*\.git.*'
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
KERNEL_HEADER = [
 | 
			
		||||
    '/*\n',
 | 
			
		||||
    ' * FreeRTOS Kernel V10.4.2\n',
 | 
			
		||||
    ' * Copyright (C) 2020 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\n',
 | 
			
		||||
    ' *\n',
 | 
			
		||||
    ' * Permission is hereby granted, free of charge, to any person obtaining a copy of\n',
 | 
			
		||||
    ' * this software and associated documentation files (the "Software"), to deal in\n',
 | 
			
		||||
    ' * the Software without restriction, including without limitation the rights to\n',
 | 
			
		||||
    ' * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n',
 | 
			
		||||
    ' * the Software, and to permit persons to whom the Software is furnished to do so,\n',
 | 
			
		||||
    ' * subject to the following conditions:\n',
 | 
			
		||||
    ' *\n',
 | 
			
		||||
    ' * The above copyright notice and this permission notice shall be included in all\n',
 | 
			
		||||
    ' * copies or substantial portions of the Software.\n',
 | 
			
		||||
    ' *\n',
 | 
			
		||||
    ' * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n',
 | 
			
		||||
    ' * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n',
 | 
			
		||||
    ' * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n',
 | 
			
		||||
    ' * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n',
 | 
			
		||||
    ' * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n',
 | 
			
		||||
    ' * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n',
 | 
			
		||||
    ' *\n',
 | 
			
		||||
    ' * https://www.FreeRTOS.org\n',
 | 
			
		||||
    ' * https://github.com/FreeRTOS\n',
 | 
			
		||||
    ' *\n',
 | 
			
		||||
    ' */\n',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    parser = HeaderChecker.configArgParser()
 | 
			
		||||
    args   = parser.parse_args()
 | 
			
		||||
 | 
			
		||||
    # Configure the checks then run
 | 
			
		||||
    checker = HeaderChecker(KERNEL_HEADER)
 | 
			
		||||
    checker.ignoreExtension(*KERNEL_IGNORED_EXTENSIONS)
 | 
			
		||||
    checker.ignorePattern(*KERNEL_IGNORED_PATTERNS)
 | 
			
		||||
    checker.ignoreFile(os.path.split(__file__)[-1])
 | 
			
		||||
 | 
			
		||||
    return checker.processArgs(args)
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    exit(main())
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										54
									
								
								.github/workflows/auto-release.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								.github/workflows/auto-release.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,54 @@
 | 
			
		||||
name: Kernel-Auto-Release
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
    inputs:
 | 
			
		||||
      commit_id:
 | 
			
		||||
        description: 'Commit ID'
 | 
			
		||||
        required: true
 | 
			
		||||
        default: 'HEAD'
 | 
			
		||||
      version_number:
 | 
			
		||||
        description: 'Version Number (Ex. 10.4.0)'
 | 
			
		||||
        required: true
 | 
			
		||||
        default: '10.4.0'             
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  release-packager:
 | 
			
		||||
    name: Release Packager
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      # Install python 3
 | 
			
		||||
      - name: Tool Setup
 | 
			
		||||
        uses: actions/setup-python@v2
 | 
			
		||||
        with:
 | 
			
		||||
          python-version: 3.8.5
 | 
			
		||||
          architecture:   x64
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      # Currently FreeRTOS/.github/scripts houses the release script. Download it for upcoming usage
 | 
			
		||||
      - name: Checkout FreeRTOS Release Tools
 | 
			
		||||
        uses: actions/checkout@v2
 | 
			
		||||
        with:
 | 
			
		||||
          repository: FreeRTOS/FreeRTOS
 | 
			
		||||
          path: tools
 | 
			
		||||
      
 | 
			
		||||
      # Simpler git auth if we use checkout action and forward the repo to release script 
 | 
			
		||||
      - name: Checkout FreeRTOS Kernel
 | 
			
		||||
        uses: actions/checkout@v2
 | 
			
		||||
        with: 
 | 
			
		||||
          path: local_kernel
 | 
			
		||||
          fetch-depth: 0
 | 
			
		||||
 | 
			
		||||
      - name: Release
 | 
			
		||||
        run: |
 | 
			
		||||
          # Configure repo for push
 | 
			
		||||
          git config --global user.name ${{ github.actor }}
 | 
			
		||||
          git config --global user.email ${{ github.actor }}@users.noreply.github.com
 | 
			
		||||
          
 | 
			
		||||
          # Install deps and run
 | 
			
		||||
          pip install -r ./tools/.github/scripts/release-requirements.txt
 | 
			
		||||
          ./tools/.github/scripts/release.py FreeRTOS --kernel-repo-path=local_kernel --kernel-commit=${{ github.event.inputs.commit_id }} --new-kernel-version=${{ github.event.inputs.version_number }}
 | 
			
		||||
          exit $?
 | 
			
		||||
        env:
 | 
			
		||||
            GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
@ -1,10 +1,10 @@
 | 
			
		||||
name: FreeRTOS-Header-Checker
 | 
			
		||||
name: Kernel-Checker
 | 
			
		||||
 | 
			
		||||
on: [pull_request]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  header-checker:
 | 
			
		||||
    name: File Header Checks
 | 
			
		||||
  kernel-checker:
 | 
			
		||||
    name: FreeRTOS Kernel Header Checks
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      # Install python 3
 | 
			
		||||
@ -16,7 +16,7 @@ jobs:
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      # Get latest checks from master
 | 
			
		||||
      # There is shared code, hosted by FreeRTOS/FreeRTOS, with deps needed by header checker
 | 
			
		||||
      - name: Checkout FreeRTOS Tools
 | 
			
		||||
        uses: actions/checkout@v2
 | 
			
		||||
        with:
 | 
			
		||||
@ -36,11 +36,12 @@ jobs:
 | 
			
		||||
        uses: lots0logs/gh-action-get-changed-files@2.1.4
 | 
			
		||||
        with:
 | 
			
		||||
          token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      
 | 
			
		||||
      # Run checks
 | 
			
		||||
      - name: Check File Headers
 | 
			
		||||
        run: |
 | 
			
		||||
          mv tools/.github/scripts/common inspect/.github/scripts
 | 
			
		||||
          cd inspect
 | 
			
		||||
          ../tools/.github/scripts/check-header.py --kernel --json ${HOME}/files.json
 | 
			
		||||
          .github/scripts/kernel_checker.py --json ${HOME}/files_modified.json ${HOME}/files_added.json ${HOME}/files_renamed.json
 | 
			
		||||
          exit $?
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user