Skip to main content
Version: 028-rc11

CI/CD Overview

GitHub Actions workflows in .github/workflows/ automate builds for all supported machines.

Workflow Types

Workflow typeTriggerUse case
manualGitHub Actions UIOn-demand builds
tagGit tagsRelease builds
onpushEvery pushContinuous validation (use sparingly, only for key machines)

Reusable workflows:

  • buildkas-target.yaml — Reusable build workflow
  • buildkas-upload.yaml — Artifact upload to S3

Machine Configuration

All machines are defined in .github/machines.json. This file is the single source of truth — workflow files are generated from it.

Adding or Modifying a Machine

Always follow this three-step process:

  1. Edit .github/machines.json:

    {
    "config": "kas/machines/MACHINE.yaml:kas/scarthgap.yaml:kas/bsp-base.yaml:.github/configs/build-base-starter.yaml",
    "name": "MACHINE-NAME",
    "workflows": ["manual", "tag"]
    }
  2. Regenerate workflows:

    .github/scripts/makeworkflows
  3. Commit both — always commit machines.json and the generated workflow files together.

Optional Machine Properties

PropertyDescription
sdk: 1Build SDK for this machine
output: "pattern"Custom output file pattern
build_target: "recipe"Override default build target

Kconfig and Machine Configs

After modifying Kconfig, regenerate the per-machine config files:

.github/scripts/makemachines

Commit the updated machine config files alongside the Kconfig change.