Merge pull request #689 from dalathegreat/improvement/Zoe-gen1-charge… #3011
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 | |
- BYD_ATTO_3_BATTERY | |
- CELLPOWER_BMS | |
- CHADEMO_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 | |
- 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 | |
- TESLA_MODEL_3Y_BATTERY | |
- TESLA_MODEL_SX_BATTERY | |
- VOLVO_SPA_BATTERY | |
- TEST_FAKE_BATTERY | |
- SERIAL_LINK_RECEIVER | |
# These are the emulated inverter communication protocols for which the code will be compiled. | |
inverter: | |
- BYD_CAN | |
# 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 | |
# 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 -DESP32 -D${{ matrix.battery}} -D${{ matrix.inverter}}" ./Software |