Skip to content

Commit

Permalink
[nrf noup] treewide: Adapt to NCS
Browse files Browse the repository at this point in the history
Adapt original Zephyr repo to NCS, including the manifest and the doc.

Signed-off-by: Carles Cufi <[email protected]>
Signed-off-by: Markus Tacker <[email protected]>
Signed-off-by: Pekka Niskanen <[email protected]>
Signed-off-by: Jamie McCrae <[email protected]>
Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
Signed-off-by: Gerard Marull-Paretas <[email protected]>
  • Loading branch information
carlescufi authored and gmarull committed Oct 14, 2024
1 parent de6af00 commit 0055471
Show file tree
Hide file tree
Showing 12 changed files with 86 additions and 138 deletions.
40 changes: 40 additions & 0 deletions .github/workflows/build-using-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Build and test app in NCS docker container

on:
pull_request:

jobs:
build-and-test-in-docker:
runs-on: ubuntu-22.04
container: ghcr.io/nrfconnect/sdk-nrf-toolchain:v2.7.99
defaults:
run:
# Bash shell is needed to set toolchain related environment variables in docker container
# It is a workaround for GitHub Actions limitation https://github.com/actions/runner/issues/1964
shell: bash
steps:
- name: Checkout repository with example application
uses: actions/checkout@v4
with:
path: example-application

- name: Prepare west project
run: |
west init -l example-application
west update -o=--depth=1 -n
- name: Build firmware
working-directory: example-application
run: |
west twister -T app -v --inline-logs --integration
- name: Store hex files
uses: actions/upload-artifact@v4
with:
name: built-applications
path: example-application/twister-out/**/zephyr/zephyr.hex

- name: Twister Tests
working-directory: example-application
run: |
west twister -T tests -v --inline-logs --integration
49 changes: 0 additions & 49 deletions .github/workflows/build.yml

This file was deleted.

1 change: 1 addition & 0 deletions CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @gmarull @carlescufi
53 changes: 26 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# Zephyr Example Application
# nRF Connect SDK example application

<a href="https://github.com/zephyrproject-rtos/example-application/actions/workflows/build.yml?query=branch%3Amain">
<img src="https://github.com/zephyrproject-rtos/example-application/actions/workflows/build.yml/badge.svg?event=push">
<a href="https://github.com/nrfconnect/ncs-example-application/actions/workflows/build-using-docker.yml?query=branch%3Amain">
<img src="https://github.com/nrfconnect/ncs-example-application/actions/workflows/build-using-docker.yml/badge.svg?event=push">
</a>
<a href="https://github.com/zephyrproject-rtos/example-application/actions/workflows/docs.yml?query=branch%3Amain">
<img src="https://github.com/zephyrproject-rtos/example-application/actions/workflows/docs.yml/badge.svg?event=push">
<a href="https://github.com/nrfconnect/ncs-example-application/actions/workflows/docs.yml?query=branch%3Amain">
<img src="https://github.com/nrfconnect/ncs-example-application/actions/workflows/docs.yml/badge.svg?event=push">
</a>
<a href="https://zephyrproject-rtos.github.io/example-application">
<a href="https://nrfconnect.github.io/ncs-example-application">
<img alt="Documentation" src="https://img.shields.io/badge/documentation-3D578C?logo=sphinx&logoColor=white">
</a>
<a href="https://zephyrproject-rtos.github.io/example-application/doxygen">
<a href="https://nrfconnect.github.io/ncs-example-application/doxygen">
<img alt="API Documentation" src="https://img.shields.io/badge/API-documentation-3D578C?logo=c&logoColor=white">
</a>

This repository contains a Zephyr example application. The main purpose of this
repository is to serve as a reference on how to structure Zephyr-based
applications. Some of the features demonstrated in this example are:
This repository contains an nRF Connect SDK example application. The main
purpose of this repository is to serve as a reference on how to structure nRF Connect
SDK based applications. Some of the features demonstrated in this example are:

- Basic [Zephyr application][app_dev] skeleton
- [Zephyr workspace applications][workspace_app]
Expand All @@ -29,12 +29,12 @@ applications. Some of the features demonstrated in this example are:
- Custom [west extension][west_ext]
- Doxygen and Sphinx documentation boilerplate

This repository is versioned together with the [Zephyr main tree][zephyr]. This
means that every time that Zephyr is tagged, this repository is tagged as well
This repository is versioned together with the [nRF Connect SDK main tree][sdk-nrf]. This
means that every time that nRF Connect SDK is tagged, this repository is tagged as well
with the same version number, and the [manifest](west.yml) entry for `zephyr`
will point to the corresponding Zephyr tag. For example, the `example-application`
v2.6.0 will point to Zephyr v2.6.0. Note that the `main` branch always
points to the development branch of Zephyr, also `main`.
will point to the corresponding nRF Connect SDK tag. For example, the `ncs-example-application`
v2.5.0 will point to nRF Connect SDK v2.5.0. Note that the `main` branch always
points to the development branch of nRF Connect SDK, also `main`.

[app_dev]: https://docs.zephyrproject.org/latest/develop/application/index.html
[workspace_app]: https://docs.zephyrproject.org/latest/develop/application/index.html#zephyr-workspace-app
Expand All @@ -43,25 +43,25 @@ points to the development branch of Zephyr, also `main`.
[board_porting]: https://docs.zephyrproject.org/latest/guides/porting/board_porting.html
[bindings]: https://docs.zephyrproject.org/latest/guides/dts/bindings.html
[drivers]: https://docs.zephyrproject.org/latest/reference/drivers/index.html
[zephyr]: https://github.com/zephyrproject-rtos/zephyr
[sdk-nrf]: https://github.com/nrfconnect/sdk-nrf
[west_ext]: https://docs.zephyrproject.org/latest/develop/west/extensions.html

## Getting Started
## Getting started

Before getting started, make sure you have a proper Zephyr development
environment. Follow the official
[Zephyr Getting Started Guide](https://docs.zephyrproject.org/latest/getting_started/index.html).
Before getting started, make sure you have a proper nRF Connect SDK development environment.
Follow the official
[Installation guide](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/installation/install_ncs.html).

### Initialization

The first step is to initialize the workspace folder (``my-workspace``) where
the ``example-application`` and all Zephyr modules will be cloned. Run the following
the ``ncs-example-application`` and all nRF Connect SDK modules will be cloned. Run the following
command:

```shell
# initialize my-workspace for the example-application (main branch)
west init -m https://github.com/zephyrproject-rtos/example-application --mr main my-workspace
# update Zephyr modules
# initialize my-workspace for the ncs-example-application (main branch)
west init -m https://github.com/nrfconnect/ncs-example-application --mr main my-workspace
# update nRF Connect SDK modules
cd my-workspace
west update
```
Expand All @@ -77,9 +77,8 @@ west build -b $BOARD app

where `$BOARD` is the target board.

You can use the `custom_plank` board found in this
repository. Note that Zephyr sample boards may be used if an
appropriate overlay is provided (see `app/boards`).
You can use the `custom_plank` board found in this repository. Note that you can use
Zephyr and nRF Connect SDK sample boards if an appropriate overlay is provided (see `app/boards`).

A sample debug configuration is also provided. To apply it, run the following
command:
Expand Down
27 changes: 0 additions & 27 deletions app/boards/nucleo_f302r8.overlay

This file was deleted.

4 changes: 2 additions & 2 deletions app/sample.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
# so that you can easily test all of them locally or in CI.
sample:
description: Example application
name: example-application
name: example-application
common:
sysbuild: true
build_only: true
integration_platforms:
- custom_plank
- nucleo_f302r8
tests:
app.default: {}
app.debug:
Expand Down
4 changes: 2 additions & 2 deletions doc/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.

PROJECT_NAME = "Example Application"
PROJECT_NAME = "NCS Example Application"

# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
Expand All @@ -54,7 +54,7 @@ PROJECT_NUMBER = 1.0.0
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF = A Zephyr-based example application
PROJECT_BRIEF = An NCS-based example application

# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
Expand Down
4 changes: 2 additions & 2 deletions doc/_doxygen/main.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Introduction

This is the Doxygen documentation for [example-application].
This is the Doxygen documentation for [ncs-example-application].

[example-application]: https://github.com/zephyrproject-rtos/example-application
[ncs-example-application]: https://github.com/nrfconnect/ncs-example-application
13 changes: 4 additions & 9 deletions doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information

project = 'Example Application'
project = 'NCS Example Application'
copyright = '2024, The Zephyr Community'
author = 'The Zephyr Community'
release = '1.0.0'

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration

extensions = ['sphinx.ext.intersphinx', 'breathe']
extensions = ['breathe']

templates_path = ['_templates']
exclude_patterns = ['_build_sphinx', 'Thumbs.db', '.DS_Store']
Expand All @@ -24,17 +24,12 @@

html_theme = 'alabaster'

# -- Options for Intersphinx -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html

intersphinx_mapping = {'zephyr': ('https://docs.zephyrproject.org/latest/', None)}

## -- Options for Breathe ----------------------------------------------------
# https://breathe.readthedocs.io/en/latest/index.html
#
# WARNING: please, check breathe maintainership status before using this
# extension in production!

breathe_projects = {'example-application': '_build_doxygen/xml'}
breathe_default_project = 'example-application'
breathe_projects = {'ncs-example-application': '_build_doxygen/xml'}
breathe_default_project = 'ncs-example-application'
breathe_default_members = ('members', )
7 changes: 3 additions & 4 deletions doc/index.rst
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
Welcome to Example Application's documentation!
===============================================
Welcome to NCS Example Application's documentation!
===================================================

This is a simple Sphinx documentation setup for ``example-application``.
This is a simple Sphinx documentation setup for ``ncs-example-application``.

.. toctree::
:maxdepth: 2
:caption: Contents

drivers/index
lib/index
zephyr

Indices and tables
==================
Expand Down
5 changes: 0 additions & 5 deletions doc/zephyr.rst

This file was deleted.

17 changes: 6 additions & 11 deletions west.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,12 @@ manifest:
west-commands: scripts/west-commands.yml

remotes:
- name: zephyrproject-rtos
url-base: https://github.com/zephyrproject-rtos
- name: ncs
url-base: https://github.com/nrfconnect

projects:
- name: zephyr
remote: zephyrproject-rtos
- name: nrf
remote: ncs
repo-path: sdk-nrf
revision: main
import:
# By using name-allowlist we can clone only the modules that are
# strictly needed by the application.
name-allowlist:
- cmsis # required by the ARM port
- hal_nordic # required by the custom_plank board (Nordic based)
- hal_stm32 # required by the nucleo_f302r8 board (STM32 based)
import: true

0 comments on commit 0055471

Please sign in to comment.