|
4 | 4 |
|
5 | 5 | # AVH CI Template |
6 | 6 |
|
7 | | -This repository contains a **CI Template for unit test automation** that uses [GitHub Actions](https://github.com/features/actions) on a [GitHub-hosted runner](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners) with an Ubuntu Linux system. A report is optionally generated using the [Unity test framework](https://github.com/MDK-Packs/Unity). |
| 7 | +[<img src="https://github.com/Arm-Examples/.github/blob/main/profile/cicd_intro.png" alt="Introduction to CI/CD test automation" width="317" height="193" align="left">](https://developer.arm.com/-/media/arm%20developer%20community/videos/tools%20and%20software/keil%20mdk/cicd_webinar.mp4?#t=04:15 |
| 8 | + "Introduction to CI/CD test automation") |
8 | 9 |
|
9 | | -The tests run on [**Arm Virtual Hardware - Fixed Virtual Platforms (AVH-FVP)**](https://arm-software.github.io/AVH/main/simulation/html/index.html) which are simulation models that implement a Cortex-M, Corstone, or Cortex-M/Ethos-U device sub-systems. These models are designed for software verification and testing. It allows simulation-based test automation of various software workloads, including unit tests, integration tests, and fault injection. |
| 10 | +This repository contains a **CI template for unit test automation** that uses [GitHub Actions](https://github.com/features/actions) on [GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners) with Ubuntu Linux. A report can optionally be generated using the [Unity test framework](https://github.com/MDK-Packs/Unity). |
10 | 11 |
|
11 | | -The tools used in this **CI Template** are part of [Keil MDK Version 6](https://www.keil.arm.com/keil-mdk/). For evaluation purposes the *MDK - Community Edition* can be used, but commericial usage requires a license of the *MDK - Professional Edition*. |
12 | | -The tool installation is managed with [vcpkg](https://www.keil.arm.com/artifacts/) using a [configuration file](./vcpkg-configuration.json) that ensures consistent setup on Desktop computers and the CI system. |
| 12 | +The tests run on [**Fixed Virtual Platforms (FVP) simulation models**](https://arm-software.github.io/AVH/main/simulation/html/index.html), which implement Cortex-M, Corstone, or Cortex-M/Ethos-U device subsystems. These simulation models are designed for software verification and testing. They enable simulation-based test automation for various software workloads, including unit tests, integration tests, and fault injection. |
13 | 13 |
|
14 | | - |
| 14 | +The tools used in this **CI template** are part of [Keil MDK Version 6](https://www.keil.arm.com/keil-mdk/). For evaluation purposes, the *MDK - Community Edition* can be used, but commercial usage requires a license for the *MDK - Professional Edition*. |
| 15 | +Tool installation is managed with [vcpkg](https://www.keil.arm.com/artifacts/) using a [configuration file](./vcpkg-configuration.json), which helps ensure a consistent setup on desktop computers and in CI. |
15 | 16 |
|
16 | | -## Usage |
| 17 | +<br clear="left"/> |
| 18 | + |
| 19 | + |
17 | 20 |
|
18 | | -This is a template repository that can be used as starting point for validation projects. Click **Use this template - Create a new repository** to start your own CI test project. |
| 21 | +## Usage |
19 | 22 |
|
20 | | -> Login with your GitHub account to enable the button **Use this template - Create a new repository**. |
| 23 | +This template repository can be used as a starting point for validation projects. Click **Use this template - Create a new repository** to start your own CI test project. |
| 24 | +> [!IMPORTANT] |
| 25 | +> Log in with your GitHub account to enable the **Use this template - Create a new repository** button. |
21 | 26 |
|
22 | | -The [Project](Project) tests a single function (*my_sum*) using the [Unity test framework](https://github.com/MDK-Packs/Unity) that is available as [CMSIS software pack](https://www.keil.arm.com/packs/unity-arm-packs). The initial configuration contains a "test case error" that exemplifies the Unity test reporting. |
| 27 | +The [Project](Project) tests a single function (*my_sum*) using the [Unity test framework](https://github.com/MDK-Packs/Unity), which is available as a [CMSIS software pack](https://www.keil.arm.com/packs/unity-arm-packs). Users can modify the test cases to simulate an error and observe Unity test reporting. |
23 | 28 |
|
24 | | -> This video contains a demo: [Using CMSIS-Toolbox and Keil MDK v6 in CI/CD Workflows](https://on-demand.arm.com/flow/arm/devhub/sessionCatalog/page/pubSessCatalog/session/1718006126984001DUAn) |
| 29 | +> [!TIP] |
| 30 | +> This video demonstrates the workflow: [Using CMSIS-Toolbox and Keil MDK v6 in CI/CD Workflows](https://developer.arm.com/-/media/arm%20developer%20community/videos/tools%20and%20software/keil%20mdk/cicd_webinar.mp4?#t=04:15 "Using CMSIS-Toolbox and Keil MDK v6 in CI/CD Workflows") |
25 | 31 |
|
26 | 32 | ### Repository Structure |
27 | 33 |
|
28 | 34 | Directory | Content |
29 | 35 | :-----------------------------|---------- |
30 | | -[.github/workflows](.github/workflows) | Workflow YML files that gets you started with GitHub Actions for CMSIS projects. |
| 36 | +[.github/workflows](.github/workflows) | Workflow YML files that get you started with GitHub Actions for CMSIS projects. |
31 | 37 | [Project](Project) | A simple unit test application in [*csolution project format*](https://github.com/Open-CMSIS-Pack/cmsis-toolbox). |
32 | 38 |
|
33 | 39 | ### GitHub |
34 | 40 |
|
35 | | -With GitHub Actions two workflows are available: |
| 41 | +With GitHub Actions, two workflows are available: |
36 | 42 |
|
37 | 43 | - [basic.yml](.github/workflows/basic.yml) compiles and runs the application. |
38 | 44 | - [basic_w_report.yml](.github/workflows/basic_w_report.yml) compiles and runs the application; then generates a test report using [phoenix-actions/test-reporting](https://github.com/phoenix-actions/test-reporting). |
39 | 45 |
|
40 | | -Use in the GitHub web interface the [*Actions*](/../../actions) view to execute the *CI test run* and get *Test results*. |
| 46 | +Use the [*Actions*](/../../actions) view in the GitHub web interface to execute the *CI test run* and review *test results*. |
41 | 47 |
|
42 | 48 | ### Desktop |
43 | 49 |
|
44 | 50 | **Prerequisite:** |
45 | 51 |
|
46 | 52 | - Install VS Code with [Arm Keil Studio Pack extensions](https://marketplace.visualstudio.com/items?itemName=Arm.keil-studio-pack). |
47 | | -- Click **Use this template - Create a new repository** to create you own CI test flow in your GitHub account. |
| 53 | +- Click **Use this template - Create a new repository** to create your own CI test flow in your GitHub account. |
48 | 54 |
|
49 | 55 | **Build:** |
50 | 56 |
|
51 | | -In VS Code use: |
| 57 | +In VS Code: |
52 | 58 |
|
53 | | -- Open *Source Control Activity Bar* and use *Clone Repository* to get the application on your local computer. |
| 59 | +- Open the *Source Control Activity Bar* and use *Clone Repository* to get the application on your local computer. |
54 | 60 | - Open *CMSIS Activity Bar* and *Build* the application. |
55 | 61 |
|
56 | | -> **Note:** |
| 62 | +> [!NOTE] |
57 | 63 | > |
58 | | -> When you open the project for the first time, the *Arm Tools Environment* managed with [vcpkg](https://www.keil.arm.com/artifacts/) gets installed which may take some minutes. |
| 64 | +> When you open the project for the first time, the *Arm Tools Environment* managed with [vcpkg](https://www.keil.arm.com/artifacts/) is installed, which may take a few minutes. |
59 | 65 |
|
60 | 66 | **Run:** |
61 | 67 |
|
62 | | -In VS Code open the *CMSIS Activity Bar* and *Run* the application. |
| 68 | +In VS Code, open the *CMSIS Activity Bar* and *Run* the application. |
63 | 69 |
|
64 | 70 | **Debug:** |
65 | 71 |
|
66 | | -In VS Code open the *CMSIS Activity Bar* and *Debug* the application. |
| 72 | +In VS Code, open the *CMSIS Activity Bar* and *Debug* the application. |
67 | 73 |
|
68 | 74 | ## More CI Examples |
69 | 75 |
|
70 | | -Arm is using CI validation tests for many projects. The list below are only a few examples that may be used to derive own CI test projects. |
| 76 | +Arm uses CI validation tests like this for many projects. Most CMSIS software components are validated with FVP simulation, as shown in the table below. You can explore [other projects with topic "cicd"](https://github.com/search?q=topic%3Acicd+org%3AArm-Examples+fork%3Atrue&type=repositories) or read **[CI/CD](https://github.com/Arm-Examples/.github/blob/main/profile/CICD.md)** to learn more. While this test uses [FVP simulation models](https://arm-software.github.io/AVH/main/simulation/html/index.html), you can also run tests on [hardware targets using a self-hosted runner](https://github.com/Arm-Examples/.github/blob/main/profile/RPI_GH_Runner.md). |
71 | 77 |
|
72 | 78 | Resource | Description |
73 | 79 | :------------------|:------------------ |
74 | | -[AVH-Hello](https://github.com/Arm-Examples/AVH-Hello) | Build and execution test for "Hello World" example using a GitHub Action matrix to target all Cortex-M processors, Arm Compiler or GCC, and AVH simulation. |
75 | 80 | [CMSIS Version 6](https://github.com/ARM-software/CMSIS_6/actions) | Runs a CMSIS-Core validation test across the supported processors using multiple compilers. |
76 | 81 | [RTOS2 Validation](https://github.com/ARM-software/CMSIS-RTX/actions) | Runs the CMSIS-RTOS2 validation across Keil RTX using source and library variants. |
77 | 82 | [STM32H743I-EVAL_BSP](https://github.com/Open-CMSIS-Pack/STM32H743I-EVAL_BSP) | Build test of a Board Support Pack (BSP) with MDK-Middleware [Reference Applications](https://github.com/Open-CMSIS-Pack/cmsis-toolbox/blob/main/docs/ReferenceApplications.md) using Arm Compiler or GCC. The artifacts store the various example projects for testing on the hardware board. |
78 | | -[TFL Micro Speech](https://github.com/arm-software/AVH-TFLmicrospeech) | This example project shows the Virtual Streaming Interface with Audio input and uses [software layers](https://github.com/Open-CMSIS-Pack/cmsis-toolbox/blob/main/docs/build-overview.md#software-layers) for retargeting. |
79 | 83 |
|
80 | 84 | ## Other Developer Resources |
81 | 85 |
|
82 | 86 | Resource | Description |
83 | 87 | :------------------|:------------------ |
84 | | -[Documentation](https://arm-software.github.io/AVH/main/overview/html/index.html) | Is a comprehensive documentation about Arm Virtual Hardware. |
| 88 | +[Documentation](https://arm-software.github.io/AVH/main/overview/html/index.html) | Comprehensive documentation for FVP simulation models. |
85 | 89 | [Support Forum](https://community.arm.com/support-forums/f/arm-virtual-hardware-targets-forum) | Arm Virtual Hardware is supported via a forum. Your feedback will influence future roadmap. |
86 | 90 | [AVH-MLOps](https://github.com/ARM-software/AVH-MLOps) | Shows the setup of a Docker container with foundation tools for CI and MLOps systems. |
87 | | -[Marketing Overview](https://www.arm.com/virtual-hardware) | Gives you a top-level marketing message. |
88 | | - |
89 | | -## Related Webinar Recordings |
90 | 91 |
|
91 | | -- [MDK v6 Technical Deep Dive](https://on-demand.arm.com/flow/arm/devhub/sessionCatalog/page/pubSessCatalog/session/1713958336497001CQIR) |
92 | | -- [CLI builds using CMSIS-Toolbox](https://on-demand.arm.com/flow/arm/devhub/sessionCatalog/page/pubSessCatalog/session/1708432622207001feYV) |
93 | | -- [Using CMSIS-Toolbox and Keil MDK v6 in CI/CD Workflows](https://on-demand.arm.com/flow/arm/devhub/sessionCatalog/page/pubSessCatalog/session/1718006126984001DUAn) |
94 | | -- [Using CMSIS-View and CMSIS-Compiler](https://on-demand.arm.com/flow/arm/devhub/sessionCatalog/page/pubSessCatalog/session/1706872120089001ictY) |
95 | | -- [Data streaming with CMSIS-Stream and SDS](https://on-demand.arm.com/flow/arm/devhub/sessionCatalog/page/pubSessCatalog/session/1709221848113001nOU5) |
0 commit comments