{"id":28615499,"url":"https://github.com/siliconlabssoftware/matter_build_action","last_synced_at":"2026-03-10T06:02:53.626Z","repository":{"id":271941565,"uuid":"877606071","full_name":"SiliconLabsSoftware/matter_build_action","owner":"SiliconLabsSoftware","description":"Github Action used to build Matter examples with the GN build system","archived":false,"fork":false,"pushed_at":"2026-03-01T02:53:08.000Z","size":1451,"stargazers_count":1,"open_issues_count":4,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-03-01T06:03:49.172Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/SiliconLabsSoftware/matter_build_action/blob/main/README.md","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SiliconLabsSoftware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-23T23:24:04.000Z","updated_at":"2025-12-03T16:21:39.000Z","dependencies_parsed_at":"2025-01-10T22:36:18.172Z","dependency_job_id":"64255d15-fa12-4b8c-831c-9b126d05b727","html_url":"https://github.com/SiliconLabsSoftware/matter_build_action","commit_stats":null,"previous_names":["siliconlabssoftware/matter-gn-build-action","siliconlabssoftware/matter_build_action"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/SiliconLabsSoftware/matter_build_action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SiliconLabsSoftware%2Fmatter_build_action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SiliconLabsSoftware%2Fmatter_build_action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SiliconLabsSoftware%2Fmatter_build_action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SiliconLabsSoftware%2Fmatter_build_action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SiliconLabsSoftware","download_url":"https://codeload.github.com/SiliconLabsSoftware/matter_build_action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SiliconLabsSoftware%2Fmatter_build_action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30326878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-12T02:09:05.375Z","updated_at":"2026-03-10T06:02:53.575Z","avatar_url":"https://github.com/SiliconLabsSoftware.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# matter_build_action\n\nGitHub Action used to build Matter examples with the GN build system.\n\n## Table of Contents\n\n- [Usage](#usage)\n- [Inputs](#inputs)\n- [Outputs](#outputs)\n- [Example Workflow](#example-workflow)\n- [Setup and Testing](#setup-and-testing)\n- [Testing GitHub Actions Locally](#testing-github-actions-locally)\n- [Default Builds](#default-builds)\n\n## Usage\n\nTo use this action, include it in your workflow YAML file.\n\n## Inputs\n\n| Name                  | Description                                                                              |\n| --------------------- | ---------------------------------------------------------------------------------------- |\n| `example-app`         | Example app to build                                                                     |\n| `path-to-example-app` | Path example directory to be built                                                       |\n| `json-file-path`      | JSON content to be used as GN args                                                       |\n| `build-script`        | Build script to be executed for the provided example app                                 |\n| `output-directory`    | Output directory for the build artifacts                                                 |\n| `build-type`          | Defines which build type to use from the json file (standard, full, custom-sqa, release) |\n\n## Outputs\n\nThis action does not produce any outputs.\n\n## Example Workflow\n\n```yaml\nname: Build Matter Example\n\non: [push, pull_request]\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v2\n\n      - name: Build Matter Example\n        uses: ./ # Uses an action in the root directory\n        with:\n          example-app: \"lighting-app\"\n          path-to-example-app: \"./path/to/lighting-app\"\n          json-file-path: \"./path/to/json.json\"\n          build-script: \"./path/to/build_script.sh\"\n          output-directory: \"./path/to/output\"\n          build-type: \"standard\"\n\n      - name: Upload Build Artifacts\n        uses: actions/upload-artifact@v2\n        with:\n          name: build\n          path: out/examples/lighting-app\n```\n\n## Setup and Testing\n\nTo set up the repository and run the unit tests, follow these steps:\n\n1. Clone the repository:\n\n```\ngit clone https://github.com/your-username/matter_build_action.git\ncd matter_build_action\n```\n\n2. Install dependencies:\n\n```\nnpm install\n```\n\nRun the tests:\n\n```\nnpm test\n```\n\n## Testing GitHub Actions Locally\n\nYou can use the `act` tool to test GitHub Actions locally.\n\n1. Install `act`:\n\n```\nbrew install act\n```\n\n2. Run the action locally:\n\n```\nact --container-architecture linux/amd64 -W .github/workflows/eslint-check.yml\n```\n\n## JSON Structure\n\nThe JSON file used by this action supports a flexible structure to define build configurations.\nIt allows you to specify default builds that apply to all example apps, as well as builds specific to individual example apps.\nAdditionally, the JSON structure supports multiple build types (e.g., `standard`, `custom-sqa`, `release` and `full`).\n\nThe JSON file should follow this structure:\n\n```json\n{\n  \"buildType1\": {\n    \"default\": [\n      {\n        \"boards\": [\"defaultBoard1\", \"defaultBoard2\"],\n        \"arguments\": [\"defaultArg1\", \"defaultArg2\"]\n      }\n    ],\n    \"exampleApp1\": [\n      {\n        \"boards\": [\"board1\", \"board2\"],\n        \"arguments\": [\"arg1\", \"arg2\"]\n      }\n    ]\n  },\n  \"buildType2\": {\n    \"default\": [\n      {\n        \"boards\": [\"defaultBoard3\"],\n        \"arguments\": [\"defaultArg3\"]\n      }\n    ],\n    \"exampleApp2\": [\n      {\n        \"boards\": [\"board3\"],\n        \"arguments\": [\"arg3\"]\n      }\n    ]\n  }\n}\n```\n\n### Explanation\n\n- **`buildType1`, `buildType2`, etc.**: Represents different build types (e.g., `standard`, `custom-sqa`, `release` or `full`). Each build type contains its own set of configurations.\n- **`default`**: Contains build configurations that apply to all example apps for the given build type. Each object in the array specifies:\n\n  - `boards`: A list of board names for which the build should be executed.\n  - `arguments`: A list of arguments to pass to the build script.\n\n- **`exampleApp1`, `exampleApp2`, etc.**: Keys representing specific example apps. Each key contains an array of build configurations specific to that app. Each object in the array specifies:\n  - `boards`: A list of board names for which the build should be executed.\n  - `arguments`: A list of arguments to pass to the build script.\n\n### Example\n\nFor the following JSON structure:\n\n```json\n{\n  \"standard\": {\n    \"default\": [\n      {\n        \"boards\": [\"board1\"],\n        \"arguments\": [\"arg1\", \"arg2\"]\n      }\n    ],\n    \"sample-app-1\": [\n      {\n        \"boards\": [\"board1\", \"board2\"],\n        \"arguments\": [\"arg1\", \"arg2\"]\n      }\n    ]\n  },\n  \"custom-sqa\": {\n    \"default\": [\n      {\n        \"boards\": [\"board3\"],\n        \"arguments\": [\"arg3\"]\n      }\n    ],\n    \"sample-app-2\": [\n      {\n        \"boards\": [\"board4\"],\n        \"arguments\": [\"arg4\"]\n      }\n    ]\n  }\n}\n```\n\n- The `standard` build type will:\n\n  - Run the `default` configuration for `board1` with `arg1` and `arg2`.\n  - Run the `sample-app-1` configuration for `board1` and `board2` with `arg1` and `arg2`.\n\n- The `custom-sqa` build type will:\n  - Run the `default` configuration for `board3` with `arg3`.\n  - Run the `sample-app-2` configuration for `board4` with `arg4`.\n\nThis structure provides flexibility to define builds for multiple build types and example apps while maintaining default configurations.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiliconlabssoftware%2Fmatter_build_action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsiliconlabssoftware%2Fmatter_build_action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiliconlabssoftware%2Fmatter_build_action/lists"}