[修改] 增加freeRTOS
1. 版本FreeRTOSv202212.01,命名为kernel;
This commit is contained in:
180
kernel/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/.github/workflows/ci.yml
vendored
Normal file
180
kernel/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,180 @@
|
||||
name: CI Checks
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: ["**"]
|
||||
pull_request:
|
||||
branches: ["**"]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
unittest:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clone This Repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Build
|
||||
run: |
|
||||
git submodule update --checkout
|
||||
cd tools/CMock
|
||||
git submodule update --init vendor/unity
|
||||
cd ../..
|
||||
sudo apt-get install -y lcov
|
||||
sudo apt-get install -y unifdef
|
||||
cmake -S test/unit-test -B test/unit-test/build/
|
||||
make -C test/unit-test/build/ all
|
||||
- name: Test
|
||||
run: |
|
||||
cd test/unit-test/build/
|
||||
ctest -E system --output-on-failure
|
||||
cd ..
|
||||
- name: Coverage
|
||||
run: |
|
||||
make -C test/unit-test/build/ coverage
|
||||
lcov --list --rc lcov_branch_coverage=1 test/unit-test/build/coverage.info
|
||||
- name: Check Coverage
|
||||
uses: FreeRTOS/CI-CD-Github-Actions/coverage-cop@main
|
||||
with:
|
||||
path: ./test/unit-test/build/coverage.info
|
||||
|
||||
spell-check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Parent Repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
ref: main
|
||||
repository: aws/aws-iot-device-sdk-embedded-C
|
||||
path: main
|
||||
- name: Clone This Repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: ./tcp
|
||||
- name: Install spell
|
||||
run: |
|
||||
sudo apt-get install spell
|
||||
sudo apt-get install util-linux
|
||||
- name: Check spelling
|
||||
run: |
|
||||
PATH=$PATH:main/tools/spell
|
||||
# Make sure that the portable directory is not included in the spellcheck.
|
||||
sed -i 's/find $DIRNAME/find $DIRNAME -not -path '*portable*'/g' main/tools/spell/find-unknown-comment-words
|
||||
find-unknown-comment-words --directory tcp/ --lexicon tcp/.github/lexicon.txt
|
||||
if [ "$?" = "0" ]; then
|
||||
exit 0
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
formatting:
|
||||
# Use only 18.04 since we want the uncrustify version to
|
||||
# be 0.66.1_f to ensure proper formatting.
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Install Uncrustify
|
||||
run: sudo apt-get install uncrustify
|
||||
- name: Run Uncrustify
|
||||
run: |
|
||||
uncrustify --version
|
||||
find . -iname "*.[hc]" -exec uncrustify --check -c tools/uncrustify.cfg {} +
|
||||
if [ "$?" = "0" ]; then
|
||||
exit 0
|
||||
else
|
||||
echo -e "\033[31;1;43mFormatting check (using Uncrustify) failed...\033[0m"
|
||||
echo -e "\033[32;3mTo have the code uncrustified for you, please comment '/bot run uncrustify' (without the quotes) on the Pull Request.\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
- name: Check For Trailing Whitespace
|
||||
run: |
|
||||
set +e
|
||||
grep --exclude="README.md" -rnI -e "[[:blank:]]$" .
|
||||
if [ "$?" = "0" ]; then
|
||||
echo "Files have trailing whitespace."
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
|
||||
doxygen:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Run doxygen build
|
||||
uses: FreeRTOS/CI-CD-Github-Actions/doxygen@main
|
||||
with:
|
||||
path: ./
|
||||
|
||||
build-checks:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Update submodules
|
||||
run: git submodule update --init --checkout
|
||||
- name: Build checks (Enable all functionalities)
|
||||
run: |
|
||||
cmake -S test/build-combination -B test/build-combination/build/ \
|
||||
-DTEST_CONFIGURATION=ENABLE_ALL
|
||||
make -C test/build-combination/build/
|
||||
- name: Build checks (Disable all functionalities)
|
||||
run: |
|
||||
cmake -S test/build-combination -B test/build-combination/build/ \
|
||||
-DTEST_CONFIGURATION=DISABLE_ALL
|
||||
make -C test/build-combination/build/
|
||||
- name: Build checks (Default configuration)
|
||||
run: |
|
||||
cmake -S test/build-combination -B test/build-combination/build/ \
|
||||
-DTEST_CONFIGURATION=DEFAULT_CONF
|
||||
make -C test/build-combination/build/
|
||||
|
||||
complexity:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup
|
||||
run: sudo apt-get install complexity
|
||||
- name: Install Uncrustify
|
||||
run: sudo apt-get install uncrustify
|
||||
- name: Complexity
|
||||
run: |
|
||||
COMPLEXITY_PARAMS="--scores --threshold=10 --horrid-threshold=283"
|
||||
TEMP_DIR=./temp
|
||||
mkdir -p ${TEMP_DIR}
|
||||
for SOURCE_FILE in source/portable/BufferManagement/*.c source/*.c
|
||||
do
|
||||
TARGET_DIR=${TEMP_DIR}/`dirname ${SOURCE_FILE}`
|
||||
TARGET_FILE=${TARGET_DIR}/`basename ${SOURCE_FILE}`
|
||||
mkdir -p ${TARGET_DIR}
|
||||
uncrustify -c tools/uncrustify.complexity.cfg -f ${SOURCE_FILE} > ${TARGET_FILE}
|
||||
done
|
||||
find ${TEMP_DIR} -iname '*.c' | xargs complexity ${COMPLEXITY_PARAMS}
|
||||
RESULT=$?
|
||||
rm -rf ${TEMP_DIR}
|
||||
if [ "${RESULT}" = "0" ]; then
|
||||
echo "All is good."
|
||||
exit 0
|
||||
else
|
||||
echo "Sources are too complex, rc = " ${RESULT}
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git-secrets:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Checkout awslabs/git-secrets
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: awslabs/git-secrets
|
||||
ref: master
|
||||
path: git-secrets
|
||||
- name: Install git-secrets
|
||||
run: cd git-secrets && sudo make install && cd ..
|
||||
- name: Run git-secrets
|
||||
run: |
|
||||
git-secrets --register-aws
|
||||
git-secrets --scan
|
||||
140
kernel/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/.github/workflows/release.yml
vendored
Normal file
140
kernel/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,140 @@
|
||||
name: Release automation
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
commit_id:
|
||||
description: 'Commit ID to tag and create a release for'
|
||||
required: true
|
||||
version_number:
|
||||
description: 'Release Version Number (Eg, v1.0.0)'
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
tag-commit:
|
||||
name: Tag commit
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
ref: ${{ github.event.inputs.commit_id }}
|
||||
- name: Configure git identity
|
||||
run: |
|
||||
git config --global user.name ${{ github.actor }}
|
||||
git config --global user.email ${{ github.actor }}@users.noreply.github.com
|
||||
- name: create a new branch that references commit id
|
||||
run: git checkout -b ${{ github.event.inputs.version_number }} ${{ github.event.inputs.commit_id }}
|
||||
- name: Generate SBOM
|
||||
uses: FreeRTOS/CI-CD-Github-Actions/sbom-generator@main
|
||||
with:
|
||||
repo_path: ./
|
||||
source_path: ./source
|
||||
- name: commit SBOM file
|
||||
run: |
|
||||
git add .
|
||||
git commit -m 'Update SBOM'
|
||||
git push -u origin ${{ github.event.inputs.version_number }}
|
||||
- name: Tag Commit and Push to remote
|
||||
run: |
|
||||
git tag ${{ github.event.inputs.version_number }} -a -m "FreeRTOS-Plus-TCP Library ${{ github.event.inputs.version_number }}"
|
||||
git push origin --tags
|
||||
- name: Verify tag on remote
|
||||
run: |
|
||||
git tag -d ${{ github.event.inputs.version_number }}
|
||||
git remote update
|
||||
git checkout tags/${{ github.event.inputs.version_number }}
|
||||
git diff ${{ github.event.inputs.commit_id }} tags/${{ github.event.inputs.version_number }}
|
||||
create-zip:
|
||||
needs: tag-commit
|
||||
name: Create ZIP and verify package for release asset.
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Install ZIP tools
|
||||
run: sudo apt-get install zip unzip
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
ref: ${{ github.event.inputs.commit_id }}
|
||||
path: FreeRTOS-Plus-TCP
|
||||
submodules: recursive
|
||||
- name: Checkout disabled submodules
|
||||
run: |
|
||||
cd FreeRTOS-Plus-TCP
|
||||
git submodule update --init --checkout --recursive
|
||||
- name: Create ZIP
|
||||
run: |
|
||||
zip -r FreeRTOS-Plus-TCP-${{ github.event.inputs.version_number }}.zip FreeRTOS-Plus-TCP -x "*.git*"
|
||||
ls ./
|
||||
- name: Validate created ZIP
|
||||
run: |
|
||||
mkdir zip-check
|
||||
mv FreeRTOS-Plus-TCP-${{ github.event.inputs.version_number }}.zip zip-check
|
||||
cd zip-check
|
||||
unzip FreeRTOS-Plus-TCP-${{ github.event.inputs.version_number }}.zip -d FreeRTOS-Plus-TCP-${{ github.event.inputs.version_number }}
|
||||
ls FreeRTOS-Plus-TCP-${{ github.event.inputs.version_number }}
|
||||
diff -r -x "*.git*" FreeRTOS-Plus-TCP-${{ github.event.inputs.version_number }}/FreeRTOS-Plus-TCP/ ../FreeRTOS-Plus-TCP/
|
||||
cd ../
|
||||
- name: Build
|
||||
run: |
|
||||
cd zip-check/FreeRTOS-Plus-TCP-${{ github.event.inputs.version_number }}/FreeRTOS-Plus-TCP
|
||||
sudo apt-get install -y lcov
|
||||
sudo apt-get install unifdef
|
||||
cmake -S test/unit-test -B test/unit-test/build/
|
||||
make -C test/unit-test/build/ all
|
||||
- name: Test
|
||||
run: |
|
||||
cd zip-check/FreeRTOS-Plus-TCP-${{ github.event.inputs.version_number }}/FreeRTOS-Plus-TCP
|
||||
pushd test/unit-test/build/
|
||||
ctest -E system --output-on-failure
|
||||
popd
|
||||
make -C test/unit-test/build/ coverage
|
||||
lcov --list --rc lcov_branch_coverage=1 test/unit-test/build/coverage.info
|
||||
cd ..
|
||||
- name: Create artifact of ZIP
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: FreeRTOS-Plus-TCP-${{ github.event.inputs.version_number }}.zip
|
||||
path: zip-check/FreeRTOS-Plus-TCP-${{ github.event.inputs.version_number }}.zip
|
||||
deploy-doxygen:
|
||||
needs: tag-commit
|
||||
name: Deploy doxygen documentation
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Doxygen generation
|
||||
uses: FreeRTOS/CI-CD-Github-Actions/doxygen-generation@main
|
||||
with:
|
||||
ref: ${{ github.event.inputs.version_number }}
|
||||
add_release: "true"
|
||||
create-release:
|
||||
needs:
|
||||
- create-zip
|
||||
- deploy-doxygen
|
||||
name: Create Release and Upload Release Asset
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Create Release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.event.inputs.version_number }}
|
||||
release_name: ${{ github.event.inputs.version_number }}
|
||||
body: Release ${{ github.event.inputs.version_number }} of the FreeRTOS-Plus-TCP Library.
|
||||
draft: false
|
||||
prerelease: false
|
||||
- name: Download ZIP artifact
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: FreeRTOS-Plus-TCP-${{ github.event.inputs.version_number }}.zip
|
||||
- name: Upload Release Asset
|
||||
id: upload-release-asset
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./FreeRTOS-Plus-TCP-${{ github.event.inputs.version_number }}.zip
|
||||
asset_name: FreeRTOS-Plus-TCP-${{ github.event.inputs.version_number }}.zip
|
||||
asset_content_type: application/zip
|
||||
50
kernel/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/.github/workflows/uncrustify.yml
vendored
Normal file
50
kernel/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/.github/workflows/uncrustify.yml
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
name: Uncrustify the source code
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
Uncrustify:
|
||||
name: Run_Uncrustify
|
||||
if: ${{ github.event.issue.pull_request && github.event.comment.body == '/bot run uncrustify' }}
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- name: Dump GitHub context
|
||||
env:
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- name: get pullrequest url
|
||||
run: |
|
||||
echo ${{ github.event.issue.pull_request.url }}
|
||||
- name: get upstream repo
|
||||
id: upstreamrepo
|
||||
run: |
|
||||
echo "::set-output name=RemoteRepo::$(curl -H "Accept: application/vnd.github.sailor-v-preview+json" --url ${{ github.event.issue.pull_request.url }} | jq '.head.repo.full_name' | sed 's/\"//g')"
|
||||
- name: get upstream branch
|
||||
id: upstreambranch
|
||||
run: |
|
||||
echo "::set-output name=branchname::$(curl -H "Accept: application/vnd.github.sailor-v-preview+json" --url ${{ github.event.issue.pull_request.url }} | jq '.head.ref' | sed 's/\"//g')"
|
||||
- name: echo upstream repo:branch
|
||||
run: |
|
||||
echo ${{ steps.upstreamrepo.outputs.RemoteRepo }}:${{ steps.upstreambranch.outputs.branchname }}
|
||||
- name: Checkout upstream repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
token: ${{ secrets.PAT }}
|
||||
repository: ${{ steps.upstreamrepo.outputs.RemoteRepo }}
|
||||
ref: ${{ steps.upstreambranch.outputs.branchname }}
|
||||
- name: Install Uncrustify
|
||||
run: sudo apt-get install uncrustify
|
||||
- name: Run Uncrustify
|
||||
run: |
|
||||
uncrustify --version
|
||||
find . -iname "*.[hc]" -exec uncrustify -c tools/uncrustify.cfg --no-backup --replace {} +
|
||||
find . -iname "*.[hc]" -exec uncrustify -c tools/uncrustify.cfg --no-backup --replace {} +
|
||||
- name: Push changes to upstream repository
|
||||
run: |
|
||||
git config --global user.name 'GitHub Action'
|
||||
git config --global user.email 'action@github.com'
|
||||
git add -A
|
||||
git commit -m "Uncrustify: triggered by comment."
|
||||
git push
|
||||
Reference in New Issue
Block a user