mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-03 01:39:30 +02:00

* Change deprecated Send_P to send function * Fix compilation warnings in Wifi files * Change warnings into compilation errors * Add -Wall -Wextra -Wpedantic -Werror to github actions
93 lines
3.6 KiB
YAML
93 lines
3.6 KiB
YAML
# This is the name of the workflow, visible on GitHub UI.
|
|
name: Compile All Hardware
|
|
|
|
# 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-hardware:
|
|
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:
|
|
- BYD_CAN
|
|
# These are the supported hardware platforms for which the code will be compiled.
|
|
hardware:
|
|
- HW_LILYGO
|
|
- HW_STARK
|
|
- HW_3LB
|
|
- HW_DEVKIT
|
|
|
|
# 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
|