mirror of
https://github.com/1technophile/OpenMQTTGateway.git
synced 2026-03-03 05:54:23 +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.
59 lines
1.9 KiB
Bash
Executable File
59 lines
1.9 KiB
Bash
Executable File
# Build Scripts Configuration
|
|
# Used by: All build scripts for centralized configuration
|
|
|
|
# Python Configuration
|
|
PYTHON_VERSION="3.13"
|
|
PLATFORMIO_VERSION="https://github.com/pioarduino/platformio-core/archive/refs/tags/v6.1.18.zip"
|
|
|
|
# Centralized Output Directory Structure
|
|
# All CI/CD generated files go under generated/
|
|
GENERATED_BASE_DIR="generated"
|
|
ARTIFACTS_DIR="${GENERATED_BASE_DIR}/artifacts"
|
|
SITE_DIR="${GENERATED_BASE_DIR}/site"
|
|
REPORTS_DIR="${GENERATED_BASE_DIR}/reports"
|
|
|
|
# PlatformIO Directory Configuration
|
|
BUILD_DIR=".pio/build"
|
|
SCRIPTS_DIR="scripts"
|
|
|
|
# Build Configuration
|
|
DEFAULT_ENVIRONMENT="esp32dev-all-test"
|
|
ENABLE_VERBOSE_BUILD="false"
|
|
ENABLE_BUILD_CACHE="true"
|
|
|
|
# Artifact Configuration
|
|
ARTIFACT_RETENTION_DAYS="7"
|
|
CREATE_MANIFEST="true"
|
|
COMPRESS_ARTIFACTS="false"
|
|
|
|
# Version Configuration
|
|
VERSION_FILE_PROD="scripts/latest_version.json"
|
|
VERSION_FILE_DEV="scripts/latest_version_dev.json"
|
|
USER_CONFIG_FILE="main/User_config.h"
|
|
|
|
# Logging Configuration
|
|
ENABLE_COLOR_OUTPUT="true"
|
|
LOG_LEVEL="INFO" # DEBUG, INFO, WARN, ERROR
|
|
|
|
# ============================================================================
|
|
# Colors - ANSI color codes for terminal output
|
|
# ============================================================================
|
|
readonly RED='\033[0;31m'
|
|
readonly GREEN='\033[0;32m'
|
|
readonly YELLOW='\033[1;33m'
|
|
readonly BLUE='\033[0;34m'
|
|
readonly NC='\033[0m' # No Color
|
|
|
|
# ============================================================================
|
|
# Logging Functions - Standardized logging across all build scripts
|
|
# ============================================================================
|
|
log_info() { echo -e "${GREEN}[INFO]${NC} $*" >&2; }
|
|
log_warn() { echo -e "${YELLOW}[WARN]${NC} $*" >&2; }
|
|
log_error() { echo -e "${RED}[ERROR]${NC} $*" >&2; }
|
|
log_step() { echo -e "${BLUE}[STEP]${NC} $*" >&2; }
|
|
|
|
# Advanced Options
|
|
ENABLE_CCACHE="false"
|
|
CCACHE_DIR=".ccache"
|
|
MAX_BUILD_JOBS="4"
|