mirror of
https://github.com/1technophile/OpenMQTTGateway.git
synced 2026-02-25 03:01:44 +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.
29 lines
811 B
Bash
Executable File
29 lines
811 B
Bash
Executable File
#!/bin/bash
|
|
# Prepares firmware binaries and libraries for GitHub release deployment
|
|
# Used by: .github/workflows/release.yml
|
|
set -e
|
|
echo "renaming bin files with the environment name"
|
|
rename -v 's:/:-:g' .pio/build/*/*.bin
|
|
mkdir toDeploy
|
|
rename 's/.pio-build-//' .*.bin
|
|
(
|
|
cd .pio/libdeps
|
|
echo "replace space by _ in folder names"
|
|
find . -type d -name "* *" | while read FNAME; do mv "$FNAME" "${FNAME// /_}"; done
|
|
echo "zipping libraries per board"
|
|
for i in */
|
|
do
|
|
zip -r "${i%/}-libraries.zip" "$i"
|
|
done
|
|
ls -lA
|
|
mv *.zip ../../toDeploy
|
|
)
|
|
# remove binaries for *-all*, *-test* env and only zip containing *-test*
|
|
rm -f *-all*.bin *-test*.bin *-test*.zip
|
|
echo "zipping code and licence"
|
|
zip -r OpenMQTTGateway_sources.zip main LICENSE.txt
|
|
mv *.zip toDeploy
|
|
mv *.bin toDeploy
|
|
|
|
ls -lA toDeploy
|