mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-03 09:49:32 +02:00
Build only common image for Lilygo and Stark with platform IO
This commit is contained in:
parent
2b6ad122bb
commit
0c0b2f813e
8 changed files with 114 additions and 697 deletions
120
.github/workflows/compile-all-batteries.yml
vendored
120
.github/workflows/compile-all-batteries.yml
vendored
|
@ -1,120 +0,0 @@
|
||||||
# This is the name of the workflow, visible on GitHub UI.
|
|
||||||
name: 🔋 Compile All Batteries
|
|
||||||
|
|
||||||
# Here we tell GitHub when to run the workflow.
|
|
||||||
on:
|
|
||||||
# The workflow is run when a commit is pushed or for a
|
|
||||||
# Pull Request.
|
|
||||||
- push
|
|
||||||
- pull_request
|
|
||||||
|
|
||||||
# This is the list of jobs that will be run concurrently.
|
|
||||||
jobs:
|
|
||||||
# This pre-job is run to skip workflows in case a workflow is already run, i.e. because the workflow is triggered by both push and pull_request
|
|
||||||
skip-duplicate-actions:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
# Map a step output to a job output
|
|
||||||
outputs:
|
|
||||||
should_skip: ${{ steps.skip_check.outputs.should_skip }}
|
|
||||||
steps:
|
|
||||||
- id: skip_check
|
|
||||||
uses: fkirc/skip-duplicate-actions@v5
|
|
||||||
with:
|
|
||||||
# All of these options are optional, so you can remove them if you are happy with the defaults
|
|
||||||
concurrent_skipping: 'never'
|
|
||||||
skip_after_successful_duplicate: 'true'
|
|
||||||
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'
|
|
||||||
|
|
||||||
# Since we use a build matrix, the actual number of jobs
|
|
||||||
# started depends on how many configurations the matrix
|
|
||||||
# will produce.
|
|
||||||
build-batteries:
|
|
||||||
needs: skip-duplicate-actions
|
|
||||||
if: needs.skip-duplicate-actions.outputs.should_skip != 'true'
|
|
||||||
|
|
||||||
# Here we tell GitHub that the jobs must be determined
|
|
||||||
# dynamically depending on a matrix configuration.
|
|
||||||
strategy:
|
|
||||||
# The matrix will produce one job for each combination of parameters.
|
|
||||||
matrix:
|
|
||||||
# This is the development board hardware for which the code will be compiled.
|
|
||||||
# FBQN stands for "fully qualified board name", and is used by Arduino to define the hardware to compile for.
|
|
||||||
fqbn:
|
|
||||||
- esp32:esp32:esp32
|
|
||||||
# further ESP32 chips
|
|
||||||
#- esp32:esp32:esp32c3
|
|
||||||
#- esp32:esp32:esp32c2
|
|
||||||
#- esp32:esp32:esp32c6
|
|
||||||
#- esp32:esp32:esp32h2
|
|
||||||
#- esp32:esp32:esp32s3
|
|
||||||
# These are the batteries for which the code will be compiled.
|
|
||||||
battery:
|
|
||||||
- BMW_I3_BATTERY
|
|
||||||
- BMW_IX_BATTERY
|
|
||||||
- BMW_PHEV_BATTERY
|
|
||||||
- BYD_ATTO_3_BATTERY
|
|
||||||
- CELLPOWER_BMS
|
|
||||||
- CHADEMO_BATTERY
|
|
||||||
- CMFA_EV_BATTERY
|
|
||||||
- DALY_BMS
|
|
||||||
- FOXESS_BATTERY
|
|
||||||
- GEELY_GEOMETRY_C_BATTERY
|
|
||||||
- IMIEV_CZERO_ION_BATTERY
|
|
||||||
- JAGUAR_IPACE_BATTERY
|
|
||||||
- KIA_E_GMP_BATTERY
|
|
||||||
- KIA_HYUNDAI_64_BATTERY
|
|
||||||
- KIA_HYUNDAI_HYBRID_BATTERY
|
|
||||||
- MEB_BATTERY
|
|
||||||
- MG_5_BATTERY
|
|
||||||
- NISSAN_LEAF_BATTERY
|
|
||||||
- ORION_BMS
|
|
||||||
- PYLON_BATTERY
|
|
||||||
- RJXZS_BMS
|
|
||||||
- RANGE_ROVER_PHEV_BATTERY
|
|
||||||
- RENAULT_KANGOO_BATTERY
|
|
||||||
- RENAULT_TWIZY_BATTERY
|
|
||||||
- RENAULT_ZOE_GEN1_BATTERY
|
|
||||||
- RENAULT_ZOE_GEN2_BATTERY
|
|
||||||
- SANTA_FE_PHEV_BATTERY
|
|
||||||
- STELLANTIS_ECMP_BATTERY
|
|
||||||
- TESLA_MODEL_3Y_BATTERY
|
|
||||||
- TESLA_MODEL_SX_BATTERY
|
|
||||||
- VOLVO_SPA_BATTERY
|
|
||||||
- TEST_FAKE_BATTERY
|
|
||||||
# These are the emulated inverter communication protocols for which the code will be compiled.
|
|
||||||
inverter:
|
|
||||||
- BYD_CAN
|
|
||||||
# These are the supported hardware platforms for which the code will be compiled.
|
|
||||||
hardware:
|
|
||||||
- HW_LILYGO
|
|
||||||
|
|
||||||
# This is the platform GitHub will use to run our workflow.
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
# This is the list of steps this job will run.
|
|
||||||
steps:
|
|
||||||
# First we clone the repo using the `checkout` action.
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
- name: Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
run: cp ./Software/USER_SECRETS.TEMPLATE.h ./Software/USER_SECRETS.h
|
|
||||||
|
|
||||||
# We use the `arduino/setup-arduino-cli` action to install and
|
|
||||||
# configure the Arduino CLI on the system.
|
|
||||||
- name: Setup Arduino CLI
|
|
||||||
uses: arduino/setup-arduino-cli@v2
|
|
||||||
|
|
||||||
# We then install the platform.
|
|
||||||
- name: Install platform
|
|
||||||
run: |
|
|
||||||
arduino-cli core update-index
|
|
||||||
arduino-cli core install esp32:esp32
|
|
||||||
|
|
||||||
# Finally, we compile the sketch, using the FQBN that was set
|
|
||||||
# in the build matrix, and using build flags to define the
|
|
||||||
# battery and inverter set in the build matrix.
|
|
||||||
- name: Compile Sketch
|
|
||||||
run: arduino-cli compile --fqbn ${{ matrix.fqbn }} --build-property build.partitions=min_spiffs --build-property upload.maximum_size=1966080 --build-property "build.extra_flags=-Wall -Wextra -Wpedantic -Werror -DESP32 -D${{ matrix.battery}} -D${{ matrix.inverter}} -D${{ matrix.hardware}}" ./Software
|
|
||||||
|
|
291
.github/workflows/compile-all-combinations.yml
vendored
291
.github/workflows/compile-all-combinations.yml
vendored
|
@ -1,291 +0,0 @@
|
||||||
# This is the name of the workflow, visible on GitHub UI.
|
|
||||||
name: 🔌🔋💫 Compile All Combinations
|
|
||||||
|
|
||||||
# Here we tell GitHub when to run the workflow.
|
|
||||||
on:
|
|
||||||
# This allows you to run this workflow manually from the
|
|
||||||
# GitHub Actions tab.
|
|
||||||
workflow_dispatch:
|
|
||||||
# The workflow is run upon creating, editing,
|
|
||||||
# pre-releasing, releasing and publishing a release
|
|
||||||
release:
|
|
||||||
types: [published]
|
|
||||||
|
|
||||||
# This is the list of jobs that will be run concurrently.
|
|
||||||
jobs:
|
|
||||||
# This pre-job is run to skip workflows in case a workflow is already run, i.e. because the workflow is triggered by both push and pull_request
|
|
||||||
skip-duplicate-actions:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
# Map a step output to a job output
|
|
||||||
outputs:
|
|
||||||
should_skip: ${{ steps.skip_check.outputs.should_skip }}
|
|
||||||
steps:
|
|
||||||
- id: skip_check
|
|
||||||
uses: fkirc/skip-duplicate-actions@v5
|
|
||||||
with:
|
|
||||||
# All of these options are optional, so you can remove them if you are happy with the defaults
|
|
||||||
concurrent_skipping: 'never'
|
|
||||||
skip_after_successful_duplicate: 'true'
|
|
||||||
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'
|
|
||||||
|
|
||||||
# Since we use a build matrix, the actual number of jobs
|
|
||||||
# started depends on how many configurations the matrix
|
|
||||||
# will produce.
|
|
||||||
|
|
||||||
# This is the name of the job.
|
|
||||||
build-matrix-batteries-A-to-J: # we split this matrix into multiple parts, to prevent en error that is triggered when the matrix expansion exeeds 255
|
|
||||||
needs: skip-duplicate-actions
|
|
||||||
if: needs.skip-duplicate-actions.outputs.should_skip != 'true'
|
|
||||||
|
|
||||||
# Here we tell GitHub that the jobs must be determined
|
|
||||||
# dynamically depending on a matrix configuration.
|
|
||||||
strategy:
|
|
||||||
# The matrix will produce one job for each combination of parameters.
|
|
||||||
matrix:
|
|
||||||
# This is the development board hardware for which the code will be compiled.
|
|
||||||
# FBQN stands for "fully qualified board name", and is used by Arduino to define the hardware to compile for.
|
|
||||||
fqbn:
|
|
||||||
- esp32:esp32:esp32
|
|
||||||
# further ESP32 chips
|
|
||||||
#- esp32:esp32:esp32c3
|
|
||||||
#- esp32:esp32:esp32c2
|
|
||||||
#- esp32:esp32:esp32c6
|
|
||||||
#- esp32:esp32:esp32h2
|
|
||||||
#- esp32:esp32:esp32s3
|
|
||||||
# These are the batteries for which the code will be compiled.
|
|
||||||
battery:
|
|
||||||
- BMW_I3_BATTERY
|
|
||||||
- BMW_IX_BATTERY
|
|
||||||
- BMW_PHEV_BATTERY
|
|
||||||
- BYD_ATTO_3_BATTERY
|
|
||||||
- CELLPOWER_BMS
|
|
||||||
- CHADEMO_BATTERY
|
|
||||||
- FOXESS_BATTERY
|
|
||||||
- IMIEV_CZERO_ION_BATTERY
|
|
||||||
- JAGUAR_IPACE_BATTERY
|
|
||||||
# These are the emulated inverter communication protocols for which the code will be compiled.
|
|
||||||
inverter:
|
|
||||||
- AFORE_CAN
|
|
||||||
- BYD_CAN
|
|
||||||
- BYD_KOSTAL_RS485
|
|
||||||
- BYD_MODBUS
|
|
||||||
- FERROAMP_CAN
|
|
||||||
- FOXESS_CAN
|
|
||||||
- GROWATT_HV_CAN
|
|
||||||
- GROWATT_LV_CAN
|
|
||||||
- PYLON_CAN
|
|
||||||
- PYLON_LV_CAN
|
|
||||||
- SCHNEIDER_CAN
|
|
||||||
- SMA_BYD_H_CAN
|
|
||||||
- SMA_BYD_HVS_CAN
|
|
||||||
- SMA_LV_CAN
|
|
||||||
- SMA_TRIPOWER_CAN
|
|
||||||
- SOFAR_CAN
|
|
||||||
- SOLAX_CAN
|
|
||||||
- SUNGROW_CAN
|
|
||||||
# These are the supported hardware platforms for which the code will be compiled.
|
|
||||||
hardware:
|
|
||||||
- HW_LILYGO
|
|
||||||
|
|
||||||
# This is the platform GitHub will use to run our workflow.
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
# This is the list of steps this job will run.
|
|
||||||
steps:
|
|
||||||
# First we clone the repo using the `checkout` action.
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
- name: Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
run: cp ./Software/USER_SECRETS.TEMPLATE.h ./Software/USER_SECRETS.h
|
|
||||||
|
|
||||||
# We use the `arduino/setup-arduino-cli` action to install and
|
|
||||||
# configure the Arduino CLI on the system.
|
|
||||||
- name: Setup Arduino CLI
|
|
||||||
uses: arduino/setup-arduino-cli@v2
|
|
||||||
|
|
||||||
# We then install the platform.
|
|
||||||
- name: Install platform
|
|
||||||
run: |
|
|
||||||
arduino-cli core update-index
|
|
||||||
arduino-cli core install esp32:esp32
|
|
||||||
|
|
||||||
# Finally, we compile the sketch, using the FQBN that was set
|
|
||||||
# in the build matrix, and using build flags to define the
|
|
||||||
# battery and inverter set in the build matrix.
|
|
||||||
- name: Compile Sketch
|
|
||||||
run: arduino-cli compile --fqbn ${{ matrix.fqbn }} --build-property "build.extra_flags=-Wall -Wextra -Wpedantic -Werror -DESP32 -D${{ matrix.battery}} -D${{ matrix.inverter}} -D${{ matrix.hardware}}" ./Software
|
|
||||||
|
|
||||||
|
|
||||||
# This is the name of the job.
|
|
||||||
build-matrix-batteries-K-to-P:
|
|
||||||
needs: skip-duplicate-actions
|
|
||||||
if: needs.skip-duplicate-actions.outputs.should_skip != 'true'
|
|
||||||
|
|
||||||
# Here we tell GitHub that the jobs must be determined
|
|
||||||
# dynamically depending on a matrix configuration.
|
|
||||||
strategy:
|
|
||||||
# The matrix will produce one job for each combination of parameters.
|
|
||||||
matrix:
|
|
||||||
# This is the development board hardware for which the code will be compiled.
|
|
||||||
# FBQN stands for "fully qualified board name", and is used by Arduino to define the hardware to compile for.
|
|
||||||
fqbn:
|
|
||||||
- esp32:esp32:esp32
|
|
||||||
# further ESP32 chips
|
|
||||||
#- esp32:esp32:esp32c3
|
|
||||||
#- esp32:esp32:esp32c2
|
|
||||||
#- esp32:esp32:esp32c6
|
|
||||||
#- esp32:esp32:esp32h2
|
|
||||||
#- esp32:esp32:esp32s3
|
|
||||||
# These are the batteries for which the code will be compiled.
|
|
||||||
battery:
|
|
||||||
- KIA_E_GMP_BATTERY
|
|
||||||
- KIA_HYUNDAI_64_BATTERY
|
|
||||||
- KIA_HYUNDAI_HYBRID_BATTERY
|
|
||||||
- MEB_BATTERY
|
|
||||||
- MG_5_BATTERY
|
|
||||||
- NISSAN_LEAF_BATTERY
|
|
||||||
- ORION_BMS
|
|
||||||
- PYLON_BATTERY
|
|
||||||
# These are the emulated inverter communication protocols for which the code will be compiled.
|
|
||||||
inverter:
|
|
||||||
- AFORE_CAN
|
|
||||||
- BYD_CAN
|
|
||||||
- BYD_KOSTAL_RS485
|
|
||||||
- BYD_MODBUS
|
|
||||||
- FERROAMP_CAN
|
|
||||||
- FOXESS_CAN
|
|
||||||
- GROWATT_HV_CAN
|
|
||||||
- GROWATT_LV_CAN
|
|
||||||
- PYLON_CAN
|
|
||||||
- PYLON_LV_CAN
|
|
||||||
- SCHNEIDER_CAN
|
|
||||||
- SMA_BYD_H_CAN
|
|
||||||
- SMA_BYD_HVS_CAN
|
|
||||||
- SMA_LV_CAN
|
|
||||||
- SMA_TRIPOWER_CAN
|
|
||||||
- SOFAR_CAN
|
|
||||||
- SOLAX_CAN
|
|
||||||
- SUNGROW_CAN
|
|
||||||
# These are the supported hardware platforms for which the code will be compiled.
|
|
||||||
hardware:
|
|
||||||
- HW_LILYGO
|
|
||||||
|
|
||||||
# This is the platform GitHub will use to run our workflow.
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
# This is the list of steps this job will run.
|
|
||||||
steps:
|
|
||||||
# First we clone the repo using the `checkout` action.
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
- name: Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
run: cp ./Software/USER_SECRETS.TEMPLATE.h ./Software/USER_SECRETS.h
|
|
||||||
|
|
||||||
# We use the `arduino/setup-arduino-cli` action to install and
|
|
||||||
# configure the Arduino CLI on the system.
|
|
||||||
- name: Setup Arduino CLI
|
|
||||||
uses: arduino/setup-arduino-cli@v2
|
|
||||||
|
|
||||||
# We then install the platform.
|
|
||||||
- name: Install platform
|
|
||||||
run: |
|
|
||||||
arduino-cli core update-index
|
|
||||||
arduino-cli core install esp32:esp32
|
|
||||||
|
|
||||||
# Finally, we compile the sketch, using the FQBN that was set
|
|
||||||
# in the build matrix, and using build flags to define the
|
|
||||||
# battery and inverter set in the build matrix.
|
|
||||||
- name: Compile Sketch
|
|
||||||
run: arduino-cli compile --fqbn ${{ matrix.fqbn }} --build-property "build.extra_flags=-Wall -Wextra -Wpedantic -Werror -DESP32 -D${{ matrix.battery}} -D${{ matrix.inverter}} -D${{ matrix.hardware}}" ./Software
|
|
||||||
|
|
||||||
# This is the name of the job.
|
|
||||||
build-matrix-batteries-R-to-Z:
|
|
||||||
needs: skip-duplicate-actions
|
|
||||||
if: needs.skip-duplicate-actions.outputs.should_skip != 'true'
|
|
||||||
|
|
||||||
# Here we tell GitHub that the jobs must be determined
|
|
||||||
# dynamically depending on a matrix configuration.
|
|
||||||
strategy:
|
|
||||||
# The matrix will produce one job for each combination of parameters.
|
|
||||||
matrix:
|
|
||||||
# This is the development board hardware for which the code will be compiled.
|
|
||||||
# FBQN stands for "fully qualified board name", and is used by Arduino to define the hardware to compile for.
|
|
||||||
fqbn:
|
|
||||||
- esp32:esp32:esp32
|
|
||||||
# further ESP32 chips
|
|
||||||
#- esp32:esp32:esp32c3
|
|
||||||
#- esp32:esp32:esp32c2
|
|
||||||
#- esp32:esp32:esp32c6
|
|
||||||
#- esp32:esp32:esp32h2
|
|
||||||
#- esp32:esp32:esp32s3
|
|
||||||
# These are the batteries for which the code will be compiled.
|
|
||||||
battery:
|
|
||||||
- RANGE_ROVER_PHEV_BATTERY
|
|
||||||
- RENAULT_KANGOO_BATTERY
|
|
||||||
- RENAULT_TWIZY_BATTERY
|
|
||||||
- RENAULT_ZOE_GEN1_BATTERY
|
|
||||||
- RENAULT_ZOE_GEN2_BATTERY
|
|
||||||
- RJXZS_BMS
|
|
||||||
- SANTA_FE_PHEV_BATTERY
|
|
||||||
- STELLANTIS_ECMP_BATTERY
|
|
||||||
- TESLA_MODEL_3Y_BATTERY
|
|
||||||
- TESLA_MODEL_SX_BATTERY
|
|
||||||
- VOLVO_SPA_BATTERY
|
|
||||||
- TEST_FAKE_BATTERY
|
|
||||||
# These are the emulated inverter communication protocols for which the code will be compiled.
|
|
||||||
inverter:
|
|
||||||
- AFORE_CAN
|
|
||||||
- BYD_CAN
|
|
||||||
- BYD_KOSTAL_RS485
|
|
||||||
- BYD_MODBUS
|
|
||||||
- FERROAMP_CAN
|
|
||||||
- FOXESS_CAN
|
|
||||||
- GROWATT_HV_CAN
|
|
||||||
- GROWATT_LV_CAN
|
|
||||||
- PYLON_CAN
|
|
||||||
- PYLON_LV_CAN
|
|
||||||
- SCHNEIDER_CAN
|
|
||||||
- SMA_BYD_H_CAN
|
|
||||||
- SMA_BYD_HVS_CAN
|
|
||||||
- SMA_LV_CAN
|
|
||||||
- SMA_TRIPOWER_CAN
|
|
||||||
- SOFAR_CAN
|
|
||||||
- SOLAX_CAN
|
|
||||||
- SUNGROW_CAN
|
|
||||||
# These are the supported hardware platforms for which the code will be compiled.
|
|
||||||
hardware:
|
|
||||||
- HW_LILYGO
|
|
||||||
|
|
||||||
# This is the platform GitHub will use to run our workflow.
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
# This is the list of steps this job will run.
|
|
||||||
steps:
|
|
||||||
# First we clone the repo using the `checkout` action.
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
- name: Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
run: cp ./Software/USER_SECRETS.TEMPLATE.h ./Software/USER_SECRETS.h
|
|
||||||
|
|
||||||
# We use the `arduino/setup-arduino-cli` action to install and
|
|
||||||
# configure the Arduino CLI on the system.
|
|
||||||
- name: Setup Arduino CLI
|
|
||||||
uses: arduino/setup-arduino-cli@v2
|
|
||||||
|
|
||||||
# We then install the platform.
|
|
||||||
- name: Install platform
|
|
||||||
run: |
|
|
||||||
arduino-cli core update-index
|
|
||||||
arduino-cli core install esp32:esp32
|
|
||||||
|
|
||||||
# Finally, we compile the sketch, using the FQBN that was set
|
|
||||||
# in the build matrix, and using build flags to define the
|
|
||||||
# battery and inverter set in the build matrix.
|
|
||||||
- name: Compile Sketch
|
|
||||||
run: arduino-cli compile --fqbn ${{ matrix.fqbn }} --build-property build.partitions=min_spiffs --build-property upload.maximum_size=1966080 --build-property "build.extra_flags=-Wall -Wextra -Wpedantic -Werror -DESP32 -D${{ matrix.battery}} -D${{ matrix.inverter}} -D${{ matrix.hardware}}" ./Software
|
|
|
@ -1,94 +0,0 @@
|
||||||
# This is the name of the workflow, visible on GitHub UI.
|
|
||||||
name: 🔋🔋 Compile All Double Batteries
|
|
||||||
|
|
||||||
# Here we tell GitHub when to run the workflow.
|
|
||||||
on:
|
|
||||||
# The workflow is run when a commit is pushed or for a
|
|
||||||
# Pull Request.
|
|
||||||
- push
|
|
||||||
- pull_request
|
|
||||||
|
|
||||||
# This is the list of jobs that will be run concurrently.
|
|
||||||
jobs:
|
|
||||||
# This pre-job is run to skip workflows in case a workflow is already run, i.e. because the workflow is triggered by both push and pull_request
|
|
||||||
skip-duplicate-actions:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
# Map a step output to a job output
|
|
||||||
outputs:
|
|
||||||
should_skip: ${{ steps.skip_check.outputs.should_skip }}
|
|
||||||
steps:
|
|
||||||
- id: skip_check
|
|
||||||
uses: fkirc/skip-duplicate-actions@v5
|
|
||||||
with:
|
|
||||||
# All of these options are optional, so you can remove them if you are happy with the defaults
|
|
||||||
concurrent_skipping: 'never'
|
|
||||||
skip_after_successful_duplicate: 'true'
|
|
||||||
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'
|
|
||||||
|
|
||||||
# Since we use a build matrix, the actual number of jobs
|
|
||||||
# started depends on how many configurations the matrix
|
|
||||||
# will produce.
|
|
||||||
build-batteries:
|
|
||||||
needs: skip-duplicate-actions
|
|
||||||
if: needs.skip-duplicate-actions.outputs.should_skip != 'true'
|
|
||||||
|
|
||||||
# Here we tell GitHub that the jobs must be determined
|
|
||||||
# dynamically depending on a matrix configuration.
|
|
||||||
strategy:
|
|
||||||
# The matrix will produce one job for each combination of parameters.
|
|
||||||
matrix:
|
|
||||||
# This is the development board hardware for which the code will be compiled.
|
|
||||||
# FBQN stands for "fully qualified board name", and is used by Arduino to define the hardware to compile for.
|
|
||||||
fqbn:
|
|
||||||
- esp32:esp32:esp32
|
|
||||||
# further ESP32 chips
|
|
||||||
#- esp32:esp32:esp32c3
|
|
||||||
#- esp32:esp32:esp32c2
|
|
||||||
#- esp32:esp32:esp32c6
|
|
||||||
#- esp32:esp32:esp32h2
|
|
||||||
#- esp32:esp32:esp32s3
|
|
||||||
# These are the batteries for which the code will be compiled.
|
|
||||||
battery:
|
|
||||||
- BMW_I3_BATTERY
|
|
||||||
- BYD_ATTO_3_BATTERY
|
|
||||||
- KIA_HYUNDAI_64_BATTERY
|
|
||||||
- PYLON_BATTERY
|
|
||||||
- SANTA_FE_PHEV_BATTERY
|
|
||||||
- TEST_FAKE_BATTERY
|
|
||||||
# These are the emulated inverter communication protocols for which the code will be compiled.
|
|
||||||
inverter:
|
|
||||||
- BYD_CAN
|
|
||||||
# These are the supported hardware platforms for which the code will be compiled.
|
|
||||||
hardware:
|
|
||||||
- HW_LILYGO
|
|
||||||
|
|
||||||
# This is the platform GitHub will use to run our workflow.
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
# This is the list of steps this job will run.
|
|
||||||
steps:
|
|
||||||
# First we clone the repo using the `checkout` action.
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
- name: Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
run: cp ./Software/USER_SECRETS.TEMPLATE.h ./Software/USER_SECRETS.h
|
|
||||||
|
|
||||||
# We use the `arduino/setup-arduino-cli` action to install and
|
|
||||||
# configure the Arduino CLI on the system.
|
|
||||||
- name: Setup Arduino CLI
|
|
||||||
uses: arduino/setup-arduino-cli@v2
|
|
||||||
|
|
||||||
# We then install the platform.
|
|
||||||
- name: Install platform
|
|
||||||
run: |
|
|
||||||
arduino-cli core update-index
|
|
||||||
arduino-cli core install esp32:esp32
|
|
||||||
|
|
||||||
# Finally, we compile the sketch, using the FQBN that was set
|
|
||||||
# in the build matrix, and using build flags to define the
|
|
||||||
# battery and inverter set in the build matrix.
|
|
||||||
- name: Compile Sketch
|
|
||||||
run: arduino-cli compile --fqbn ${{ matrix.fqbn }} --build-property build.partitions=min_spiffs --build-property upload.maximum_size=1966080 --build-property "build.extra_flags=-Wall -Wextra -Wpedantic -Werror -DESP32 -DDOUBLE_BATTERY -D${{ matrix.battery}} -D${{ matrix.inverter}} -D${{ matrix.hardware}}" ./Software
|
|
||||||
|
|
108
.github/workflows/compile-all-inverters.yml
vendored
108
.github/workflows/compile-all-inverters.yml
vendored
|
@ -1,108 +0,0 @@
|
||||||
# This is the name of the workflow, visible on GitHub UI.
|
|
||||||
name: 🔌 Compile All Inverters
|
|
||||||
|
|
||||||
# Here we tell GitHub when to run the workflow.
|
|
||||||
on:
|
|
||||||
# The workflow is run when a commit is pushed or for a
|
|
||||||
# Pull Request.
|
|
||||||
- push
|
|
||||||
- pull_request
|
|
||||||
|
|
||||||
# This is the list of jobs that will be run concurrently.
|
|
||||||
jobs:
|
|
||||||
# This pre-job is run to skip workflows in case a workflow is already run, i.e. because the workflow is triggered by both push and pull_request
|
|
||||||
skip-duplicate-actions:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
# Map a step output to a job output
|
|
||||||
outputs:
|
|
||||||
should_skip: ${{ steps.skip_check.outputs.should_skip }}
|
|
||||||
steps:
|
|
||||||
- id: skip_check
|
|
||||||
uses: fkirc/skip-duplicate-actions@v5
|
|
||||||
with:
|
|
||||||
# All of these options are optional, so you can remove them if you are happy with the defaults
|
|
||||||
concurrent_skipping: 'never'
|
|
||||||
skip_after_successful_duplicate: 'true'
|
|
||||||
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'
|
|
||||||
|
|
||||||
# Since we use a build matrix, the actual number of jobs
|
|
||||||
# started depends on how many configurations the matrix
|
|
||||||
# will produce.
|
|
||||||
|
|
||||||
# This is the name of the job.
|
|
||||||
build-inverters:
|
|
||||||
needs: skip-duplicate-actions
|
|
||||||
if: needs.skip-duplicate-actions.outputs.should_skip != 'true'
|
|
||||||
|
|
||||||
# Here we tell GitHub that the jobs must be determined
|
|
||||||
# dynamically depending on a matrix configuration.
|
|
||||||
strategy:
|
|
||||||
# The matrix will produce one job for each combination of parameters.
|
|
||||||
matrix:
|
|
||||||
# This is the development board hardware for which the code will be compiled.
|
|
||||||
# FBQN stands for "fully qualified board name", and is used by Arduino to define the hardware to compile for.
|
|
||||||
fqbn:
|
|
||||||
- esp32:esp32:esp32
|
|
||||||
# further ESP32 chips
|
|
||||||
#- esp32:esp32:esp32c3
|
|
||||||
#- esp32:esp32:esp32c2
|
|
||||||
#- esp32:esp32:esp32c6
|
|
||||||
#- esp32:esp32:esp32h2
|
|
||||||
#- esp32:esp32:esp32s3
|
|
||||||
# These are the batteries for which the code will be compiled.
|
|
||||||
battery:
|
|
||||||
- NISSAN_LEAF_BATTERY
|
|
||||||
# These are the emulated inverter communication protocols for which the code will be compiled.
|
|
||||||
inverter:
|
|
||||||
- AFORE_CAN
|
|
||||||
- BYD_CAN
|
|
||||||
- BYD_KOSTAL_RS485
|
|
||||||
- BYD_MODBUS
|
|
||||||
- FERROAMP_CAN
|
|
||||||
- FOXESS_CAN
|
|
||||||
- GROWATT_HV_CAN
|
|
||||||
- GROWATT_LV_CAN
|
|
||||||
- PYLON_CAN
|
|
||||||
- PYLON_LV_CAN
|
|
||||||
- SCHNEIDER_CAN
|
|
||||||
- SMA_BYD_H_CAN
|
|
||||||
- SMA_BYD_HVS_CAN
|
|
||||||
- SMA_LV_CAN
|
|
||||||
- SMA_TRIPOWER_CAN
|
|
||||||
- SOFAR_CAN
|
|
||||||
- SOLAX_CAN
|
|
||||||
- SUNGROW_CAN
|
|
||||||
- NISSANLEAF_CHARGER # Last element is not an inverter, but good to also test if the charger compiles
|
|
||||||
# These are the supported hardware platforms for which the code will be compiled.
|
|
||||||
hardware:
|
|
||||||
- HW_LILYGO
|
|
||||||
|
|
||||||
# This is the platform GitHub will use to run our workflow.
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
# This is the list of steps this job will run.
|
|
||||||
steps:
|
|
||||||
# First we clone the repo using the `checkout` action.
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
- name: Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
run: cp ./Software/USER_SECRETS.TEMPLATE.h ./Software/USER_SECRETS.h
|
|
||||||
|
|
||||||
# We use the `arduino/setup-arduino-cli` action to install and
|
|
||||||
# configure the Arduino CLI on the system.
|
|
||||||
- name: Setup Arduino CLI
|
|
||||||
uses: arduino/setup-arduino-cli@v2
|
|
||||||
|
|
||||||
# We then install the platform.
|
|
||||||
- name: Install platform
|
|
||||||
run: |
|
|
||||||
arduino-cli core update-index
|
|
||||||
arduino-cli core install esp32:esp32
|
|
||||||
|
|
||||||
# Finally, we compile the sketch, using the FQBN that was set
|
|
||||||
# in the build matrix, and using build flags to define the
|
|
||||||
# battery and inverter set in the build matrix.
|
|
||||||
- name: Compile Sketch
|
|
||||||
run: arduino-cli compile --fqbn ${{ matrix.fqbn }} --build-property build.partitions=min_spiffs --build-property upload.maximum_size=1966080 --build-property "build.extra_flags=-Wall -Wextra -Wpedantic -Werror -DESP32 -D${{ matrix.battery}} -D${{ matrix.inverter}} -D${{ matrix.hardware}}" ./Software
|
|
|
@ -1,58 +0,0 @@
|
||||||
# This is the name of the workflow, visible on GitHub UI.
|
|
||||||
name: 🔋 Compile Common Image for Lilygo with debug logging
|
|
||||||
|
|
||||||
# Here we tell GitHub when to run the workflow.
|
|
||||||
on:
|
|
||||||
# The workflow is run when a commit is pushed or for a
|
|
||||||
# Pull Request.
|
|
||||||
- push
|
|
||||||
- pull_request
|
|
||||||
|
|
||||||
# This is the list of jobs that will be run concurrently.
|
|
||||||
jobs:
|
|
||||||
# This pre-job is run to skip workflows in case a workflow is already run, i.e. because the workflow is triggered by both push and pull_request
|
|
||||||
skip-duplicate-actions:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
# Map a step output to a job output
|
|
||||||
outputs:
|
|
||||||
should_skip: ${{ steps.skip_check.outputs.should_skip }}
|
|
||||||
steps:
|
|
||||||
- id: skip_check
|
|
||||||
uses: fkirc/skip-duplicate-actions@v5
|
|
||||||
with:
|
|
||||||
# All of these options are optional, so you can remove them if you are happy with the defaults
|
|
||||||
concurrent_skipping: 'never'
|
|
||||||
skip_after_successful_duplicate: 'true'
|
|
||||||
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'
|
|
||||||
|
|
||||||
build-common-image:
|
|
||||||
# This is the platform GitHub will use to run our workflow.
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
- name: Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
|
||||||
run: cp ./Software/USER_SECRETS.TEMPLATE.h ./Software/USER_SECRETS.h
|
|
||||||
|
|
||||||
# We use the `arduino/setup-arduino-cli` action to install and
|
|
||||||
# configure the Arduino CLI on the system.
|
|
||||||
- name: Setup Arduino CLI
|
|
||||||
uses: arduino/setup-arduino-cli@v2
|
|
||||||
|
|
||||||
# We then install the platform.
|
|
||||||
- name: Install platform
|
|
||||||
run: |
|
|
||||||
arduino-cli core update-index
|
|
||||||
arduino-cli core install esp32:esp32
|
|
||||||
|
|
||||||
- name: Compile Sketch
|
|
||||||
run: arduino-cli compile --output-dir ./ --fqbn esp32:esp32:esp32 --build-property build.partitions=min_spiffs --build-property upload.maximum_size=1966080 --build-property "build.extra_flags=-Wall -Wextra -Wpedantic -Werror -DESP32 -DDEBUG_VIA_USB -DCOMMON_IMAGE -DHW_LILYGO" ./Software
|
|
||||||
|
|
||||||
- name: Upload artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: battery-emulator-lilygo-debug.bin
|
|
||||||
path: Software.ino.bin
|
|
|
@ -1,7 +1,5 @@
|
||||||
# This is the name of the workflow, visible on GitHub UI.
|
|
||||||
name: 🔋 Compile Common Image for Lilygo
|
name: 🔋 Compile Common Image for Lilygo
|
||||||
|
|
||||||
# Here we tell GitHub when to run the workflow.
|
|
||||||
on:
|
on:
|
||||||
# The workflow is run when a commit is pushed or for a
|
# The workflow is run when a commit is pushed or for a
|
||||||
# Pull Request.
|
# Pull Request.
|
||||||
|
@ -30,29 +28,31 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- uses: actions/checkout@v4
|
||||||
uses: actions/checkout@v4
|
name: Checkout code
|
||||||
|
|
||||||
|
- uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.cache/pip
|
||||||
|
~/.platformio/.cache
|
||||||
|
key: ${{ runner.os }}-pio
|
||||||
|
|
||||||
|
- uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.11'
|
||||||
|
- name: Install PlatformIO Core
|
||||||
|
run: pip install --upgrade platformio
|
||||||
|
|
||||||
# Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
# Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
||||||
- name: Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
- name: Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
||||||
run: cp ./Software/USER_SECRETS.TEMPLATE.h ./Software/USER_SECRETS.h
|
run: cp ./Software/USER_SECRETS.TEMPLATE.h ./Software/USER_SECRETS.h
|
||||||
|
|
||||||
# We use the `arduino/setup-arduino-cli` action to install and
|
- name: Build image for Lilygo
|
||||||
# configure the Arduino CLI on the system.
|
run: pio run -e lilygo_330
|
||||||
- name: Setup Arduino CLI
|
|
||||||
uses: arduino/setup-arduino-cli@v2
|
|
||||||
|
|
||||||
# We then install the platform.
|
- name: Upload artifact
|
||||||
- name: Install platform
|
uses: actions/upload-artifact@v4
|
||||||
run: |
|
with:
|
||||||
arduino-cli core update-index
|
name: battery-emulator-lilygo.bin
|
||||||
arduino-cli core install esp32:esp32
|
path: .pio/build/lilygo_330/firmware.bin
|
||||||
|
|
||||||
- name: Compile Sketch
|
|
||||||
run: arduino-cli compile --output-dir ./ --fqbn esp32:esp32:esp32 --build-property build.partitions=min_spiffs --build-property upload.maximum_size=1966080 --build-property "build.extra_flags=-Wall -Wextra -Wpedantic -Werror -DESP32 -DCOMMON_IMAGE -DHW_LILYGO" ./Software
|
|
||||||
|
|
||||||
- name: Upload artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: battery-emulator-lilygo.bin
|
|
||||||
path: Software.ino.bin
|
|
||||||
|
|
58
.github/workflows/compile-common-image-stark.yml
vendored
Normal file
58
.github/workflows/compile-common-image-stark.yml
vendored
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
name: 🔋 Compile Common Image for Stark CMR
|
||||||
|
|
||||||
|
on:
|
||||||
|
# The workflow is run when a commit is pushed or for a
|
||||||
|
# Pull Request.
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
|
||||||
|
# This is the list of jobs that will be run concurrently.
|
||||||
|
jobs:
|
||||||
|
# This pre-job is run to skip workflows in case a workflow is already run, i.e. because the workflow is triggered by both push and pull_request
|
||||||
|
skip-duplicate-actions:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
# Map a step output to a job output
|
||||||
|
outputs:
|
||||||
|
should_skip: ${{ steps.skip_check.outputs.should_skip }}
|
||||||
|
steps:
|
||||||
|
- id: skip_check
|
||||||
|
uses: fkirc/skip-duplicate-actions@v5
|
||||||
|
with:
|
||||||
|
# All of these options are optional, so you can remove them if you are happy with the defaults
|
||||||
|
concurrent_skipping: 'never'
|
||||||
|
skip_after_successful_duplicate: 'true'
|
||||||
|
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'
|
||||||
|
|
||||||
|
build-common-image:
|
||||||
|
# This is the platform GitHub will use to run our workflow.
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
name: Checkout code
|
||||||
|
|
||||||
|
- uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.cache/pip
|
||||||
|
~/.platformio/.cache
|
||||||
|
key: ${{ runner.os }}-pio
|
||||||
|
|
||||||
|
- uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.11'
|
||||||
|
- name: Install PlatformIO Core
|
||||||
|
run: pip install --upgrade platformio
|
||||||
|
|
||||||
|
# Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
||||||
|
- name: Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h
|
||||||
|
run: cp ./Software/USER_SECRETS.TEMPLATE.h ./Software/USER_SECRETS.h
|
||||||
|
|
||||||
|
- name: Build image for Stark CMR
|
||||||
|
run: pio run -e stark_330
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: battery-emulator-stark.bin
|
||||||
|
path: .pio/build/stark_330/firmware.bin
|
|
@ -12,7 +12,7 @@
|
||||||
src_dir = ./Software
|
src_dir = ./Software
|
||||||
|
|
||||||
[env:esp32dev]
|
[env:esp32dev]
|
||||||
platform = https://github.com/pioarduino/platform-espressif32/archive/refs/tags/54.03.21-new.zip ; Arduino 3.2.1 IDF 5.4.1
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.30/platform-espressif32.zip
|
||||||
board = esp32dev
|
board = esp32dev
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
monitor_filters = default, time, log2file
|
monitor_filters = default, time, log2file
|
||||||
|
@ -20,3 +20,33 @@ board_build.partitions = min_spiffs.csv
|
||||||
framework = arduino
|
framework = arduino
|
||||||
build_flags = -I include
|
build_flags = -I include
|
||||||
lib_deps =
|
lib_deps =
|
||||||
|
|
||||||
|
[env:lilygo_330]
|
||||||
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.30/platform-espressif32.zip
|
||||||
|
board = esp32dev
|
||||||
|
monitor_speed = 115200
|
||||||
|
monitor_filters = default, time, log2file
|
||||||
|
board_build.partitions = min_spiffs.csv
|
||||||
|
framework = arduino
|
||||||
|
build_flags = -I include -DHW_LILYGO -DCOMMON_IMAGE
|
||||||
|
lib_deps =
|
||||||
|
|
||||||
|
[env:stark_330]
|
||||||
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.30/platform-espressif32.zip
|
||||||
|
board = esp32dev
|
||||||
|
monitor_speed = 115200
|
||||||
|
monitor_filters = default, time, log2file, esp32_exception_decoder
|
||||||
|
board_build.partitions = min_spiffs.csv
|
||||||
|
framework = arduino
|
||||||
|
build_flags = -I include -DHW_STARK -DCOMMON_IMAGE
|
||||||
|
lib_deps =
|
||||||
|
|
||||||
|
[env:stark_330_debuglog]
|
||||||
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.30/platform-espressif32.zip
|
||||||
|
board = esp32dev
|
||||||
|
monitor_speed = 115200
|
||||||
|
monitor_filters = default, time, log2file, esp32_exception_decoder
|
||||||
|
board_build.partitions = min_spiffs.csv
|
||||||
|
framework = arduino
|
||||||
|
build_flags = -I include -DHW_STARK -DCOMMON_IMAGE -DDEBUG_VIA_USB
|
||||||
|
lib_deps =
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue