mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04: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…
Reference in a new issue