Skip to content

Commit

Permalink
Add GitHub Action workflow for RTOS2 Validation
Browse files Browse the repository at this point in the history
  • Loading branch information
JonatanAntoni committed Apr 8, 2024
1 parent e6f25c0 commit 89b7df6
Showing 1 changed file with 156 additions and 0 deletions.
156 changes: 156 additions & 0 deletions .github/workflows/cmsis_rv2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@

name: RTOS2 Validation

on:
workflow_dispatch:
pull_request:
push:
branches: [main]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
CMSIS_PACK_ROOT: ${{ github.workspace }}/.packs
ARM_UBL_ACTIVATION_CODE: ${{ secrets.ARM_UBL_ACTIVATION_CODE }}

jobs:
build-and-run:
strategy:
fail-fast: true
matrix:
compiler: [AC6, GCC, Clang]

runs-on: ubuntu-latest

steps:
- name: Checkout CMSIS-FreeRTOS
uses: actions/checkout@v4
with:
path: CMSIS-FreeRTOS
fetch-depth: 0

- name: Checkout CMSIS_6
uses: actions/checkout@v4
with:
repository: ARM-software/CMSIS_6
path: CMSIS_6

- name: Checkout CMSIS-RTOS2_Validation
uses: actions/checkout@v4
with:
repository: ARM-software/CMSIS-RTOS2_Validation
path: CMSIS-RTOS2_Validation

- name: Checkout Cortex_DFP
uses: actions/checkout@v4
with:
repository: ARM-software/Cortex_DFP
path: Cortex_DFP

- name: Setup Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install system packages
run: |
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get install libpython3.9 libtinfo5
- name: Python requirements
run: |
pip install -r ./CMSIS-RTOS2_Validation/Project/requirements.txt
- name: Cache packs
uses: actions/cache@v4
with:
key: packs-${{ github.run_id }}-${{ matrix.compiler }}
restore-keys: |
packs-
path: /home/runner/.cache/arm/packs

- name: Setup vcpkg environment
uses: JonatanAntoni/actions/vcpkg@main
with:
config: ./CMSIS-RTOS2_Validation/Project/vcpkg-configuration.json
cache: "-${{ matrix.compiler }}"

- name: Activate Arm tool license
run: |
if [[ -n "${{ env.ARM_UBL_ACTIVATION_CODE }}" ]]; then
armlm activate --code ${{ env.ARM_UBL_ACTIVATION_CODE }}
else
armlm activate --server https://mdk-preview.keil.arm.com --product KEMDK-COM0
fi
- name: Register local packs
run: |
cpackget init https://www.keil.com/pack/index.pidx
cpackget rm ARM::CMSIS ARM::CMSIS-FreeRTOS ARM::Cortex_DFP || echo "Ok"
cpackget add ./CMSIS_6/ARM.CMSIS.pdsc
cpackget add ./CMSIS-FreeRTOS/ARM.CMSIS-FreeRTOS.pdsc
cpackget add ./Cortex_DFP/ARM.Cortex_DFP.pdsc
cpackget add -an ARM.CMSIS-RTX
- uses: ammaraskar/gcc-problem-matcher@master
if: matrix.compiler == 'GCC'

- name: Build
working-directory: ./CMSIS-RTOS2_Validation/Project
run: |
echo "Build test projects ..."
./build.py --verbose -r FreeRTOS -c ${{ matrix.compiler }} build || echo "::warning::=== Some configurations failed to build! ==="
- name: Execute
if: ${{ env.ARM_UBL_ACTIVATION_CODE }}
working-directory: ./CMSIS-RTOS2_Validation/Project
run: |
echo "Run test projects ..."
./build.py --verbose -r FreeRTOS -c ${{ matrix.compiler }} run || echo "::warning::==== Some configurations failed to run! ==="
- name: Deactivate Arm tool license
if: always()
working-directory: ./CMSIS-RTOS2_Validation/Project
run: |
if [[ -n "${{ env.ARM_UBL_ACTIVATION_CODE }}" ]]; then
armlm deactivate --code ${{ env.ARM_UBL_ACTIVATION_CODE }}
else
armlm deactivate --product KEMDK-COM0
fi
- name: Upload Test Reports
if: ${{ !cancelled() && env.ARM_UBL_ACTIVATION_CODE }}
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.compiler }}
path: ./CMSIS-RTOS2_Validation/Project/*.junit


publish-test-results:
needs: [build-and-run]
runs-on: ubuntu-22.04
if: github.event_name == 'pull_request'

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

steps:
- name: Download Test Reports
if: ${{ env.ARM_UBL_ACTIVATION_CODE }}
uses: actions/download-artifact@v4
with:
path: artifacts

- name: Publish Test Results
if: ${{ env.ARM_UBL_ACTIVATION_CODE && env.GITHUB_TOKEN }}
uses: EnricoMi/publish-unit-test-result-action@v2
with:
commit: ${{ github.event.workflow_run.head_sha }}
event_file: ${{ github.event_path }}
report_individual_runs: true
event_name: ${{ github.event.workflow_run.event }}
files: "artifacts/**/*.junit"

0 comments on commit 89b7df6

Please sign in to comment.