Merge branch 'main' into cud
This commit is contained in:
		
						commit
						78530974b0
					
				
					 2 changed files with 65 additions and 27 deletions
				
			
		| 
						 | 
				
			
			@ -2,13 +2,15 @@ import os
 | 
			
		|||
import shutil
 | 
			
		||||
import subprocess
 | 
			
		||||
import sys
 | 
			
		||||
import platform
 | 
			
		||||
import subprocess
 | 
			
		||||
import os
 | 
			
		||||
import shutil
 | 
			
		||||
import subprocess
 | 
			
		||||
import sys
 | 
			
		||||
import platform
 | 
			
		||||
import re
 | 
			
		||||
import configparser
 | 
			
		||||
from time import sleep as delay
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Get the current directory
 | 
			
		||||
| 
						 | 
				
			
			@ -30,13 +32,58 @@ os.makedirs(release_folder)
 | 
			
		|||
 | 
			
		||||
# Get the current Git branch name
 | 
			
		||||
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 len(sys.argv) > 1:
 | 
			
		||||
# If arguments are supplied, build the environments that match the arguments
 | 
			
		||||
if len(sys.argv) > 1:
 | 
			
		||||
    environments = sys.argv[1:]
 | 
			
		||||
 | 
			
		||||
# 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:
 | 
			
		||||
        subprocess.run([f'{platformio_path}/platformio.exe', 'run', '-e', environment], cwd=current_dir)
 | 
			
		||||
    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
 | 
			
		||||
    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
 | 
			
		||||
            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)
 | 
			
		||||
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")
 | 
			
		||||
                # 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"{git_branch}_{subfolder}_{commit_hash}.bin")
 | 
			
		||||
                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+"MAC Address"+ota_part2_2+ETH.macAddress()+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 Endpoint"+ota_part2_2+String(MQTT_BASE_TOPIC)+ota_part2_3;
 | 
			
		||||
    otabuffer+=ota_part2_1+"Centrally Managed"+ota_part2_2;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue