Skip to content

Commit 8cea847

Browse files
authored
Add basic ci (#1)
Perform a basic build of the sample for a couple of boards.
1 parent 0a86a3f commit 8cea847

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

.devcontainer/Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ RUN west init -m https://github.com/nrfconnect/sdk-nrf --mr ${NCS_VERSION} /opt/
1111
west zephyr-export
1212

1313
RUN rm /opt/.bashrc
14-
RUN echo "source /opt/toolchain-env.sh" >> /opt/.bashrc
14+
15+
ENTRYPOINT ["/bin/bash", "-c", "source /opt/toolchain-env.sh && exec \"$@\"", "--"]
16+
CMD ["/bin/bash"]
1517

1618
LABEL org.opencontainers.image.source="https://github.com/memfault/memfault-ncs-quickstart-fw"

.github/workflows/build.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Build NCS Firmware
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
container:
13+
image: ghcr.io/memfault/memfault-ncs-quickstart-fw:2025-10-29
14+
15+
strategy:
16+
matrix:
17+
board:
18+
- nrf52840dk/nrf52840
19+
- nrf54l15dk/nrf54l15/cpuapp
20+
fail-fast: false
21+
22+
steps:
23+
- name: Checkout code
24+
uses: actions/checkout@v4
25+
26+
- name: Apply patches
27+
run: |
28+
git -C /opt/ncs/v3.1.1/nrf apply < patches/peripheral_mds.patch
29+
30+
- name: Build firmware for ${{ matrix.board }}
31+
run: |
32+
. /opt/toolchain-env.sh
33+
cd /opt/ncs/v3.1.1
34+
west build --sysbuild --pristine=always --board ${{ matrix.board }} nrf/samples/bluetooth/peripheral_mds -- -DCONFIG_MEMFAULT_NCS_PROJECT_KEY=\"dummy\"
35+
36+
- name: Create sanitized board name
37+
id: board_name
38+
run: |
39+
BOARD_NAME="${{ matrix.board }}"
40+
SANITIZED_NAME=$(echo "$BOARD_NAME" | sed 's/\//-/g')
41+
echo "sanitized=$SANITIZED_NAME" >> $GITHUB_OUTPUT
42+
43+
- name: Upload build artifacts
44+
uses: actions/upload-artifact@v4
45+
with:
46+
name: firmware-${{ steps.board_name.outputs.sanitized }}-${{ github.sha }}
47+
path: |
48+
/opt/ncs/v3.1.1/build/dfu_application.zip_manifest.json
49+
/opt/ncs/v3.1.1/build/dfu_application.zip
50+
/opt/ncs/v3.1.1/build/merged.hex
51+
/opt/ncs/v3.1.1/build/peripheral_mds/zephyr/zephyr.elf
52+
retention-days: 30

0 commit comments

Comments
 (0)