| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- 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@v3
- - name: Build
- run: |
- sudo apt-get install -y lcov
- cmake -S test -B build/ \
- -G "Unix Makefiles" \
- -DCMAKE_BUILD_TYPE=Debug \
- -DCMAKE_C_FLAGS='--coverage -Wall -Wextra -DNDEBUG'
- make -C build/ all
- - name: Run CTests
- run: ctest --test-dir build -E system --output-on-failure
- - name: Run Coverage
- run: |
- make -C build/ coverage
- declare -a EXCLUDE=("\*test\*" "\*CMakeCCompilerId\*" "\*mocks\*" "\*3rdparty\*")
- echo ${EXCLUDE[@]} | xargs lcov --rc lcov_branch_coverage=1 -r build/coverage.info -o build/coverage.info
- lcov --rc lcov_branch_coverage=1 --list build/coverage.info
- - name: Check Coverage
- uses: FreeRTOS/CI-CD-Github-Actions/coverage-cop@main
- with:
- coverage-file: ./build/coverage.info
- complexity:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- - name: Check complexity
- uses: FreeRTOS/CI-CD-Github-Actions/complexity@main
- with:
- path: ./
- doxygen:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- - name: Run doxygen build
- uses: FreeRTOS/CI-CD-Github-Actions/doxygen@main
- with:
- path: ./
- spell-check:
- runs-on: ubuntu-latest
- steps:
- - name: Clone This Repo
- uses: actions/checkout@v3
- - name: Run spellings check
- uses: FreeRTOS/CI-CD-Github-Actions/spellings@main
- with:
- path: ./
- formatting:
- runs-on: ubuntu-20.04
- steps:
- - uses: actions/checkout@v3
- - name: Check formatting
- uses: FreeRTOS/CI-CD-Github-Actions/formatting@main
- with:
- path: ./
- ssot-check:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout this repo
- uses: actions/checkout@v3
- with:
- path: current
- - name: Checkout coreMQTT
- uses: actions/checkout@v3
- with:
- ref: main
- repository: FreeRTOS/coreMQTT
- path: ssot
- - name: Check transport_interface.h
- run: |
- SSOT_FILE="ssot/source/interface/transport_interface.h"
- CURRENT_FILE="current/source/interface/transport_interface.h"
- diff <(tail -n +3 $SSOT_FILE) <(tail -n +3 $CURRENT_FILE)
- if [ "$?" -ne "0" ]; then
- echo "transport_interface.h differs from coreMQTT."
- exit 1
- else
- exit 0
- fi
- git-secrets:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- - name: Checkout awslabs/git-secrets
- uses: actions/checkout@v3
- 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
- memory_statistics:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: "recursive"
- - name: Install Python3
- uses: actions/setup-python@v3
- with:
- python-version: "3.11.0"
- - name: Measure sizes
- uses: FreeRTOS/CI-CD-Github-Actions/memory_statistics@main
- with:
- config: .github/memory_statistics_config.json
- check_against: docs/doxygen/include/size_table.md
- link-verifier:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- - name: Check Links
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: FreeRTOS/CI-CD-Github-Actions/link-verifier@main
- with:
- path: ./
- verify-manifest:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: true
- fetch-depth: 0
- # At time of writing the gitmodules are set not to pull
- # Even when using fetch submodules. Need to run this command
- # To force it to grab them.
- - name: Perform Recursive Clone
- shell: bash
- run: git submodule update --checkout --init --recursive
- - name: Run manifest verifier
- uses: FreeRTOS/CI-CD-GitHub-Actions/manifest-verifier@main
- with:
- path: ./
- fail-on-incorrect-version: true
- proof_ci:
- if: ${{ github.event.pull_request }}
- runs-on: cbmc_ubuntu-latest_64-core
- steps:
- - name: Set up CBMC runner
- uses: FreeRTOS/CI-CD-Github-Actions/set_up_cbmc_runner@main
- with:
- kissat_tag: latest
- cbmc_version: "5.73.0"
- - run: |
- git submodule update --init --recursive --checkout
- sudo apt-get update
- sudo apt-get install --yes --no-install-recommends gcc-multilib build-essential
- - name: Run CBMC
- uses: FreeRTOS/CI-CD-Github-Actions/run_cbmc@main
- with:
- proofs_dir: test/cbmc/proofs
|