name: CoreValidation on: workflow_dispatch: pull_request: paths: - .github/workflows/corevalidation.yml - .github/workflows/corevalidation-report.yml - CMSIS/Core/Include/**/* - CMSIS/Core/Source/**/* - CMSIS/CoreValidation/**/* push: branches: [main] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build-and-run: strategy: fail-fast: true matrix: compiler: [AC6, GCC, Clang] runs-on: ubuntu-latest env: ARM_UBL_ACTIVATION_CODE: ${{ secrets.ARM_UBL_ACTIVATION_CODE }} steps: - run: | sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get install libpython3.9 - uses: actions/checkout@v4 - working-directory: /home/runner env: GH_TOKEN: ${{ github.token }} run: | if [ -d Cortex_DFP ]; then cd Cortex_DFP git fetch origin main git checkout -f origin/main else gh repo clone ARM-software/Cortex_DFP fi - uses: actions/setup-python@v5 with: python-version: '3.10' cache: 'pip' - name: Python requirements run: | pip install -r ./CMSIS/CoreValidation/Project/requirements.txt - name: Install LLVM/Clang dependencies if: matrix.compiler == 'Clang' working-directory: /home/runner run: | sudo apt-get update sudo apt-get install libtinfo5 - name: Activate vcpkg environment uses: ARM-software/cmsis-actions/vcpkg@v1 with: config: ./CMSIS/CoreValidation/Project/vcpkg-configuration.json - name: Activate Arm tool license uses: ARM-software/cmsis-actions/armlm@v1 with: code: "${{ env.ARM_UBL_ACTIVATION_CODE }}" - name: Initialize CodeQL if: matrix.compiler == 'GCC' uses: github/codeql-action/init@v3 with: languages: cpp queries: security-and-quality - uses: ammaraskar/gcc-problem-matcher@master if: matrix.compiler == 'Clang' || matrix.compiler == 'GCC' - name: Build working-directory: ./CMSIS/CoreValidation/Project run: | echo "Register local Cortex_DFP pack" cpackget add /home/runner/Cortex_DFP/ARM.Cortex_DFP.pdsc echo "Build test projects ..." ./build.py --verbose -c ${{ matrix.compiler }} build || echo "::warning::=== Some configurations failed to build! ===" - name: Perform CodeQL Analysis if: ${{ !cancelled() && matrix.compiler == 'GCC' }} uses: github/codeql-action/analyze@v3 - name: Execute working-directory: ./CMSIS/CoreValidation/Project run: | echo "Run test projects ..." ./build.py --verbose -c ${{ matrix.compiler }} -d "CM*" run || echo "::warning::==== Some configurations failed to run! ===" - name: Archive Test Reports if: ${{ !cancelled() }} uses: actions/upload-artifact@v4 with: name: test-results-${{ matrix.compiler }} path: ./CMSIS/CoreValidation/Project/build/*.junit event-file: needs: [build-and-run] runs-on: ubuntu-latest steps: - name: Archive event file if: ${{ !cancelled() }} uses: actions/upload-artifact@v4 with: name: EventFile path: ${{ github.event_path }}