IRNAS template for a GitHub repository. It comes with a Zephyr group of CI workflows for release automation.
- Provide a concise and accurate description of your project in the GitHub "description" field.
- Provide a concise and accurate description of your project in this
README.mdfile, replace the title. - Ensure that your project follows repository naming scheme.
- Turn on
gitlinttool by runninggitlint install-hook. If you do not have it yet, follow instructions here. - Select the version of NCS in the
west.yamlfile, check the below section for specifics. - Provide repository setup instructions, use template in Setup section
below. Replace
<repo-name>,<board_name>, and<build_type>as appropriate for your project. - Set required GitHub Actions secrets. You can also contact person in charge for this to do it for you.
- Create a new project on the CodeChecker server. You can also contact person in charge to do it for you.
- (Optional) Include the
twister-rpi.yamlGitHub Actions workflow for the on-target testing. To do this copy the workflow from the Twister RPi workflow into this project and see it's README.md in this repo for more information on the requirements and setup. - As a final step delete this checklist and commit changes.
If you do not already have them you will need to:
Then follow these steps:
east init -m https://github.com/IRNAS/<repo-name> <repo-name>
cd <repo-name>/project
# Set up east globally (this only needs to be done once on each machine)
east install nrfutil-toolchain-manager
# Install toolchain for the version of NCS used in this project
east install toolchain
# Run `west update` via east to set up west modules in the repository
east updateTo build the application firmware:
cd app
east build -b <board_name> -u <build_type>To flash the firmware:
east flashTo view RTT logs:
# Run in first terminal window
east util connect
# Run in second, new terminal window
east util rttThe manifest file (west.yaml) that comes with this template by default only
allows certain modules from Nordic's sdk-nrf and sdk-zephyr repositories,
while ignoring/blocking others.
This means that a setup on the new machine and in CI is faster as the
west update command does not clone all modules from the mentioned repositories
but only the ones that are needed.
Manifest file only allows modules that are commonly used by IRNAS, however this
can be easily changed by uncommenting the required modules and running
west update.
IMPORTANT: Such improvements do not come with some tradeoffs, there are now two things that a developer must take note of.
If the application source code includes some headers from blocked/missing
modules or if included headers use blocked/missing modules you will get an error
that will complain about missing header files. In that case, you have to go to
manifest file, find commented module, run west update, return to the app
folder, delete build folder and build again.
Whenever you want to update the version of sdk-nrf (also know simply as NCS)
you need to keep one general thing in mind: you need to manually keep revisions
of sdk-nrf and sdk-zephyr projects, as well as their imports in sync.
- Open
west.ymlfile insdk-nrfrepository (link). Make sure that you select correct tag from selection from top-left dropdown menu. - Check what repos are under
sdk-zepyhrproject'sname-allowlist, those should match the repos inwest.yamlof your project (and this template), undersdk-zepyhrproject'sname-allowlist. Most of the time they should be commented out, but depends. - Check what other repositories appear under
sdk-zepyhrproject as standalone projects, they start appearing around line 100, afterNCS repositoriescomment. This projects should match the repos inwest.yamlof your project (and this template), undersdk-nrfproject'sname-allowlist. Most of the time they should be commented out, but again, this depends.
When a new sdk-nrf version is released, some new repos as NCS repositories
might appear or be moved into sdk-zephyr.
After any change to the west.yaml do not forget to run west update.