sensors: support AEM X series EGT CAN gauge #702
Workflow file for this run
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
name: Firmware at GHA | |
# | |
# this github action uses generate_matrix.sh to scan the file system and automatically produce build matrix! | |
# | |
on: | |
push: | |
pull_request: | |
schedule: | |
- cron: '0 0 * * *' | |
workflow_dispatch: | |
inputs: | |
lts: | |
description: 'LTS Build' | |
required: false | |
type: boolean | |
jobs: | |
build-libopenblt-linux: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: cmake configure libopenblt | |
working-directory: ./firmware/ext/openblt/Host/Source/LibOpenBLT/build | |
run: cmake -DCMAKE_BUILD_TYPE=Release .. | |
# - name: make libopenblt | |
# working-directory: ./firmware/ext/openblt/Host/Source/LibOpenBLT/build | |
# run: make -j8 | |
- name: cmake configure libopenblt_jni | |
working-directory: ./misc/libopenblt_jni/build | |
run: cmake -DCMAKE_BUILD_TYPE=Release .. | |
# - name: make libopenblt_jni | |
# working-directory: ./misc/libopenblt_jni/build | |
# run: make -j8 | |
- name: coalesce | |
if: 0 | |
run: | | |
mkdir deliver | |
cp ./firmware/ext/openblt/Host/libopenblt.so deliver/ | |
cp ./misc/libopenblt_jni/build/libopenblt_jni.so deliver/ | |
# - uses: actions/upload-artifact@v4 | |
# if: 0 | |
# name: libopenblt-linux | |
# path: | | |
# ./deliver/libopenblt.so | |
# ./deliver/libopenblt_jni.so | |
release: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Dump GitHub context | |
env: | |
GITHUB_CONTEXT: ${{ toJson(github) }} | |
run: echo "$GITHUB_CONTEXT" | |
- name: Set run condition variables | |
run: | | |
if [ "${{github.event_name}}" = "schedule" ] && [ "${{github.repository}}" = "rusefi/rusefi" ]; then | |
echo "full=true" >> $GITHUB_ENV | |
echo "upload=release" >> $GITHUB_ENV | |
echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_ENV | |
fi | |
- uses: mukunku/[email protected] | |
id: checkTag | |
with: | |
tag: ${{ env.date }} | |
- name: Create Release Tag | |
if: ${{ env.full == 'true' && env.upload == 'release' && steps.checkTag.outputs.exists == 'false' }} | |
id: tag | |
uses: mathieudutour/[email protected] | |
with: | |
github_token: ${{ secrets.ACCESS_TOKEN }} | |
custom_tag: ${{ env.date }} | |
tag_prefix: '' | |
- name: Create Release | |
if: ${{ env.full == 'true' && env.upload == 'release' }} | |
uses: ncipollo/[email protected] | |
with: | |
tag: ${{ env.date }} | |
name: "Nightly ${{ env.date }}" | |
artifacts: "artifacts/rusefi_bundle_*.zip" | |
replacesArtifacts: false | |
token: ${{ secrets.ACCESS_TOKEN }} | |
allowUpdates: true | |
prerelease: true | |
- name: coalesce | |
if: 0 | |
run: | | |
mkdir deliver | |
cp ./firmware/ext/openblt/Host/libopenblt.dylib deliver/ | |
cp ./misc/libopenblt_jni/build/libopenblt_jni.dylib deliver/ | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: bootcommander-linux | |
path: | | |
./deliver/libopenblt.dylib | |
./deliver/libopenblt_jni.dylib | |
generate-matrix: | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set matrix | |
id: set-matrix | |
run: | | |
export EVENT_NAME="${{github.event_name}}" | |
export RUN_ATTEMPT="${{github.run_attempt}}" | |
export COMMIT_MESSAGE="${{github.event.head_commit.message}}" | |
echo "matrix=$(bash firmware/bin/generate_matrix.sh)" >> $GITHUB_OUTPUT | |
build-firmware: | |
runs-on: ubuntu-latest | |
needs: [ | |
# todo proper build of build-libopenblt #5866 | |
#build-libopenblt-linux, | |
#build-libopenblt-macos, | |
release, | |
generate-matrix] | |
if: ${{ ! contains(needs.generate-matrix.outputs.matrix, '[]') }} | |
strategy: | |
# Let all builds finish even if one fails early | |
fail-fast: false | |
matrix: ${{fromJson(needs.generate-matrix.outputs.matrix)}} | |
steps: | |
- name: Check branch name | |
if: ${{ contains(github.ref_name, '.') }} | |
run: echo '::error::Branch names must not contain ".", this breaks firmware autoupdates.' && exit 1 | |
- name: Set run condition variables | |
run: | | |
if [ "${{github.event_name}}" = "schedule" ] && [ "${{github.repository}}" = "rusefi/rusefi" ]; then | |
echo "Scheduled mode" | |
echo "full=true" >> $GITHUB_ENV | |
echo "upload=release" >> $GITHUB_ENV | |
echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_ENV | |
elif [ "${{github.event_name}}" = "push" ]\ | |
&& [ "${{github.ref}}" = "refs/heads/master" ]\ | |
|| [ "${{toJSON(inputs.lts)}}" = "true" ]; then | |
echo "Full mode" | |
echo "full=true" >> $GITHUB_ENV | |
echo "upload=server" >> $GITHUB_ENV | |
else | |
echo "Partial mode" | |
echo "partial=true" >> $GITHUB_ENV | |
fi | |
- uses: actions/checkout@v4 | |
- name: Checkout Submodules | |
run: | | |
git submodule update --init --depth=1 firmware/ChibiOS | |
git submodule update --init --depth=1 firmware/ChibiOS-Contrib | |
git submodule update --init --depth=1 firmware/libfirmware | |
git submodule update --init --depth=1 firmware/ext/lua | |
git submodule update --init --depth=1 firmware/ext/uzlib | |
git submodule update --init --depth=1 firmware/ext/openblt | |
git submodule update --init --depth=1 firmware/controllers/lua/luaaa | |
git submodule update --init --depth=1 firmware/controllers/can/wideband_firmware | |
git submodule update --init --depth=1 java_console/luaformatter | |
git submodule update --init --depth=1 java_console/peak-can-basic | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: Install multilib, mingw, sshpass and mtools | |
run: | | |
sudo bash misc/actions/add-ubuntu-latest-apt-mirrors.sh | |
sudo apt-get install gcc-multilib g++-multilib g++-mingw-w64 gcc-mingw-w64 sshpass mtools zip dosfstools | |
- name: Set Build Env Variables | |
working-directory: ./firmware/ | |
run: | | |
echo LTS=${{toJSON(inputs.lts)}} >> $GITHUB_ENV | |
echo REF=${{github.ref_name}} >> $GITHUB_ENV | |
echo BOARD_META_PATH=${{matrix.meta-info}} >> $GITHUB_ENV | |
- name: Git Status | |
run: | | |
git status | |
# | |
# Note to humans: on personal devices we have firmware/provide_gcc.sh and setup_linux_environment.sh | |
# | |
- name: Install Arm GNU Toolchain (arm-none-eabi-gcc) | |
uses: carlosperate/arm-none-eabi-gcc-action@v1 | |
with: | |
release: '12.3.Rel1' | |
# Make sure the compiler we just downloaded works - just print out the version | |
- name: Test arm-none-eabi-gcc Compiler | |
run: arm-none-eabi-gcc -v | |
- name: Configs build_server upload SSH variables | |
if: ${{ env.full == 'true' && env.upload == 'server' }} | |
env: | |
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true' | |
run: | | |
echo "RUSEFI_SSH_SERVER=${{secrets.RUSEFI_SSH_SERVER}}" >> $GITHUB_ENV | |
echo "RUSEFI_SSH_USER=${{secrets.RUSEFI_SSH_USER}}" >> $GITHUB_ENV | |
echo "RUSEFI_SSH_PASS=${{secrets.RUSEFI_SSH_PASS}}" >> $GITHUB_ENV | |
# - name: Download LibOpenBLT Tool (Linux) | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: libopenblt-linux | |
# path: ./firmware/ext/openblt/Host/ | |
# - name: Download LibOpenBLT Tool (MacOS) | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: libopenblt-macos | |
# path: ./firmware/ext/openblt/Host/ | |
# Build the firmware! | |
- name: Build Firmware | |
working-directory: ./firmware/ | |
run: | | |
make clean | |
if [ "$full" == "true" ]; then | |
bash bin/compile.sh -b ${{env.BOARD_META_PATH}} | |
else | |
bash bin/compile.sh ${{env.BOARD_META_PATH}} all deliver/rusefi.dfu deliver/rusefi.bin | |
fi | |
- name: Upload Bundle | |
if: ${{ env.full == 'true' }} | |
working-directory: ./artifacts | |
run: | | |
source ../firmware/config/boards/common_script_read_meta_env.inc ../firmware/${{ env.BOARD_META_PATH }} | |
bash ../firmware/bin/upload_bundle.sh | |
- name: Add Bundles to Release | |
if: ${{ env.full == 'true' && env.upload == 'release' }} | |
uses: ncipollo/[email protected] | |
with: | |
tag: ${{ env.date }} | |
name: "Nightly ${{ env.date }}" | |
artifacts: "artifacts/rusefi_bundle_*.zip" | |
replacesArtifacts: false | |
token: ${{ secrets.ACCESS_TOKEN }} | |
allowUpdates: true | |
prerelease: true | |
- name: Upload .ini files to rusEFI Online server | |
if: ${{ env.full == 'true' }} | |
working-directory: ./firmware | |
run: | | |
source config/boards/common_script_read_meta_env.inc ${{ env.BOARD_META_PATH }} | |
cd tunerstudio/generated | |
../upload_ini.sh ${{ secrets.RUSEFI_ONLINE_FTP_USER }} ${{ secrets.RUSEFI_ONLINE_FTP_PASS }} ${{ secrets.RUSEFI_FTP_SERVER }} | |
- name: Upload github action elf artifact | |
if: ${{ env.partial == 'true' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: rusefi_${{matrix.build-target}}.elf | |
path: ./firmware/build/rusefi.elf | |
- name: Upload github action map artifact | |
if: ${{ env.partial == 'true' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: rusefi_${{matrix.build-target}}.map | |
path: ./firmware/build/rusefi.map | |
- name: Upload github action bin artifact | |
if: ${{ env.partial == 'true' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: rusefi_${{matrix.build-target}}.bin | |
path: ./firmware/deliver/rusefi*.bin | |
- name: Upload github action hex artifact | |
if: ${{ env.partial == 'true' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: rusefi_${{matrix.build-target}}.hex | |
# we have a bit of a mess - this file from 'build' folder is only legit for not-BLT builds | |
# todo: we should produce .hex in both OpenBLT and non-OpenBLT case same as we do for .bin and .elf | |
path: ./firmware/build/rusefi*.hex | |
- name: Upload github action dfu artifact | |
if: ${{ env.partial == 'true' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: rusefi_${{matrix.build-target}}.dfu | |
path: ./firmware/deliver/rusefi*.dfu | |
- name: Upload bundle artifact | |
if: ${{ env.full == 'true' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: rusefi_bundle_${{matrix.build-target}}.zip | |
path: ./artifacts/rusefi_bundle_${{matrix.build-target}}.zip | |
- name: Upload github action autoupdate artifact | |
if: ${{ env.full == 'true' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: rusefi_bundle_${{matrix.build-target}}_autoupdate.zip | |
path: ./artifacts/rusefi_bundle_${{matrix.build-target}}_autoupdate.zip |