Ken Van Hoeylandt 0042ce6d32
Fix SDK (#487)
* **New Features**
  * Added a full SDK integration test suite with a minimal sample app and automated multi-platform build/run flows.
  * Added a new CLI build tool to orchestrate SDK download, build, packaging, and device install/run.

* **Documentation**
  * Added typography design token suggestion to ideas.

* **Chores**
  * Updated CI to run SDK integration prep and test steps.
  * Adjusted build artifact paths, license mappings, and repository ignore rules (including .tactility).
2026-02-06 22:50:13 +01:00

53 lines
1.7 KiB
YAML

name: Build
inputs:
board_id:
description: The sdkconfig file to build
required: true
arch:
description: The ESP32 SOC variant
required: true
runs:
using: "composite"
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: 'Board select'
shell: bash
run: python device.py ${{ inputs.board_id }}
- name: 'Build'
uses: espressif/esp-idf-ci-action@v1
with:
# NOTE: Update with ESP-IDF!
esp_idf_version: v5.5
target: ${{ inputs.arch }}
path: './'
- name: 'Release'
shell: bash
env:
# NOTE: Update with ESP-IDF!
ESP_IDF_VERSION: '5.5'
run: python Buildscripts/release-sdk.py release/TactilitySDK
- name: 'Test Integration Prep'
shell: bash
# The manifest.properties of our integration test uses version 0.0.0 to indicate that it is not using a normal SDK
# This way, it only works with our custom build. That means we have to create a copy of the SDK with the correct folder structure:
run: |
TACTILITY_SDK_NAME="0.0.0-${{ inputs.arch }}"
mkdir -p test_sdk/$TACTILITY_SDK_NAME
cp -r release/TactilitySDK test_sdk/$TACTILITY_SDK_NAME
- name: 'Test Integration'
uses: espressif/esp-idf-ci-action@v1
with:
esp_idf_version: v5.5
target: ${{ inputs.arch }}
command: export TACTILITY_SDK_PATH=../../test_sdk && cd Tests/SdkIntegration && python tactility.py build ${{ inputs.arch }} --local-sdk
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: TactilitySDK-${{ inputs.arch }}
path: release/TactilitySDK
retention-days: 30