Silicon Labs firmware build #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Silicon Labs firmware build | |
on: | |
push: | |
paths: | |
- Dockerfile | |
- .github/workflows/build.yaml | |
- .github/workflows/silabs-firmware-build.yaml | |
# - EmberZNet/** | |
# - OpenThreadRCP/** | |
# - RCPMultiPAN/** | |
- ZWave/** | |
branches: | |
- main | |
tags: | |
- "*" | |
workflow_dispatch: {} | |
env: | |
sdk_version: 4.3.2 | |
jobs: | |
build-container: | |
name: Create build container image | |
runs-on: ubuntu-latest | |
permissions: | |
packages: write | |
outputs: | |
sdk_version: ${{ env.sdk_version }} | |
image_name: ghcr.io/${{ steps.lower.outputs.repository_owner }}/silabs-firmware-builder:${{ env.sdk_version }} | |
steps: | |
- name: Repository owner lowercase | |
id: lower | |
run: | | |
echo "repository_owner=$(echo $GITHUB_REPOSITORY_OWNER | tr [:upper:] [:lower:])" >> $GITHUB_OUTPUT | |
- uses: actions/[email protected] | |
- name: Log in to the GitHub container registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
uses: docker/[email protected] | |
- name: Build and Push | |
uses: docker/[email protected] | |
with: | |
context: . | |
file: Dockerfile | |
tags: ghcr.io/${{ steps.lower.outputs.repository_owner }}/silabs-firmware-builder:${{ env.sdk_version }} | |
cache-from: ghcr.io/${{ steps.lower.outputs.repository_owner }}/silabs-firmware-builder:cache-${{ env.sdk_version }} | |
cache-to: ghcr.io/${{ steps.lower.outputs.repository_owner }}/silabs-firmware-builder:cache-${{ env.sdk_version }} | |
push: true | |
build-args: "GECKO_SDK_VERSION=v${{ env.sdk_version }}" | |
# ezsp-firmware-build: | |
# name: EmberZNet NCP | |
# needs: build-container | |
# strategy: | |
# matrix: | |
# include: | |
# - target: yellow | |
# device: MGM210PA32JIA | |
# components: simple_led:board_activity,zigbee_token_interface | |
# patchpath: "EmberZNet/Yellow" | |
# - target: skyconnect | |
# device: EFR32MG21A020F512IM32 | |
# components: zigbee_token_interface | |
# patchpath: "EmberZNet/SkyConnect" | |
# uses: ./.github/workflows/silabs-firmware-build.yaml | |
# with: | |
# image_name: ${{ needs.build-container.outputs.image_name }} | |
# firmware_name: ncp-uart-hw-${{ matrix.target }} | |
# project_file: "/gecko_sdk/protocol/zigbee/app/ncp/sample-app/ncp-uart-hw/ncp-uart-hw.slcp" | |
# project_name: "ncp-uart-hw" | |
# device: ${{ matrix.device }} | |
# components: ${{ matrix.components }} | |
# configuration: | | |
# SL_IOSTREAM_USART_VCOM_RX_BUFFER_SIZE:64, | |
# EMBER_APS_UNICAST_MESSAGE_COUNT:20, | |
# EMBER_NEIGHBOR_TABLE_SIZE:26, | |
# EMBER_SOURCE_ROUTE_TABLE_SIZE:200, | |
# patchpath: ${{ matrix.patchpath }} | |
# extra_c_defs: "'-DEMBER_ADDRESS_TABLE_SIZE=16' '-DEMBER_MULTICAST_TABLE_SIZE=16'" | |
# sdk_version: ${{ needs.build-container.outputs.sdk_version }} | |
# metadata_fw_type: "ncp-uart-hw" | |
# baudrate: 115200 | |
# metadata_extra: "{ \"ezsp_version\": \"7.3.2.0\" }" | |
# rcp-multi-pan-firmware-build: | |
# name: RCP Multi-PAN | |
# needs: build-container | |
# strategy: | |
# matrix: | |
# include: | |
# - target: yellow | |
# device: MGM210PA32JIA | |
# components: simple_led:board_activity,cpc_security_secondary_none | |
# patchpath: "RCPMultiPAN/Yellow" | |
# - target: skyconnect | |
# device: EFR32MG21A020F512IM32 | |
# components: cpc_security_secondary_none | |
# patchpath: "RCPMultiPAN/SkyConnect" | |
# uses: ./.github/workflows/silabs-firmware-build.yaml | |
# with: | |
# image_name: ${{ needs.build-container.outputs.image_name }} | |
# firmware_name: rcp-uart-802154-${{ matrix.target }} | |
# project_file: "/gecko_sdk/protocol/openthread/sample-apps/ot-ncp/rcp-uart-802154.slcp" | |
# project_name: "rcp-uart-802154" | |
# device: ${{ matrix.device }} | |
# components: ${{ matrix.components }} | |
# patchpath: ${{ matrix.patchpath }} | |
# sdk_version: ${{ needs.build-container.outputs.sdk_version }} | |
# metadata_fw_type: "rcp-uart-802154" | |
# baudrate: 460800 | |
# ot-rcp-firmware-build: | |
# name: OpenThread RCP | |
# needs: build-container | |
# strategy: | |
# matrix: | |
# include: | |
# - target: yellow | |
# device: MGM210PA32JIA | |
# components: simple_led:board_activity,bootloader_interface | |
# patchpath: "OpenThreadRCP/Yellow" | |
# - target: skyconnect | |
# device: EFR32MG21A020F512IM32 | |
# components: bootloader_interface | |
# patchpath: "OpenThreadRCP/SkyConnect" | |
# uses: ./.github/workflows/silabs-firmware-build.yaml | |
# with: | |
# image_name: ${{ needs.build-container.outputs.image_name }} | |
# firmware_name: ot-rcp-${{ matrix.target }} | |
# project_file: "/gecko_sdk/protocol/openthread/sample-apps/ot-ncp/ot-rcp.slcp" | |
# project_name: "ot-rcp" | |
# device: ${{ matrix.device }} | |
# components: ${{ matrix.components }} | |
# patchpath: ${{ matrix.patchpath }} | |
# sdkpatchpath: "OpenThreadRCP/GeckoSDK" | |
# extra_c_defs: "'-DOPENTHREAD_CONFIG_NCP_REBOOT_BOOTLOADER_ENABLE=1'" | |
# sdk_version: ${{ needs.build-container.outputs.sdk_version }} | |
# metadata_fw_type: "ot-rcp" | |
# baudrate: 460800 | |
# metadata_extra: "{ \"ot_rcp_version\": \"SL-OPENTHREAD/2.3.2.0_GitHub-e6df00dd6\" }" | |
zwave-firmware-build: | |
name: Z-Wave Serial API Controller | |
needs: build-container | |
strategy: | |
matrix: | |
include: | |
- target: BRD4201A | |
device: EFR32ZG14P231F256GM32 | |
components: brd4201a | |
# patchpath: "RCPMultiPAN/Yellow" | |
- target: BRD4206A | |
device: EFR32ZG14P231F256GM32 | |
components: brd4206a | |
# patchpath: "RCPMultiPAN/SkyConnect" | |
uses: ./.github/workflows/silabs-firmware-build-zwave.yaml | |
with: | |
image_name: ${{ needs.build-container.outputs.image_name }} | |
firmware_name: zwave_serial_api_controller_${{ needs.build-container.outputs.sdk_version }}_${{ matrix.target }} | |
project_file: "/gecko_sdk/protocol/z-wave/Apps/zwave_ncp_serial_api/zwave_ncp_serial_api_controller.slcp" | |
project_name: "zwave_serial_api_controller_${{ matrix.target }}" | |
device: ${{ matrix.device }} | |
components: ${{ matrix.components }} | |
# Fix konw issue 1171840 in Z-Wave SDK | |
configuration: "ZAF_CONFIG_GENERIC_TYPE:0,ZAF_CONFIG_SPECIFIC_TYPE:0" | |
# patchpath: ${{ matrix.patchpath }} | |
sdk_version: ${{ needs.build-container.outputs.sdk_version }} | |
metadata_fw_type: "zwave" |