Files
OpenMQTTGateway/.github/workflows/environments.json
Alessandro Staniscia 134c03362c [CI] Refactor GitHub Actions workflows for build, documentation, and linting (#2260)
* Refactor GitHub Actions workflows for build, documentation, and linting

- Consolidated build logic into reusable workflows (`task-build.yml` and `task-docs.yml`) to reduce duplication across multiple workflows.
- Introduced `environments.json` to centralize the list of PlatformIO build environments, improving maintainability and clarity.
- Updated `build.yml` and `build_and_docs_to_dev.yml` to utilize the new reusable workflows and environment definitions.
- Enhanced `release.yml` to streamline the release process and integrate documentation generation.
- Created reusable linting workflow (`task-lint.yml`) to standardize code formatting checks across the repository.
- Simplified manual documentation workflow by leveraging the new reusable documentation workflow.
- Improved artifact management and retention policies across workflows.
- Updated dependencies and versions in workflows to ensure compatibility and performance.

* CI/CD pipeline agnostic of Workflow Engine and integrated on github actions

- Implemented ci.sh for orchestrating the complete build pipeline.
- Created ci_00_config.sh for centralized configuration of build scripts.
- Created ci_build_firmware.sh for building firmware for specified PlatformIO environments.
- Created ci_prepare_artifacts.sh for preparing firmware artifacts for upload or deployment.
- Created ci_set_version.sh for updating version tags in firmware configuration files.
- Created ci_build.sh to orchestrate the complete build pipeline.
- Created ci_qa.sh for code linting and formatting checks using clang-format.
- Created ci_site.sh for building and deploying VuePress documentation with version management.
- Implemented checks for required tools and dependencies in the new scripts.
- Updated common_wu.py, compressFirmware.py, gen_wu.py, generate_board_docs.py, and prepare_deploy.sh with descriptive comments.

Refactor CI/CD scripts for improved modularity and clarity

- Consolidated build steps in task-build.yml to utilize ci.sh for version tagging, building, and artifact preparation.
- Updated task-lint.yml to use ci.sh for code formatting checks instead of ci_qa.sh.
- Enhanced CI_SCRIPTS.md documentation to reflect changes in script usage, command structure, and output organization.
- Improved internal scripts for better error handling and logging.
- Streamlined the output structure for build artifacts and documentation.
2026-02-15 14:58:58 -06:00

106 lines
3.6 KiB
JSON

{
"$schema": "https://json-schema.org/draft-07/schema",
"description": "Centralized list of all PlatformIO build environments for OpenMQTTGateway workflows",
"version": "1.0.0",
"lastUpdated": "2025-12-24",
"environments": {
"all": [
"rfbridge",
"rfbridge-direct",
"theengs-bridge",
"theengs-bridge-v11",
"theengs-plug",
"esp32dev-all-test",
"esp32dev-rf",
"esp32dev-pilight",
"esp32dev-pilight-cc1101",
"esp32dev-somfy-cc1101",
"esp32dev-pilight-somfy-cc1101",
"esp32dev-weatherstation",
"esp32dev-gf-sun-inverter",
"esp32dev-ir",
"esp32dev-ble",
"esp32dev-ble-broker",
"esp32dev-ble-mqtt-undecoded",
"esp32dev-ble-aws",
"esp32dev-ble-datatest",
"esp32dev-ble-idf",
"esp32dev-rtl_433",
"esp32dev-rtl_433-fsk",
"esp32dev-multi_receiver",
"esp32dev-multi_receiver-pilight",
"esp32feather-ble",
"esp32-lolin32lite-ble",
"esp32-olimex-gtw-ble-eth",
"esp32-olimex-gtw-ble-poe",
"esp32-olimex-gtw-ble-poe-iso",
"esp32-wt32-eth01-ble-eth",
"esp32-olimex-gtw-ble-wifi",
"esp32-m5stick-ble",
"esp32-m5stack-ble",
"esp32-m5tough-ble",
"esp32-m5stick-c-ble",
"esp32-m5stick-cp-ble",
"esp32-m5atom-matrix",
"esp32-m5atom-lite",
"esp32doitv1-aithinker-r01-sx1278",
"esp32s3-dev-c1-ble",
"esp32s3-m5stack-stamps3",
"esp32s3-atomS3U",
"esp32c3-dev-m1-ble",
"esp32c3-dev-c2-ble",
"esp32c3-dev-c2-ble-no-serial",
"esp32c3_lolin_mini",
"esp32c3_lolin_mini_with_serial",
"esp32c3-m5stamp",
"esp32c3u-m5stamp",
"airm2m_core_esp32c3",
"heltec-rtl_433",
"heltec-rtl_433-fsk",
"heltec-ble",
"heltec-wifi-lora-32",
"lilygo-rtl_433",
"lilygo-rtl_433-fsk",
"lilygo-t3-s3-rtl_433",
"lilygo-t3-s3-rtl_433-fsk",
"lilygo-ble",
"tinypico-ble",
"ttgo-lora32-v1",
"ttgo-lora32-v21",
"ttgo-t-beam",
"thingpulse-espgateway",
"shelly-plus1",
"nodemcuv2-all-test",
"nodemcuv2-fastled-test",
"nodemcuv2-2g",
"nodemcuv2-ir",
"nodemcuv2-serial",
"nodemcuv2-rf",
"nodemcuv2-rf-cc1101",
"nodemcuv2-somfy-cc1101",
"nodemcuv2-rf2",
"nodemcuv2-rf2-cc1101",
"nodemcuv2-pilight",
"nodemcuv2-weatherstation",
"avatto-bakeey-ir",
"manual-wifi-test",
"rf-wifi-gateway",
"sonoff-basic",
"sonoff-basic-rfr3"
],
"metadata": {
"totalCount": 83,
"categories": {
"esp32": 42,
"esp8266": 17,
"specialized": 24
},
"notes": [
"This unified list contains all environments from both build.yml and build_and_docs_to_dev.yml",
"Previously build.yml had 85 environments and build_and_docs_to_dev.yml had 88",
"After deduplication and proper ordering, the total is 83 unique environments",
"Environments ending in -test or -all-test are typically excluded from production releases"
]
}
}
}