diff --git a/.github/workflows/compile-all-batteries.yml b/.github/workflows/compile-all-batteries.yml deleted file mode 100644 index 563c6aea..00000000 --- a/.github/workflows/compile-all-batteries.yml +++ /dev/null @@ -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 - \ No newline at end of file diff --git a/.github/workflows/compile-all-combinations.yml b/.github/workflows/compile-all-combinations.yml deleted file mode 100644 index 57e4860d..00000000 --- a/.github/workflows/compile-all-combinations.yml +++ /dev/null @@ -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 diff --git a/.github/workflows/compile-all-double-batteries.yml b/.github/workflows/compile-all-double-batteries.yml deleted file mode 100644 index f5807acf..00000000 --- a/.github/workflows/compile-all-double-batteries.yml +++ /dev/null @@ -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 - diff --git a/.github/workflows/compile-all-inverters.yml b/.github/workflows/compile-all-inverters.yml deleted file mode 100644 index 2bd79df2..00000000 --- a/.github/workflows/compile-all-inverters.yml +++ /dev/null @@ -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 diff --git a/.github/workflows/compile-common-image-lilygo-logging.yml b/.github/workflows/compile-common-image-lilygo-logging.yml deleted file mode 100644 index a84381e5..00000000 --- a/.github/workflows/compile-common-image-lilygo-logging.yml +++ /dev/null @@ -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 diff --git a/.github/workflows/compile-common-image-lilygo.yml b/.github/workflows/compile-common-image-lilygo.yml index 02fd25f5..33c3e5ba 100644 --- a/.github/workflows/compile-common-image-lilygo.yml +++ b/.github/workflows/compile-common-image-lilygo.yml @@ -1,7 +1,5 @@ -# This is the name of the workflow, visible on GitHub UI. name: 🔋 Compile Common Image for Lilygo -# Here we tell GitHub when to run the workflow. on: # The workflow is run when a commit is pushed or for a # Pull Request. @@ -30,29 +28,31 @@ jobs: runs-on: ubuntu-latest 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 - - name: Copy USER_SECRETS.TEMPLATE.h to USER_SECRETS.h - run: cp ./Software/USER_SECRETS.TEMPLATE.h ./Software/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 + - name: Build image for Lilygo + run: pio run -e lilygo_330 - # 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 -DCOMMON_IMAGE -DHW_LILYGO" ./Software - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: battery-emulator-lilygo.bin - path: Software.ino.bin + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: battery-emulator-lilygo.bin + path: .pio/build/lilygo_330/firmware.bin diff --git a/.github/workflows/compile-common-image-stark.yml b/.github/workflows/compile-common-image-stark.yml new file mode 100644 index 00000000..00b2c01c --- /dev/null +++ b/.github/workflows/compile-common-image-stark.yml @@ -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 diff --git a/platformio.ini b/platformio.ini index 87af7c12..f2f86972 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,7 +12,7 @@ src_dir = ./Software [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 monitor_speed = 115200 monitor_filters = default, time, log2file @@ -20,3 +20,33 @@ board_build.partitions = min_spiffs.csv framework = arduino build_flags = -I include 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 =