Merge branch 'main' into cud
This commit is contained in:
commit
78530974b0
|
@ -2,13 +2,15 @@ import os
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import platform
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import platform
|
import platform
|
||||||
|
import re
|
||||||
|
import configparser
|
||||||
|
from time import sleep as delay
|
||||||
|
|
||||||
|
|
||||||
# Get the current directory
|
# Get the current directory
|
||||||
|
@ -30,13 +32,58 @@ os.makedirs(release_folder)
|
||||||
|
|
||||||
# Get the current Git branch name
|
# Get the current Git branch name
|
||||||
git_branch = subprocess.check_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD']).decode().strip()
|
git_branch = subprocess.check_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD']).decode().strip()
|
||||||
|
commit_hash = subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode().strip()[:10]
|
||||||
|
|
||||||
# Build the PlatformIO project
|
# If arguments are supplied, build the environments that match the arguments
|
||||||
if len(sys.argv) > 1:
|
if len(sys.argv) > 1:
|
||||||
# If arguments are supplied, build the environments that match the arguments
|
|
||||||
environments = sys.argv[1:]
|
environments = sys.argv[1:]
|
||||||
for environment in environments:
|
|
||||||
subprocess.run([f'{platformio_path}/platformio.exe', 'run', '-e', environment], cwd=current_dir)
|
# If no argument are supplied, build all environments listed in platformio.ini
|
||||||
|
else:
|
||||||
|
environments = []
|
||||||
|
with open(os.path.join(current_dir, 'platformio.ini')) as f:
|
||||||
|
|
||||||
|
# Iterate over the lines in platformio.ini
|
||||||
|
for line in f.readlines():
|
||||||
|
|
||||||
|
# Check if the line contains the string "env:"
|
||||||
|
if '[env:' in line:
|
||||||
|
|
||||||
|
# Extract the environment using regular expressions
|
||||||
|
environment = re.search(r'\[env:(.*?)\]', line).group(1)
|
||||||
|
|
||||||
|
# Add the environment to the list of environments
|
||||||
|
environments.append(environment)
|
||||||
|
|
||||||
|
# Remove old platformio.ini file from firmware folder if it exists
|
||||||
|
if os.path.isfile(os.path.join(firmware_folder, 'platformio.ini')):
|
||||||
|
os.remove(os.path.join(firmware_folder, 'platformio.ini'))
|
||||||
|
|
||||||
|
# Copy the platformio.ini file to the firmware folder
|
||||||
|
shutil.copyfile(os.path.join(current_dir, 'platformio.ini'), os.path.join(firmware_folder, 'platformio.ini'))
|
||||||
|
|
||||||
|
# Check that the file is copied correctly
|
||||||
|
if not os.path.isfile(os.path.join(firmware_folder, 'platformio.ini')):
|
||||||
|
raise Exception('platformio.ini file not copied correctly')
|
||||||
|
|
||||||
|
# Read the platformio.ini file
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read(os.path.join(firmware_folder, 'platformio.ini'))
|
||||||
|
|
||||||
|
# Add firmware version to build_flags in platformio.ini
|
||||||
|
for environment in environments:
|
||||||
|
if 'build_flags' not in config[f'env:{environment}']:
|
||||||
|
config[f'env:{environment}']['build_flags'] = f'-DFW_VERSION=\\"{git_branch}_{environment}_{commit_hash}\\"'
|
||||||
|
else:
|
||||||
|
config[f'env:{environment}']['build_flags'] = config[f'env:{environment}']['build_flags'] + f' -DFW_VERSION=\\"{git_branch}_{environment}_{commit_hash}\\"'
|
||||||
|
|
||||||
|
# if argument is not supplied, build all environments listed in platformio.ini
|
||||||
|
if len(sys.argv) == 1:
|
||||||
|
subprocess.run([f'{platformio_path}/platformio.exe', 'run','-c',f'{firmware_folder}/platformio.ini'], cwd=current_dir)
|
||||||
|
|
||||||
|
for environment in environments:
|
||||||
|
if(len(sys.argv) > 1):
|
||||||
|
subprocess.run([f'{platformio_path}/platformio.exe', 'run', '-e', environment,'-c',f'{firmware_folder}/platformio.ini'], cwd=current_dir)
|
||||||
|
|
||||||
# Iterate over the subfolders in the firmware folder
|
# Iterate over the subfolders in the firmware folder
|
||||||
for subfolder in os.listdir(firmware_folder):
|
for subfolder in os.listdir(firmware_folder):
|
||||||
|
@ -47,20 +94,6 @@ if len(sys.argv) > 1:
|
||||||
# Check if the subfolder contains a firmware.bin file
|
# Check if the subfolder contains a firmware.bin file
|
||||||
firmware_file = os.path.join(subfolder_path, 'firmware.bin')
|
firmware_file = os.path.join(subfolder_path, 'firmware.bin')
|
||||||
if os.path.isfile(firmware_file):
|
if os.path.isfile(firmware_file):
|
||||||
# Move the firmware.bin file to the release folder with the Git branch name appended
|
# Move the firmware.bin file to the release folder with the Git branch name and commit hash appended
|
||||||
new_file_name = os.path.join(release_folder, f"{subfolder}_{git_branch}.bin")
|
new_file_name = os.path.join(release_folder, f"{git_branch}_{subfolder}_{commit_hash}.bin")
|
||||||
shutil.move(firmware_file, new_file_name)
|
|
||||||
else:
|
|
||||||
# If no argument is supplied, build all environments
|
|
||||||
subprocess.run([f'{platformio_path}/platformio.exe', 'run'], cwd=current_dir)
|
|
||||||
|
|
||||||
# Iterate over the subfolders in the firmware folder
|
|
||||||
for subfolder in os.listdir(firmware_folder):
|
|
||||||
subfolder_path = os.path.join(firmware_folder, subfolder)
|
|
||||||
|
|
||||||
# Check if the subfolder contains a firmware.bin file
|
|
||||||
firmware_file = os.path.join(subfolder_path, 'firmware.bin')
|
|
||||||
if os.path.isfile(firmware_file):
|
|
||||||
# Move the firmware.bin file to the release folder with the Git branch name appended
|
|
||||||
new_file_name = os.path.join(release_folder, f"{subfolder}_{git_branch}.bin")
|
|
||||||
shutil.move(firmware_file, new_file_name)
|
shutil.move(firmware_file, new_file_name)
|
|
@ -395,6 +395,11 @@ void ota_begin()
|
||||||
otabuffer+=ota_part2_1+"IP Address"+ota_part2_2+IP.toString()+ota_part2_3;
|
otabuffer+=ota_part2_1+"IP Address"+ota_part2_2+IP.toString()+ota_part2_3;
|
||||||
otabuffer+=ota_part2_1+"MAC Address"+ota_part2_2+ETH.macAddress()+ota_part2_3;
|
otabuffer+=ota_part2_1+"MAC Address"+ota_part2_2+ETH.macAddress()+ota_part2_3;
|
||||||
otabuffer+=ota_part2_1+"Device"+ota_part2_2+ESPMEGA_REV+ota_part2_3;
|
otabuffer+=ota_part2_1+"Device"+ota_part2_2+ESPMEGA_REV+ota_part2_3;
|
||||||
|
#ifdef FW_VERSION
|
||||||
|
otabuffer+=ota_part2_1+"Firmware"+ota_part2_2+FW_VERSION+ota_part2_3;
|
||||||
|
#else
|
||||||
|
otabuffer+=ota_part2_1+"Firmware"+ota_part2_2+"Out of Tree"+ota_part2_3;
|
||||||
|
#endif
|
||||||
otabuffer+=ota_part2_1+"BMS Server"+ota_part2_2+MQTT_SERVER.toString()+ota_part2_3;
|
otabuffer+=ota_part2_1+"BMS Server"+ota_part2_2+MQTT_SERVER.toString()+ota_part2_3;
|
||||||
otabuffer+=ota_part2_1+"BMS Endpoint"+ota_part2_2+String(MQTT_BASE_TOPIC)+ota_part2_3;
|
otabuffer+=ota_part2_1+"BMS Endpoint"+ota_part2_2+String(MQTT_BASE_TOPIC)+ota_part2_3;
|
||||||
otabuffer+=ota_part2_1+"Centrally Managed"+ota_part2_2;
|
otabuffer+=ota_part2_1+"Centrally Managed"+ota_part2_2;
|
||||||
|
|
Loading…
Reference in New Issue