Skip to content

Merge branch 'main' into main_review #21

Merge branch 'main' into main_review

Merge branch 'main' into main_review #21

Workflow file for this run

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/lexicon.txt
if [ "$?" = "0" ]; then
exit 0
else
exit 1
fi
formatting:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Check formatting
uses: FreeRTOS/CI-CD-Github-Actions/formatting@main
with:
path: ./
doxygen:
runs-on: ubuntu-latest
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: Build Install Dependencies
run: |
sudo apt-get install -y libpcap-dev
- name: Build checks (Enable all functionalities)
run: |
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL
cmake --build build --target freertos_plus_tcp_build_test
- name: Build checks (Enable all functionalities IPv4)
run: |
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV4
cmake --build build --target clean
cmake --build build --target freertos_plus_tcp_build_test
- name: Build checks (Enable all functionalities IPv6)
run: |
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV6
cmake --build build --target freertos_plus_tcp_build_test
- name: Build checks (Enable all functionalities IPv4 IPv6)
run: |
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV4_IPV6
cmake --build build --target clean
cmake --build build --target freertos_plus_tcp_build_test
- name: Build checks (Enable all functionalities IPv4 TCP)
run: |
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV4_TCP
cmake --build build --target clean
cmake --build build --target freertos_plus_tcp_build_test
- name: Build checks (Enable all functionalities IPv6 TCP)
run: |
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV6_TCP
cmake --build build --target freertos_plus_tcp_build_test
- name: Build checks (Disable all functionalities)
run: |
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=DISABLE_ALL
cmake --build build --target clean
cmake --build build --target freertos_plus_tcp_build_test
- name: Build checks (Default configuration)
run: |
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=DEFAULT_CONF
cmake --build build --target clean
cmake --build build --target freertos_plus_tcp_build_test
- name: Build checks (Header Self Contain)
run: |
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=HEADER_SELF_CONTAIN
cmake --build build --target clean
cmake --build build --target freertos_plus_tcp_build_test_FreeRTOS_DHCP
cmake --build build --target freertos_plus_tcp_build_test_FreeRTOS_DNS
cmake --build build --target freertos_plus_tcp_build_test_FreeRTOS_IP
cmake --build build --target freertos_plus_tcp_build_test_FreeRTOS_ND
cmake --build build --target freertos_plus_tcp_build_test_FreeRTOS_Routing
cmake --build build --target freertos_plus_tcp_build_test_FreeRTOS_Sockets
cmake --build build --target freertos_plus_tcp_build_test_NetworkBufferManagement
cmake --build build --target freertos_plus_tcp_build_test_NetworkInterface
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
proof_ci:
runs-on: cbmc_ubuntu-latest_16-core
steps:
- name: Set up CBMC runner
uses: FreeRTOS/CI-CD-Github-Actions/set_up_cbmc_runner@main
with:
cbmc_version: "5.61.0"
- run: |
git submodule update --init --checkout --recursive
sudo apt-get update
sudo apt-get install --yes --no-install-recommends gcc-multilib
- name: Run CBMC
uses: FreeRTOS/CI-CD-Github-Actions/run_cbmc@main
with:
proofs_dir: test/cbmc/proofs