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]
|
on: [pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
header-checker:
|
kernel-checker:
|
||||||
name: File Header Checks
|
name: FreeRTOS Kernel Header Checks
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
# Install python 3
|
# Install python 3
|
||||||
|
@ -16,7 +16,7 @@ jobs:
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
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
|
- name: Checkout FreeRTOS Tools
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
|
@ -40,7 +40,8 @@ jobs:
|
||||||
# Run checks
|
# Run checks
|
||||||
- name: Check File Headers
|
- name: Check File Headers
|
||||||
run: |
|
run: |
|
||||||
|
mv tools/.github/scripts/common inspect/.github/scripts
|
||||||
cd inspect
|
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 $?
|
exit $?
|
||||||
|
|
Loading…
Reference in a new issue