pass board dir to scripts instead of board name (#5022)

* pass board dir instead of name

* makefiles

* dead file?

* hw ci

* unit tests

* fix sd card generation while we're here

* actually test sd category

* jar

* clean merge

* jar for good measure

* fix f767 properly
This commit is contained in:
Matthew Kennedy 2023-02-06 04:37:17 -08:00 committed by GitHub
parent 254e067e17
commit 4665e67eb4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 103 additions and 150 deletions

View File

@ -73,216 +73,214 @@ jobs:
include:
# Board configurations
- build-target: hellen72
folder: hellen/hellen72
folder: config/boards/hellen/hellen72
ini-file: rusefi_hellen72.ini
skip-rate: 90
- build-target: hellen81
folder: hellen/hellen81
folder: config/boards/hellen/hellen81
ini-file: rusefi_hellen81.ini
skip-rate: 90
- build-target: alphax-2chan
folder: hellen/alphax-2chan
folder: config/boards/hellen/alphax-2chan
ini-file: rusefi_alphax-2chan.ini
skip-rate: 0
- build-target: alphax-4chan
folder: hellen/alphax-4chan
folder: config/boards/hellen/alphax-4chan
ini-file: rusefi_alphax-4chan.ini
- build-target: alphax-8chan
folder: hellen/alphax-8chan
folder: config/boards/hellen/alphax-8chan
ini-file: rusefi_alphax-8chan.ini
- build-target: s105
folder: s105
folder: config/boards/s105
ini-file: rusefi_s105.ini
skip-rate: 0
- build-target: m74_9
folder: m74_9
folder: config/boards/m74_9
ini-file: rusefi_m74_9.ini
skip-rate: 0
- build-target: harley81
folder: hellen/harley81
folder: config/boards/hellen/harley81
ini-file: rusefi_harley81.ini
skip-rate: 90
- build-target: hellen88bmw
folder: hellen/hellen88bmw
folder: config/boards/hellen/hellen88bmw
ini-file: rusefi_hellen88bmw.ini
skip-rate: 90
- build-target: hellen88bmw_avr
folder: hellen/hellen88bmw
folder: config/boards/hellen/hellen88bmw
ini-file: rusefi_hellen88bmw.ini
skip-rate: 90
- build-target: hellen-nb1
folder: hellen/hellen-nb1
folder: config/boards/hellen/hellen-nb1
ini-file: rusefi_hellen-nb1.ini
skip-rate: 90
- build-target: hellen-gm-e67
folder: hellen/hellen-gm-e67
folder: config/boards/hellen/hellen-gm-e67
ini-file: rusefi_hellen-gm-e67.ini
skip-rate: 90
- build-target: hellenNA8_96
folder: hellen/hellenNA8_96
folder: config/boards/hellen/hellenNA8_96
ini-file: rusefi_hellenNA8_96.ini
skip-rate: 90
- build-target: hellenNA6
folder: hellen/hellen64_miataNA6_94
folder: config/boards/hellen/hellen64_miataNA6_94
ini-file: rusefi_hellenNA6.ini
skip-rate: 90
- build-target: hellen128
folder: hellen/hellen128
folder: config/boards/hellen/hellen128
ini-file: rusefi_hellen128mercedes.ini
skip-rate: 50
- build-target: hellen121vag
folder: hellen/hellen121vag
folder: config/boards/hellen/hellen121vag
ini-file: rusefi_hellen121vag.ini
skip-rate: 90
- build-target: hellen121nissan
folder: hellen/hellen121nissan
folder: config/boards/hellen/hellen121nissan
ini-file: rusefi_hellen121nissan.ini
- build-target: hellen-honda-k
folder: hellen/hellen-honda-k
folder: config/boards/hellen/hellen-honda-k
ini-file: rusefi_hellen-honda-k.ini
- build-target: hellen154hyundai
folder: hellen/hellen154hyundai
folder: config/boards/hellen/hellen154hyundai
ini-file: rusefi_hellen154hyundai.ini
skip-rate: 90
- build-target: cypress
folder: cypress
folder: config/boards/cypress
ini-file: rusefi_cypress.ini
- build-target: frankenso_na6
folder: frankenso
folder: config/boards/frankenso
ini-file: rusefi_frankenso_na6.ini
skip-rate: 90
- build-target: kinetis
folder: kinetis
folder: config/boards/kinetis
ini-file: rusefi_kin.ini
skip-rate: 0
- build-target: mre_f4
folder: microrusefi
folder: config/boards/microrusefi
ini-file: rusefi_mre_f4.ini
- build-target: mre_f4_debug
folder: microrusefi
folder: config/boards/microrusefi
ini-file: rusefi_mre_f4.ini
skip-rate: 95
- build-target: mre_f4_recovery
folder: microrusefi
folder: config/boards/microrusefi
ini-file: rusefi_mre_f4.ini
skip-rate: 95
- build-target: mre_f4_hardware_QC_special_build
folder: microrusefi
folder: config/boards/microrusefi
ini-file: rusefi_mre_f4.ini
skip-rate: 90
- build-target: mre_f7
folder: microrusefi
folder: config/boards/microrusefi
ini-file: rusefi_mre_f7.ini
console-settings: firmware/config/boards/nucleo_f767/rusefi_console_properties.xml
skip-rate: 90
- build-target: prometheus_405
folder: prometheus
folder: config/boards/prometheus
ini-file: rusefi_prometheus_405.ini
skip-rate: 90
- build-target: prometheus_469
folder: prometheus
folder: config/boards/prometheus
ini-file: rusefi_prometheus_469.ini
skip-rate: 90
- build-target: proteus_f4
folder: proteus
folder: config/boards/proteus
ini-file: rusefi_proteus_f4.ini
- build-target: proteus_f4_hardware_QC_special_build
folder: proteus
folder: config/boards/proteus
ini-file: rusefi_proteus_f4.ini
- build-target: proteus_f7
folder: proteus
folder: config/boards/proteus
ini-file: rusefi_proteus_f7.ini
- build-target: proteus_f7_hardware_QC_special_build
folder: proteus
folder: config/boards/proteus
ini-file: rusefi_proteus_f7.ini
skip-rate: 90
- build-target: proteus_h7
folder: proteus
folder: config/boards/proteus
ini-file: rusefi_proteus_h7.ini
skip-rate: 90
- build-target: proteus_legacy
folder: proteus
folder: config/boards/proteus
ini-file: rusefi_proteus_f7.ini
skip-rate: 90
- build-target: stm32f429_nucleo
folder: nucleo_f429
folder: config/boards/nucleo_f429
ini-file: rusefi_stm32f429_nucleo.ini
- build-target: stm32f767_nucleo
folder: nucleo_f767
folder: config/boards/nucleo_f767
ini-file: rusefi_stm32f767_nucleo.ini
console-settings: firmware/config/boards/nucleo_f767/rusefi_console_properties.xml
skip-rate: 95
- build-target: stm32h743_nucleo
folder: nucleo_h743
folder: config/boards/nucleo_h743
ini-file: rusefi_stm32h743_nucleo.ini
skip-rate: 95
- build-target: subaru_eg33_f7
folder: subaru_eg33
folder: config/boards/subaru_eg33
ini-file: rusefi_subaru_eg33_f7.ini
skip-rate: 50
- build-target: f407-discovery
folder: f407-discovery
folder: config/boards/f407-discovery
- build-target: f429-discovery
folder: f429-discovery
folder: config/boards/f429-discovery
skip-rate: 95
- build-target: core8
folder: core8
folder: config/boards/core8
ini-file: rusefi_core8.ini
skip-rate: 95
- build-target: 48way
folder: 48way
folder: config/boards/48way
ini-file: rusefi_48way.ini
skip-rate: 95
- build-target: atlas
folder: atlas
folder: config/boards/atlas
ini-file: rusefi_atlas.ini
skip-rate: 95
- build-target: tdg-pdm8
folder: tdg-pdm8
folder: config/boards/tdg-pdm8
ini-file: rusefi_tdg-pdm8.ini
skip-rate: 95
@ -393,7 +391,7 @@ jobs:
# Build the firmware!
- name: Build Firmware
if: ${{ env.skip != 'true' }}
run: bash misc/jenkins/compile_other_versions/compile.sh ${{matrix.folder}} ${{matrix.build-target}} ${{matrix.ini-file}} ${{matrix.console-settings}}
run: bash misc/jenkins/compile_other_versions/compile.sh ${{matrix.folder}} ${{matrix.build-target}}
- name: Package Bundle
if: ${{( github.event_name == 'push' && github.ref == 'refs/heads/master' && env.skip != 'true' ) || inputs.lts }}

View File

@ -15,9 +15,8 @@ jobs:
script: hardware_ci_f4_discovery
runs-on: hw-ci-f4-discovery
test-suite: com.rusefi.HwCiF4Discovery
folder: f407-discovery
folder: config/boards/f407-discovery
config-name: all
ini-file: rusefi_f4-disco.ini
openocd-script: ../.github/workflows/openocd_ci_f4_discovery.cfg
serial-device: /dev/serial/by-id/usb-rusEFI_LLC_rusEFI_Engine_Management_ECU_2B003B000A51343033393930-if01
@ -25,9 +24,8 @@ jobs:
script: hardware_ci_proteus
runs-on: hw-ci-proteus
test-suite: com.rusefi.HwCiF4Proteus
folder: proteus
folder: config/boards/proteus
config-name: proteus_f4
ini-file: rusefi_proteus_f4.ini
openocd-script: ../.github/workflows/openocd_ci_proteus.cfg
serial-device: /dev/serial/by-id/usb-rusEFI_LLC_rusEFI_Engine_Management_ECU_41003D000451383037343335-if01
@ -84,7 +82,7 @@ jobs:
echo "HARDWARE_CI_SERIAL_DEVICE=${{matrix.serial-device}}" >> $GITHUB_ENV
- name: Build Firmware
run: bash misc/jenkins/compile_other_versions/compile.sh ${{matrix.folder}} ${{matrix.build-target}} ${{matrix.ini-file}}
run: bash misc/jenkins/compile_other_versions/compile.sh ${{matrix.folder}} ${{matrix.build-target}}
- name: Check for STLINK
run: lsusb | grep 'ST-LINK\|STLINK'

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_202" class="java.beans.XMLDecoder">
<object class="java.util.HashMap">
<void method="put">
<string>root</string>
<object class="com.rusefi.ui.storage.Node" id="Node0">
<void property="config">
<void method="put">
<string>hardware</string>
<string>F7</string>
</void>
</void>
</object>
</void>
</object>
</java>

View File

@ -25,38 +25,38 @@ config/boards/subaru_eg33/config/gen_subaru_config.sh
#
#
for BOARD in \
"hellen/alphax-2chan alphax-2chan" \
"hellen/alphax-4chan alphax-4chan" \
"hellen/alphax-8chan alphax-8chan" \
"hellen/harley81 harley81" \
"hellen/hellen128 hellen128 rusefi_hellen128mercedes.ini" \
"hellen/hellen121vag hellen121vag" \
"hellen/hellen121nissan hellen121nissan" \
"hellen/hellen-honda-k hellen-honda-k" \
"hellen/hellen154hyundai hellen154hyundai" \
"hellen/hellen88bmw hellen88bmw" \
"hellen/hellen72 hellen72" \
"hellen/hellen81 hellen81" \
"hellen/hellen-nb1 hellen-nb1" \
"hellen/hellen-gm-e67 hellen-gm-e67" \
"hellen/hellen64_miataNA6_94 hellenNA6" \
"hellen/hellenNA8_96 hellenNA8_96" \
"microrusefi mre_f7" \
"microrusefi mre_f4" \
"core8 core8" \
"48way 48way" \
"m74_9 m74_9" \
"s105 s105" \
"frankenso frankenso_na6" \
"prometheus prometheus_469" \
"prometheus prometheus_405" \
"proteus proteus_f7" \
"proteus proteus_f4" \
"proteus proteus_h7" \
"f407-discovery f407-discovery" \
"f429-discovery f429-discovery" \
"atlas atlas"\
"tdg-pdm8 tdg-pdm8"\
"config/boards/hellen/alphax-2chan alphax-2chan" \
"config/boards/hellen/alphax-4chan alphax-4chan" \
"config/boards/hellen/alphax-8chan alphax-8chan" \
"config/boards/hellen/harley81 harley81" \
"config/boards/hellen/hellen128 hellen128 rusefi_hellen128mercedes.ini" \
"config/boards/hellen/hellen121vag hellen121vag" \
"config/boards/hellen/hellen121nissan hellen121nissan" \
"config/boards/hellen/hellen-honda-k hellen-honda-k" \
"config/boards/hellen/hellen154hyundai hellen154hyundai" \
"config/boards/hellen/hellen88bmw hellen88bmw" \
"config/boards/hellen/hellen72 hellen72" \
"config/boards/hellen/hellen81 hellen81" \
"config/boards/hellen/hellen-nb1 hellen-nb1" \
"config/boards/hellen/hellen-gm-e67 hellen-gm-e67" \
"config/boards/hellen/hellen64_miataNA6_94 hellenNA6" \
"config/boards/hellen/hellenNA8_96 hellenNA8_96" \
"config/boards/microrusefi mre_f7" \
"config/boards/microrusefi mre_f4" \
"config/boards/core8 core8" \
"config/boards/48way 48way" \
"config/boards/m74_9 m74_9" \
"config/boards/s105 s105" \
"config/boards/frankenso frankenso_na6" \
"config/boards/prometheus prometheus_469" \
"config/boards/prometheus prometheus_405" \
"config/boards/proteus proteus_f7" \
"config/boards/proteus proteus_f4" \
"config/boards/proteus proteus_h7" \
"config/boards/f407-discovery f407-discovery" \
"config/boards/f429-discovery f429-discovery" \
"config/boards/atlas atlas"\
"config/boards/tdg-pdm8 tdg-pdm8"\
; do
BOARD_NAME=$(echo "$BOARD" | cut -d " " -f 1)
BOARD_SHORT_NAME=$(echo "$BOARD" | cut -d " " -f 2)

View File

@ -15,7 +15,7 @@ if [ -z "$1" ]; then
exit 1
fi
BOARDNAME=$1
BOARD_DIR=$1
SHORT_BOARDNAME=$2
if [ -n "$3" ]; then
INI="$3"
@ -23,16 +23,15 @@ else
INI="rusefi_${SHORT_BOARDNAME}.ini"
fi
echo "BOARDNAME=${BOARDNAME} SHORT_BOARDNAME=${SHORT_BOARDNAME}"
echo "BOARD_DIR=${BOARD_DIR} SHORT_BOARDNAME=${SHORT_BOARDNAME}"
bash gen_signature.sh ${SHORT_BOARDNAME}
BOARD_DIR=config/boards/${BOARDNAME}
PREPEND_FILE=${BOARD_DIR}/prepend.txt
BOARD_SPECIFIC_URL=$(cat $PREPEND_FILE | grep MAIN_HELP_URL | cut -d " " -f 3 | sed -e 's/^"//' -e 's/"$//')
echo "BOARD_SPECIFIC_URL=[$BOARD_SPECIFIC_URL] for [$BOARDNAME] as [$SHORT_BOARDNAME]"
echo "BOARD_SPECIFIC_URL=[$BOARD_SPECIFIC_URL] for [$SHORT_BOARDNAME] from [$BOARD_DIR]"
if [ "" = "$BOARD_SPECIFIC_URL" ]; then
BOARD_SPECIFIC_URL=https://rusefi.com/s/wiki
fi
@ -51,7 +50,7 @@ java \
-c_defines controllers/generated/rusefi_generated.h \
-c_destination controllers/generated/engine_configuration_generated_structures.h
[ $? -eq 0 ] || { echo "ERROR generating TunerStudio config for ${BOARDNAME}"; exit 1; }
[ $? -eq 0 ] || { echo "ERROR generating TunerStudio config for ${BOARD_DIR}"; exit 1; }
# we generate both versions of the header but only one would be actually included due to conditional compilation see EFI_USE_COMPRESSED_INI_MSD
# todo: make things consistent by
@ -62,5 +61,5 @@ java \
hw_layer/mass_storage/create_ini_image.sh ./tunerstudio/generated/${INI} ./hw_layer/mass_storage/ramdisk_image.h 128 ${SHORT_BOARDNAME} ${BOARD_SPECIFIC_URL}
hw_layer/mass_storage/create_ini_image_compressed.sh ./tunerstudio/generated/${INI} ./hw_layer/mass_storage/ramdisk_image_compressed.h 1088 ${SHORT_BOARDNAME} ${BOARD_SPECIFIC_URL}
echo "Happy ${SHORT_BOARDNAME}"
echo "Happy ${SHORT_BOARDNAME}!"
exit 0

View File

@ -22,5 +22,5 @@ COMMON_GEN_CONFIG="
-signature_destination controllers/generated/signature_${SHORT_BOARDNAME}.h \
-ts_output_name generated/${INI} \
-prepend ${BOARD_DIR}/prepend.txt \
-board ${BOARDNAME} \
-board ${BOARD_DIR} \
-definition integration/rusefi_config.txt"

View File

@ -1,5 +1,5 @@
#!/bin/bash
# file gen_config_default.sh
bash gen_config_board.sh f407-discovery f407-discovery rusefi.ini
bash gen_config_board.sh config/boards/f407-discovery f407-discovery rusefi.ini
exit $?

Binary file not shown.

View File

@ -143,7 +143,7 @@ public class ConfigDefinition {
break;
case KEY_BOARD_NAME:
String boardName = args[i + 1];
pinoutLogic = PinoutLogic.create(boardName, PinoutLogic.CONFIG_BOARDS);
pinoutLogic = PinoutLogic.create(boardName);
if (pinoutLogic != null) {
for (String inputFile : pinoutLogic.getInputFiles())
state.addInputFile(inputFile);

View File

@ -19,7 +19,6 @@ import static com.rusefi.output.JavaSensorsConsumer.quote;
public class PinoutLogic {
private static final Logging log = getLogging(PinoutLogic.class);
public static final String CONFIG_BOARDS = "config/boards/";
private static final String CONNECTORS = "/connectors";
private static final String NONE = "NONE";
private static final String QUOTED_NONE = quote(NONE);
@ -196,19 +195,9 @@ public class PinoutLogic {
PinState thisPin = new PinState(id, pinTsName, pinClass);
globalList.add(thisPin);
}
/*
public static void main(String[] args) throws IOException {
String boardName = "hellen-gm-e67";
PinoutLogic logic = create(boardName,"../../firmware/config/boards/hellen/");
logic.readFiles();
log.info(logic.toString());
registerPins(boardName, logic.globalList, new VariableRegistry(), new ReaderState());
}
*/
public static PinoutLogic create(String boardName, String rootFolder) {
String dirPath = rootFolder + boardName + PinoutLogic.CONNECTORS;
public static PinoutLogic create(String boardName) {
String dirPath = boardName + PinoutLogic.CONNECTORS;
File dirName = new File(dirPath);
FilenameFilter filter = (f, name) -> name.endsWith(".yaml");
File[] boardYamlFiles = dirName.listFiles(filter);
@ -224,7 +213,7 @@ public class PinoutLogic {
readFiles();
registerPins(boardName, globalList, registry, state, parseState);
try (FileWriter getTsNameByIdFile = new FileWriter(PinoutLogic.CONFIG_BOARDS + boardName + PinoutLogic.CONNECTORS + File.separator + "generated_ts_name_by_pin.cpp")) {
try (FileWriter getTsNameByIdFile = new FileWriter(boardName + PinoutLogic.CONNECTORS + File.separator + "generated_ts_name_by_pin.cpp")) {
getTsNameByIdFile.append(header);
getTsNameByIdFile.append("#include \"pch.h\"\n\n");
@ -256,8 +245,7 @@ public class PinoutLogic {
public List<String> getInputFiles() {
List<String> result = new ArrayList<>();
for (File yamlFile : boardYamlFiles) {
result.add(PinoutLogic.CONFIG_BOARDS + boardName + PinoutLogic.CONNECTORS +
File.separator + yamlFile.getName());
result.add(boardName + PinoutLogic.CONNECTORS + File.separator + yamlFile.getName());
}
return result;
}

View File

@ -1,18 +1,18 @@
#!/bin/bash
# for example 'proteus'
BOARD_NAME="$1"
# fail on error!
set -e
# for example 'mre-f4'
# for example 'config/boards/proteus'
BOARD_DIR="$1"
# for example 'proteus_f4'
export BUNDLE_NAME="$2"
export INI_FILE_OVERRIDE="$3"
export RUSEFI_CONSOLE_SETTINGS="$4"
SCRIPT_NAME=compile_and_upload.sh
echo "Entering $SCRIPT_NAME with 1=$1 2=$2 3=$3 4=$4"
echo "Entering $SCRIPT_NAME with folder $BOARD_DIR and bundle name $BUNDLE_NAME"
[ -n $BOARD_NAME ] || { echo "BOARD_NAME parameter expected"; exit 1; }
[ -n $BOARD_DIR ] || { echo "BOARD_DIR parameter expected"; exit 1; }
[ -n $BUNDLE_NAME ] || { echo "BUNDLE_NAME parameter expected"; exit 1; }
@ -24,24 +24,10 @@ cd ..
root_dir=$(pwd)
cd firmware/config/boards
pwd
cd $BOARD_NAME
cd firmware/$BOARD_DIR
pwd
echo "Invoking $COMPILE_SCRIPT"
bash $COMPILE_SCRIPT
[ $? -eq 0 ] || { echo "ERROR invoking $COMPILE_SCRIPT"; exit 1; }
echo "We are in"
pwd
cd ${root_dir}
echo "We are now in"
pwd
[ -e firmware/build/rusefi.hex ] || { echo "Just to confirm - FAILED to compile with $COMPILE_SCRIPT"; exit 1; }
# We are back at root rusEFI folder
pwd
echo "exiting $SCRIPT_NAME"
echo "Success for $SCRIPT_NAME!"