Skip to content

Silicon Labs builder #3

Silicon Labs builder

Silicon Labs builder #3

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'
}}
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 }}
cache-to: ghcr.io/${{ steps.lower.outputs.repository_owner }}/silabs-project-builder:cache-${{ env.sdk_version }}
push: true
build-args:
"GECKO_SDK_VERSION=v${{ env.sdk_version }}"
app-btl-build:
name: Zigbee MGM210 HAT App
needs: build-container
strategy:
matrix:
include:
- device: EFR32MG12P332F1024GL125
board: custom_tb2
flavor: TBS2
image_id: "2287"
- device: MGM210LA22JIF
board: brd_mgm210_expansion
flavor: MGM210
uses: ./.github/workflows/app-btl-build.yaml
with:
sdk_version: ${{ needs.build-container.outputs.sdk_version }}
device: ${{ matrix.device }}
board: ${{ matrix.board }}
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 }}