mirror of
https://github.com/1technophile/OpenMQTTGateway.git
synced 2026-02-25 19:21:42 +01:00
* 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.
117 lines
2.8 KiB
Python
117 lines
2.8 KiB
Python
# Common templates and constants for web installer manifest generation
|
|
# Used by: scripts/gen_wu.py
|
|
import string
|
|
|
|
mf_temp32 = string.Template('''{
|
|
"name": "OpenMQTTGateway",
|
|
"new_install_prompt_erase": true,
|
|
"builds": [
|
|
{
|
|
"chipFamily": "ESP32",
|
|
"improv": false,
|
|
"parts": [
|
|
{ "path": "$cp$bl", "offset": 4096 },
|
|
{ "path": "$cp$part", "offset": 32768 },
|
|
{ "path": "$cp$boot", "offset": 57344 },
|
|
{ "path": "$cp$bin", "offset": 65536 }
|
|
]
|
|
}
|
|
]
|
|
}''')
|
|
|
|
mf_temp32c3 = string.Template('''{
|
|
"name": "OpenMQTTGateway",
|
|
"new_install_prompt_erase": true,
|
|
"builds": [
|
|
{
|
|
"chipFamily": "ESP32-C3",
|
|
"improv": false,
|
|
"parts": [
|
|
{ "path": "$cp$bl", "offset": 0 },
|
|
{ "path": "$cp$part", "offset": 32768 },
|
|
{ "path": "$cp$boot", "offset": 57344 },
|
|
{ "path": "$cp$bin", "offset": 65536 }
|
|
]
|
|
}
|
|
]
|
|
}''')
|
|
|
|
mf_temp32s3 = string.Template('''{
|
|
"name": "OpenMQTTGateway",
|
|
"new_install_prompt_erase": true,
|
|
"builds": [
|
|
{
|
|
"chipFamily": "ESP32-S3",
|
|
"improv": false,
|
|
"parts": [
|
|
{ "path": "$cp$bl", "offset": 0 },
|
|
{ "path": "$cp$part", "offset": 32768 },
|
|
{ "path": "$cp$boot", "offset": 57344 },
|
|
{ "path": "$cp$bin", "offset": 65536 }
|
|
]
|
|
}
|
|
]
|
|
}''')
|
|
|
|
mf_temp8266 = string.Template('''{
|
|
"name": "OpenMQTTGateway",
|
|
"new_install_prompt_erase": true,
|
|
"builds": [
|
|
{
|
|
"chipFamily": "ESP8266",
|
|
"parts": [{ "path": "$cp$bin", "offset": 0 }]
|
|
}
|
|
]
|
|
}''')
|
|
|
|
wu_temp_opt = string.Template('''
|
|
<option
|
|
value="$mff"
|
|
>
|
|
$mfn
|
|
</option>
|
|
''')
|
|
|
|
wu_temp_p1 = '''<template>
|
|
<div align="center">
|
|
<select>
|
|
<optgroup label="ESP32">'''
|
|
|
|
wu_temp_p2 = '''
|
|
</optgroup>
|
|
<optgroup label="ESP32C3">'''
|
|
|
|
wu_temp_p3 = '''
|
|
</optgroup>
|
|
<optgroup label="ESP32S3">'''
|
|
|
|
wu_temp_p4 = '''
|
|
</optgroup>
|
|
<optgroup label="ESP8266">'''
|
|
|
|
wu_temp_end = '''
|
|
</optgroup>
|
|
</select><br><br>
|
|
<esp-web-install-button erase-first></esp-web-install-button>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
mounted () {
|
|
const espWebInstallButton = document.querySelector("esp-web-install-button");
|
|
espWebInstallButton.addEventListener("state-changed", (ev) => { console.log(ev.detail) });
|
|
const selectFW = document.querySelector("select");
|
|
espWebInstallButton.manifest = selectFW.value;
|
|
selectFW.addEventListener("change", () => {
|
|
espWebInstallButton.manifest = selectFW.value;
|
|
});
|
|
}
|
|
}
|
|
</script>'''
|
|
|
|
manif_path = 'docs/.vuepress/public/firmware_build/'
|
|
vue_path = 'docs/.vuepress/components/'
|
|
cors_proxy = '' # 'https://cors.bridged.cc/'
|
|
esp32_boot = 'https://github.com/espressif/arduino-esp32/raw/2.0.7/tools/partitions/boot_app0.bin'
|