Skip to content

Silicon Labs builder #21

Silicon Labs builder

Silicon Labs builder #21

Workflow file for this run

# The entire pipeline was shamelessy borrowed from https://github.com/NabuCasa/silabs-firmware-builder
# Kudos to NabuCasa and Stefan
name: Silicon Labs builder
on:
workflow_dispatch:
inputs:
build_btl:
description: "Build Bootloader"
required: false
default: false
type: boolean
push:
paths:
- Dockerfile
- .github/workflows/build.yaml
- .github/workflows/app-btl-build.yaml
- .github/workflows/silabs-project-builder.yaml
- 'MGLight/**'
- 'patches/**'
branches:
- main
- dev
- 'rc-*'
tags:
- '*'
env:
sdk_version: ${{
vars.sdk_version != ''
&& vars.sdk_version
|| '4.4.5'
}}
gcc_version: ${{ vars.gcc_version != '' && vars.gcc_version || '12.3.rel1' }}
zap_version: ${{ vars.zap_version != '' && vars.zap_version || 'v2024.12.13' }}
jobs:
build-container:
name: Create build container image
runs-on: ubuntu-latest
permissions:
packages: write
contents: write
outputs:
sdk_version: ${{ env.sdk_version }}
image_name: ghcr.io/${{ steps.lower.outputs.repository_owner }}/silabs-project-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-project-builder:${{ env.sdk_version }}
cache-from: ghcr.io/${{ steps.lower.outputs.repository_owner }}/silabs-project-builder:cache-${{ env.sdk_version }}-${{ env.gcc_version }}-${{ env.zap_version}}
cache-to: ghcr.io/${{ steps.lower.outputs.repository_owner }}/silabs-project-builder:cache-${{ env.sdk_version }}-${{ env.gcc_version }}-${{ env.zap_version}}
push: true
build-args: |
"GECKO_SDK_VERSION=v${{ env.sdk_version }}"
"GCC_ARM_VERSION=${{ env.gcc_version }}"
"ZAP_TOOL_RELEASE=${{ env.zap_version }}"
app-btl-build:
name: Zigbee MGM210 HAT App
needs: build-container
strategy:
fail-fast: false
matrix:
include:
- device: EFR32MG12P332F1024GL125
components: custom_tb2;raz1_custom_components
flavor: TBS2
image_id: "2287"
- device: MGM210LA22JIF
components: brd_mgm210_expansion;raz1_custom_components
flavor: MGM210
uses: ./.github/workflows/app-btl-build.yaml
with:
sdk_version: ${{ needs.build-container.outputs.sdk_version }}
device: ${{ matrix.device }}
components: ${{ matrix.components }}
build_btl: ${{ github.event.inputs.build_btl != '' && inputs.build_btl || false }}
image_name: ${{ needs.build-container.outputs.image_name }}
btl_version: ${{ vars.btl_version != '' && vars.btl_version || '2' }}
image_id: ${{ matrix.image_id }}
flavor: ${{ matrix.flavor }}