[pull] main from FreeRTOS:main #161
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI Checks | |
env: | |
bashPass: \033[32;1mPASSED - | |
bashInfo: \033[33;1mINFO - | |
bashFail: \033[31;1mFAILED - | |
bashEnd: \033[0m | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
git-secrets: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- 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 | |
formatting: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Check Formatting of Common Demo Files | |
uses: FreeRTOS/CI-CD-Github-Actions/formatting@main | |
with: | |
path: FreeRTOS/Demo/Common | |
exclude-dirs: ethernet, drivers | |
- name: Check Formatting | |
uses: FreeRTOS/CI-CD-Github-Actions/formatting@main | |
with: | |
exclude-dirs: ethernet, drivers, FreeRTOS/Demo | |
spell-check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Parent Repo | |
uses: actions/checkout@v3 | |
- name: Check Spelling of Common Demo Files | |
uses: FreeRTOS/CI-CD-GitHub-Actions/spellings@main | |
with: | |
path: FreeRTOS/Demo/Common | |
exclude-dirs: ethernet, drivers | |
- name: Check Spelling | |
uses: FreeRTOS/CI-CD-GitHub-Actions/spellings@main | |
with: | |
exclude-dirs: ethernet, drivers, FreeRTOS/Demo | |
doxygen: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
path: freertos | |
- name: Install Python3 | |
uses: actions/setup-python@v3 | |
- name: Download tag dependency of coreMQTT-Agent | |
run: | | |
# We don't need to generate the coreMQTT docs, we only need the tag file. | |
# Therefore, we can just download it. | |
mkdir -p freertos/FreeRTOS-Plus/Source/Application-Protocols/coreMQTT-Agent/source/dependency/coreMQTT/docs/doxygen/output | |
wget -O freertos/FreeRTOS-Plus/Source/Application-Protocols/coreMQTT-Agent/source/dependency/coreMQTT/docs/doxygen/output/mqtt.tag \ | |
"https://freertos.github.io/coreMQTT/main/mqtt.tag" | |
- name: Generate doxygen ZIP | |
uses: FreeRTOS/CI-CD-Github-Actions/doxygen@main | |
with: | |
path: ./freertos | |
# List of directories containing libraries whose doxygen output will be generated. | |
libs_parent_dir_path: FreeRTOS-Plus/Source,FreeRTOS-Plus/Source/AWS,FreeRTOS-Plus/Source/Application-Protocols,FreeRTOS-Plus/Source/Utilities | |
generate_zip: true | |
- name: Upload doxygen artifact if main branch | |
if: success() && ( github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release-candidate' ) | |
env: | |
GIT_SHA: | |
uses: actions/upload-artifact@v4 | |
with: | |
name: doxygen.zip-${{ github.sha }} | |
path: ./freertos/doxygen.zip | |
retention-days: 2 | |
verify-manifest: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Run manifest verifier | |
uses: FreeRTOS/CI-CD-GitHub-Actions/manifest-verifier@v2 | |
with: | |
path: ./ | |
fail-on-incorrect-version: true | |
memory-statistics: | |
runs-on: ubuntu-latest | |
env: | |
ARM_GCC_TOOLCHAIN_URL: "https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2?revision=05382cca-1721-44e1-ae19-1e7c3dc96118&la=en&hash=D7C9D18FCA2DD9F894FD9F3C3DC9228498FA281A" | |
steps: | |
- name: Install ARM GCC | |
run: | |
wget -qO- "${{ env.ARM_GCC_TOOLCHAIN_URL }}" | sudo tar | |
--strip-components=1 -xj -C /usr/local | |
- name: Clone FreeRTOS Repository with submodules | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Clone mbedTLS submodule from corePKCS11 | |
run: | |
git submodule update --init --recursive --checkout -- | |
FreeRTOS-Plus/Source/corePKCS11 | |
- name: Clone CI-CD-Github-Actions repository | |
uses: actions/checkout@v3 | |
with: | |
repository: FreeRTOS/CI-CD-GitHub-Actions | |
path: tools | |
- name: Run script to generate JSON memory statistics | |
run: | |
tools/memory_statistics/memory_statistics.py --json_report | |
--config tools/memory_statistics/paths.json --output | |
freertos_lts_memory_estimates.json | |
- name: | |
Upload memory size report as artifact (for main and | |
release-candidate ONLY) | |
if: success() && ( github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release-candidate' ) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: freertos-memory-estimates | |
path: ./freertos_lts_memory_estimates.json | |
retention-days: 2 | |
proof_ci: | |
if: ${{ github.event.pull_request }} || ${{ github.event.workflow }} | |
runs-on: cbmc_ubuntu-latest_16-core | |
steps: | |
- uses: actions/checkout@v3 | |
- env: | |
stepName: Install Dependencies | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group:: ${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
git submodule update --init --checkout --recursive --depth 1 | |
sudo apt-get update -y | |
sudo apt-get install --yes --no-install-recommends gcc-multilib | |
echo -e "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{env.stepName}} ${{ env.bashEnd }}" | |
- name: Set up CBMC runner | |
uses: FreeRTOS/CI-CD-Github-Actions/set_up_cbmc_runner@main | |
with: | |
cbmc_version: "5.95.1" | |
- name: Run CBMC | |
uses: FreeRTOS/CI-CD-Github-Actions/run_cbmc@main | |
with: | |
proofs_dir: FreeRTOS/Test/CBMC/proofs |