You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
178 lines
6.0 KiB
YAML
178 lines
6.0 KiB
YAML
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, FreeRTOS-Plus/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
|