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.org/Documentation/api-ref/coreMQTT/docs/doxygen/output/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@v2 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@v2 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 - name: Run CBMC uses: FreeRTOS/CI-CD-Github-Actions/run_cbmc@main with: proofs_dir: FreeRTOS/Test/CBMC/proofs