2022-01-26 13:27:17 -08:00
|
|
|
name: Firmware at GHA
|
2019-11-20 20:34:55 -08:00
|
|
|
|
2023-01-21 17:24:07 -08:00
|
|
|
on:
|
|
|
|
push:
|
|
|
|
pull_request:
|
2023-02-22 16:51:46 -08:00
|
|
|
schedule:
|
|
|
|
- cron: '0 0 * * *'
|
2023-01-21 17:24:07 -08:00
|
|
|
workflow_dispatch:
|
|
|
|
inputs:
|
|
|
|
lts:
|
|
|
|
description: 'LTS Build'
|
|
|
|
required: false
|
|
|
|
type: boolean
|
2019-11-20 20:34:55 -08:00
|
|
|
jobs:
|
2023-11-03 22:12:35 -07:00
|
|
|
build-libopenblt-linux:
|
2023-10-25 00:14:23 -07:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
with:
|
|
|
|
submodules: true
|
|
|
|
|
2023-12-24 19:01:01 -08:00
|
|
|
- name: cmake configure libopenblt
|
|
|
|
working-directory: ./firmware/ext/openblt/Host/Source/LibOpenBLT/build
|
|
|
|
run: cmake -DCMAKE_BUILD_TYPE=Release ..
|
2023-10-25 00:14:23 -07:00
|
|
|
|
2023-12-24 19:01:01 -08:00
|
|
|
# - name: make libopenblt
|
|
|
|
# working-directory: ./firmware/ext/openblt/Host/Source/LibOpenBLT/build
|
|
|
|
# run: make -j8
|
2023-10-25 00:14:23 -07:00
|
|
|
|
2023-12-24 19:01:01 -08:00
|
|
|
- name: cmake configure libopenblt_jni
|
|
|
|
working-directory: ./misc/libopenblt_jni/build
|
|
|
|
run: cmake -DCMAKE_BUILD_TYPE=Release ..
|
2023-11-03 22:12:35 -07:00
|
|
|
|
|
|
|
# - name: make libopenblt_jni
|
|
|
|
# working-directory: ./misc/libopenblt_jni/build
|
|
|
|
# run: make -j8
|
|
|
|
|
2023-12-24 19:01:01 -08:00
|
|
|
- name: coalesce
|
|
|
|
if: 0
|
|
|
|
run: |
|
|
|
|
mkdir deliver
|
|
|
|
cp ./firmware/ext/openblt/Host/libopenblt.so deliver/
|
|
|
|
cp ./misc/libopenblt_jni/build/libopenblt_jni.so deliver/
|
2023-10-25 00:14:23 -07:00
|
|
|
|
2023-12-25 00:03:51 -08:00
|
|
|
# - uses: actions/upload-artifact@v4
|
2023-12-24 19:01:01 -08:00
|
|
|
# if: 0
|
|
|
|
# name: libopenblt-linux
|
|
|
|
# path: |
|
|
|
|
# ./deliver/libopenblt.so
|
|
|
|
# ./deliver/libopenblt_jni.so
|
2023-10-25 00:14:23 -07:00
|
|
|
|
2023-02-27 18:01:23 -08:00
|
|
|
release:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
|
2023-07-26 12:34:26 -07:00
|
|
|
- name: Dump GitHub context
|
|
|
|
env:
|
|
|
|
GITHUB_CONTEXT: ${{ toJson(github) }}
|
|
|
|
run: echo "$GITHUB_CONTEXT"
|
|
|
|
|
2023-02-27 18:01:23 -08:00
|
|
|
- name: Set run condition variables
|
|
|
|
run: |
|
2023-03-16 19:23:33 -07:00
|
|
|
if [ "${{github.event_name}}" = "schedule" ] && [ "${{github.repository}}" = "rusefi/rusefi" ]; then
|
2023-02-27 18:01:23 -08:00
|
|
|
echo "full=true" >> $GITHUB_ENV
|
|
|
|
echo "upload=release" >> $GITHUB_ENV
|
|
|
|
echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
|
|
|
|
fi
|
|
|
|
|
2024-02-05 06:33:59 -08:00
|
|
|
- uses: mukunku/tag-exists-action@v1.6.0
|
2023-03-03 21:00:18 -08:00
|
|
|
id: checkTag
|
|
|
|
with:
|
|
|
|
tag: ${{ env.date }}
|
2023-02-27 18:01:23 -08:00
|
|
|
|
|
|
|
- name: Create Release Tag
|
2023-03-03 21:00:18 -08:00
|
|
|
if: ${{ env.full == 'true' && env.upload == 'release' && steps.checkTag.outputs.exists == 'false' }}
|
2023-02-27 18:01:23 -08:00
|
|
|
id: tag
|
|
|
|
uses: mathieudutour/github-tag-action@v6.1
|
|
|
|
with:
|
|
|
|
github_token: ${{ secrets.ACCESS_TOKEN }}
|
|
|
|
custom_tag: ${{ env.date }}
|
2023-03-03 21:00:18 -08:00
|
|
|
tag_prefix: ''
|
2023-02-27 18:01:23 -08:00
|
|
|
|
|
|
|
- name: Create Release
|
|
|
|
if: ${{ env.full == 'true' && env.upload == 'release' }}
|
2024-02-06 00:56:29 -08:00
|
|
|
uses: ncipollo/release-action@v1.14.0
|
2023-02-27 18:01:23 -08:00
|
|
|
with:
|
|
|
|
tag: ${{ env.date }}
|
|
|
|
name: "Nightly ${{ env.date }}"
|
|
|
|
artifacts: "artifacts/rusefi_bundle_*.zip"
|
|
|
|
replacesArtifacts: false
|
|
|
|
token: ${{ secrets.ACCESS_TOKEN }}
|
|
|
|
allowUpdates: true
|
|
|
|
prerelease: true
|
|
|
|
|
2023-11-03 23:16:02 -07:00
|
|
|
- name: coalesce
|
2023-12-24 19:01:01 -08:00
|
|
|
if: 0
|
2023-11-03 23:16:02 -07:00
|
|
|
run: |
|
|
|
|
mkdir deliver
|
|
|
|
cp ./firmware/ext/openblt/Host/libopenblt.dylib deliver/
|
|
|
|
cp ./misc/libopenblt_jni/build/libopenblt_jni.dylib deliver/
|
|
|
|
|
2023-12-25 00:03:51 -08:00
|
|
|
- uses: actions/upload-artifact@v4
|
2023-10-25 00:23:59 -07:00
|
|
|
with:
|
2023-10-25 00:34:22 -07:00
|
|
|
name: bootcommander-linux
|
2023-10-25 00:23:59 -07:00
|
|
|
path: |
|
2023-11-03 23:18:04 -07:00
|
|
|
./deliver/libopenblt.dylib
|
|
|
|
./deliver/libopenblt_jni.dylib
|
2023-10-25 00:23:59 -07:00
|
|
|
|
2020-07-08 08:10:24 -07:00
|
|
|
build-firmware:
|
2022-11-18 20:43:43 -08:00
|
|
|
runs-on: ubuntu-latest
|
2023-12-24 16:03:05 -08:00
|
|
|
needs: [
|
2024-01-05 17:23:57 -08:00
|
|
|
# todo proper build of build-libopenblt #5866
|
2023-11-03 22:12:35 -07:00
|
|
|
#build-libopenblt-linux,
|
|
|
|
#build-libopenblt-macos,
|
2023-12-24 16:03:05 -08:00
|
|
|
release]
|
2022-11-08 15:10:53 -08:00
|
|
|
|
2019-11-20 20:34:55 -08:00
|
|
|
strategy:
|
|
|
|
# Let all builds finish even if one fails early
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
# What boards should we build for? In the 'include' section below,
|
|
|
|
# set up what each of these boards needs to build.
|
2021-04-29 20:00:22 -07:00
|
|
|
#
|
|
|
|
# see also gen_config where we have a similar list for all boards!
|
2021-08-20 12:34:21 -07:00
|
|
|
# see also build-primary-bundle where default/primary bundle is build separately
|
2021-04-29 20:00:22 -07:00
|
|
|
#
|
2021-12-01 19:38:17 -08:00
|
|
|
build-target: [
|
2022-01-05 11:12:12 -08:00
|
|
|
alphax-2chan,
|
2022-02-09 16:59:08 -08:00
|
|
|
alphax-4chan,
|
2023-06-20 11:25:56 -07:00
|
|
|
alphax-4chan_f7,
|
2022-12-01 20:07:13 -08:00
|
|
|
alphax-8chan,
|
2023-11-05 09:20:11 -08:00
|
|
|
alphax-8chan_debug,
|
2024-02-19 13:49:25 -08:00
|
|
|
# todo alphax-8chan-revA,
|
2023-01-01 12:58:52 -08:00
|
|
|
m74_9,
|
|
|
|
s105,
|
2023-06-01 15:46:04 -07:00
|
|
|
t-b-g,
|
2021-12-01 19:38:17 -08:00
|
|
|
hellen72,
|
|
|
|
hellen81,
|
|
|
|
hellen88bmw,
|
2022-07-26 03:13:36 -07:00
|
|
|
hellen88bmw_avr,
|
2021-12-01 19:38:17 -08:00
|
|
|
hellen-nb1,
|
2022-05-21 07:42:23 -07:00
|
|
|
hellen-gm-e67,
|
2021-12-29 21:15:40 -08:00
|
|
|
hellenNA8_96,
|
2021-12-01 19:38:17 -08:00
|
|
|
hellenNA6,
|
|
|
|
hellen128,
|
|
|
|
hellen121vag,
|
2023-01-20 21:08:52 -08:00
|
|
|
hellen-honda-k,
|
2021-12-01 19:38:17 -08:00
|
|
|
hellen121nissan,
|
|
|
|
cypress,
|
|
|
|
frankenso_na6,
|
|
|
|
kinetis,
|
|
|
|
mre_f4,
|
|
|
|
mre_f7,
|
|
|
|
prometheus_405,
|
|
|
|
prometheus_469,
|
|
|
|
proteus_f4,
|
|
|
|
proteus_f7,
|
|
|
|
proteus_h7,
|
2022-10-18 19:29:43 -07:00
|
|
|
stm32f429_nucleo,
|
2021-12-01 19:38:17 -08:00
|
|
|
stm32f767_nucleo,
|
2023-12-18 14:30:43 -08:00
|
|
|
stm32f767_nucleo_debug,
|
2021-12-01 19:38:17 -08:00
|
|
|
stm32h743_nucleo,
|
|
|
|
subaru_eg33_f7,
|
2023-06-26 14:11:35 -07:00
|
|
|
subaru_eg33_f7_no_bl,
|
2023-01-31 20:31:42 -08:00
|
|
|
f407-discovery,
|
2022-01-10 13:14:39 -08:00
|
|
|
f429-discovery,
|
2021-12-01 19:38:17 -08:00
|
|
|
atlas,
|
2022-03-30 16:18:18 -07:00
|
|
|
tdg-pdm8,
|
2023-10-29 16:13:31 -07:00
|
|
|
at_start_f435,
|
2021-12-01 19:38:17 -08:00
|
|
|
]
|
|
|
|
|
2019-11-20 20:34:55 -08:00
|
|
|
include:
|
2021-01-08 09:50:13 -08:00
|
|
|
# Board configurations
|
2023-06-23 20:36:56 -07:00
|
|
|
# 'target' should match corresponding SHORT_BOARD_NAME
|
2021-01-08 09:50:13 -08:00
|
|
|
- build-target: hellen72
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen72
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2021-01-08 09:50:13 -08:00
|
|
|
|
2021-12-01 19:07:25 -08:00
|
|
|
- build-target: hellen81
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen81
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2021-12-01 19:07:25 -08:00
|
|
|
|
2022-01-05 11:12:12 -08:00
|
|
|
- build-target: alphax-2chan
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/alphax-2chan
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 0
|
2022-01-05 11:12:12 -08:00
|
|
|
|
2022-02-09 16:59:08 -08:00
|
|
|
- build-target: alphax-4chan
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/alphax-4chan
|
2022-02-09 16:59:08 -08:00
|
|
|
|
2023-06-20 11:25:56 -07:00
|
|
|
- build-target: alphax-4chan_f7
|
2023-06-20 06:03:04 -07:00
|
|
|
folder: config/boards/hellen/alphax-4chan
|
|
|
|
|
2022-12-01 20:07:13 -08:00
|
|
|
- build-target: alphax-8chan
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/alphax-8chan
|
2023-06-13 13:38:07 -07:00
|
|
|
skip-rate: 0
|
2022-12-01 20:07:13 -08:00
|
|
|
|
2023-11-05 09:20:11 -08:00
|
|
|
- build-target: alphax-8chan_debug
|
|
|
|
folder: config/boards/hellen/alphax-8chan
|
|
|
|
skip-rate: 95
|
|
|
|
|
2023-06-20 11:25:56 -07:00
|
|
|
- build-target: alphax-8chan_f7
|
2023-06-20 06:03:04 -07:00
|
|
|
folder: config/boards/hellen/alphax-8chan
|
|
|
|
skip-rate: 0
|
|
|
|
|
2024-02-19 14:25:14 -08:00
|
|
|
# - build-target: alphax-8chan-revA
|
|
|
|
# folder: config/boards/hellen/alphax-8chan-revA
|
|
|
|
# skip-rate: 30
|
2024-02-19 13:49:25 -08:00
|
|
|
|
2023-01-01 12:58:52 -08:00
|
|
|
- build-target: s105
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/s105
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2023-06-01 15:46:04 -07:00
|
|
|
|
|
|
|
- build-target: t-b-g
|
|
|
|
folder: config/boards/test-build-guards
|
|
|
|
skip-rate: 90
|
2023-01-01 12:58:52 -08:00
|
|
|
|
|
|
|
- build-target: m74_9
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/m74_9
|
2023-11-19 15:23:06 -08:00
|
|
|
skip-rate: 50
|
2023-01-01 12:58:52 -08:00
|
|
|
|
2023-06-05 21:25:21 -07:00
|
|
|
- build-target: small-can-board
|
|
|
|
folder: config/boards/hellen/small-can-board
|
2023-10-20 12:54:55 -07:00
|
|
|
skip-rate: 50
|
2023-06-05 21:25:21 -07:00
|
|
|
|
2023-11-30 11:54:40 -08:00
|
|
|
- build-target: uaefi
|
|
|
|
folder: config/boards/hellen/uaefi
|
|
|
|
|
2023-10-21 11:48:34 -07:00
|
|
|
- build-target: small-can-board_debug
|
|
|
|
folder: config/boards/hellen/small-can-board
|
|
|
|
skip-rate: 00
|
|
|
|
|
2021-10-11 17:51:05 -07:00
|
|
|
- build-target: hellen88bmw
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen88bmw
|
2023-06-05 21:22:24 -07:00
|
|
|
skip-rate: 99
|
2021-10-11 17:51:05 -07:00
|
|
|
|
2022-07-26 03:13:36 -07:00
|
|
|
- build-target: hellen88bmw_avr
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen88bmw
|
2023-06-05 21:22:24 -07:00
|
|
|
skip-rate: 99
|
2022-07-26 03:13:36 -07:00
|
|
|
|
2021-08-07 10:02:39 -07:00
|
|
|
- build-target: hellen-nb1
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen-nb1
|
2023-06-05 21:22:24 -07:00
|
|
|
skip-rate: 99
|
2021-08-07 10:02:39 -07:00
|
|
|
|
2023-09-10 08:52:50 -07:00
|
|
|
- build-target: hellen-112-17
|
|
|
|
folder: config/boards/hellen/hellen-112-17
|
2024-02-23 06:15:14 -08:00
|
|
|
skip-rate: 50
|
2023-09-10 08:52:50 -07:00
|
|
|
|
2023-09-29 11:29:44 -07:00
|
|
|
- build-target: hellen-112-17_debug
|
|
|
|
folder: config/boards/hellen/hellen-112-17
|
2024-02-23 06:15:14 -08:00
|
|
|
skip-rate: 50
|
2023-09-29 11:29:44 -07:00
|
|
|
|
2022-05-21 07:42:23 -07:00
|
|
|
- build-target: hellen-gm-e67
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen-gm-e67
|
2023-06-05 21:22:24 -07:00
|
|
|
skip-rate: 99
|
2022-05-21 07:42:23 -07:00
|
|
|
|
2021-12-29 21:15:40 -08:00
|
|
|
- build-target: hellenNA8_96
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellenNA8_96
|
2023-06-05 21:22:24 -07:00
|
|
|
skip-rate: 99
|
2021-12-29 21:15:40 -08:00
|
|
|
|
2021-04-19 06:12:47 -07:00
|
|
|
- build-target: hellenNA6
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen64_miataNA6_94
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2021-04-18 19:03:43 -07:00
|
|
|
|
2021-05-01 17:43:09 -07:00
|
|
|
- build-target: hellen128
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen128
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 50
|
2021-05-01 17:43:09 -07:00
|
|
|
|
|
|
|
- build-target: hellen121vag
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen121vag
|
2023-06-05 21:22:24 -07:00
|
|
|
skip-rate: 99
|
2021-05-01 17:43:09 -07:00
|
|
|
|
|
|
|
- build-target: hellen121nissan
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen121nissan
|
2024-02-23 06:15:14 -08:00
|
|
|
skip-rate: 50
|
2021-05-01 17:43:09 -07:00
|
|
|
|
2023-01-20 21:08:52 -08:00
|
|
|
- build-target: hellen-honda-k
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen-honda-k
|
2023-01-20 21:08:52 -08:00
|
|
|
|
2023-10-21 12:00:04 -07:00
|
|
|
- build-target: hellen-honda-k_debug
|
|
|
|
folder: config/boards/hellen/hellen-honda-k
|
2024-02-23 06:15:14 -08:00
|
|
|
skip-rate: 50
|
2023-10-21 12:00:04 -07:00
|
|
|
|
2021-08-03 19:26:33 -07:00
|
|
|
- build-target: hellen154hyundai
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen154hyundai
|
2023-09-29 21:44:50 -07:00
|
|
|
skip-rate: 0
|
2021-08-03 19:26:33 -07:00
|
|
|
|
2024-02-12 07:38:16 -08:00
|
|
|
- build-target: hellen154hyundai_f7
|
|
|
|
folder: config/boards/hellen/hellen154hyundai
|
2024-02-23 06:15:14 -08:00
|
|
|
skip-rate: 90
|
2023-12-14 06:24:48 -08:00
|
|
|
|
2020-09-26 19:13:39 -07:00
|
|
|
- build-target: cypress
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/cypress
|
2020-09-26 19:13:39 -07:00
|
|
|
|
2020-07-08 08:10:24 -07:00
|
|
|
- build-target: frankenso_na6
|
2024-01-06 06:55:03 -08:00
|
|
|
folder: config/boards/frankenso_na6
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2022-06-10 09:30:28 -07:00
|
|
|
|
2020-07-08 08:10:24 -07:00
|
|
|
- build-target: kinetis
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/kinetis
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 0
|
2020-07-08 08:10:24 -07:00
|
|
|
|
|
|
|
- build-target: mre_f4
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/microrusefi
|
2020-07-08 08:10:24 -07:00
|
|
|
|
|
|
|
- build-target: mre_f7
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/microrusefi
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2019-12-02 20:54:40 -08:00
|
|
|
|
2020-07-08 08:10:24 -07:00
|
|
|
- build-target: prometheus_405
|
2024-02-14 19:54:02 -08:00
|
|
|
folder: config/boards/prometheus/f405
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2020-07-08 08:10:24 -07:00
|
|
|
|
|
|
|
- build-target: prometheus_469
|
2024-02-14 19:54:02 -08:00
|
|
|
folder: config/boards/prometheus/f469
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2020-07-08 08:10:24 -07:00
|
|
|
|
|
|
|
- build-target: proteus_f4
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/proteus
|
2020-07-08 08:10:24 -07:00
|
|
|
|
2023-10-19 20:42:26 -07:00
|
|
|
- build-target: proteus_f4_debug
|
|
|
|
folder: config/boards/proteus
|
|
|
|
skip-rate: 80
|
|
|
|
|
2020-07-08 08:10:24 -07:00
|
|
|
- build-target: proteus_f7
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/proteus
|
2020-07-08 08:10:24 -07:00
|
|
|
|
2023-09-29 17:51:18 -07:00
|
|
|
# - build-target: proteus_f7_debug
|
|
|
|
# folder: config/boards/proteus
|
|
|
|
# skip-rate: 80
|
2023-07-22 17:42:31 -07:00
|
|
|
|
2021-03-07 13:43:00 -08:00
|
|
|
- build-target: proteus_h7
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/proteus
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2021-03-07 13:43:00 -08:00
|
|
|
|
2022-10-18 18:19:25 -07:00
|
|
|
- build-target: stm32f429_nucleo
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/nucleo_f429
|
2024-02-23 06:15:14 -08:00
|
|
|
skip-rate: 50
|
2022-10-18 18:19:25 -07:00
|
|
|
|
2020-07-08 08:10:24 -07:00
|
|
|
- build-target: stm32f767_nucleo
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/nucleo_f767
|
2024-02-23 06:15:14 -08:00
|
|
|
skip-rate: 50
|
2023-12-18 14:30:43 -08:00
|
|
|
|
|
|
|
- build-target: stm32f767_nucleo_debug
|
|
|
|
folder: config/boards/nucleo_f767
|
2024-02-23 06:15:14 -08:00
|
|
|
skip-rate: 50
|
2019-12-04 12:16:26 -08:00
|
|
|
|
2021-02-08 13:24:38 -08:00
|
|
|
- build-target: stm32h743_nucleo
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/nucleo_h743
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 95
|
2021-02-08 13:24:38 -08:00
|
|
|
|
2021-02-18 15:18:13 -08:00
|
|
|
- build-target: subaru_eg33_f7
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/subaru_eg33
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 50
|
2021-02-18 15:18:13 -08:00
|
|
|
|
2023-06-26 14:11:35 -07:00
|
|
|
- build-target: subaru_eg33_f7_no_bl
|
|
|
|
folder: config/boards/subaru_eg33
|
|
|
|
skip-rate: 50
|
|
|
|
|
2023-01-31 20:31:42 -08:00
|
|
|
- build-target: f407-discovery
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/f407-discovery
|
2023-02-20 14:30:51 -08:00
|
|
|
skip-rate: 0
|
2023-01-31 20:31:42 -08:00
|
|
|
|
2023-10-06 17:34:10 -07:00
|
|
|
- build-target: f407-discovery_debug
|
|
|
|
folder: config/boards/f407-discovery
|
|
|
|
skip-rate: 0
|
2023-08-04 21:46:46 -07:00
|
|
|
|
2022-01-10 13:14:39 -08:00
|
|
|
- build-target: f429-discovery
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/f429-discovery
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 95
|
2022-01-10 13:14:39 -08:00
|
|
|
|
2021-07-25 22:04:58 -07:00
|
|
|
- build-target: atlas
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/atlas
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 95
|
2021-07-25 22:04:58 -07:00
|
|
|
|
2022-03-30 16:18:18 -07:00
|
|
|
- build-target: tdg-pdm8
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/tdg-pdm8
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 95
|
2022-03-30 16:18:18 -07:00
|
|
|
|
2023-10-29 16:13:31 -07:00
|
|
|
- build-target: at_start_f435
|
|
|
|
folder: config/boards/at_start_f435
|
2023-11-19 15:23:06 -08:00
|
|
|
skip-rate: 0
|
2023-10-29 16:13:31 -07:00
|
|
|
|
2019-11-20 20:34:55 -08:00
|
|
|
steps:
|
2023-01-28 14:00:21 -08:00
|
|
|
- name: Check branch name
|
|
|
|
if: ${{ contains(github.ref_name, '.') }}
|
|
|
|
run: echo '::error::Branch names must not contain ".", this breaks firmware autoupdates.' && exit 1
|
2023-02-21 06:56:36 -08:00
|
|
|
|
2022-01-13 10:17:32 -08:00
|
|
|
- name: Execution throttle early exit
|
2023-02-21 06:56:36 -08:00
|
|
|
# Don't skip any jobs if this workflow was run manually,
|
|
|
|
# or if the commit contains `only:`, signifying that only one bundle should be built.
|
2024-02-09 19:55:50 -08:00
|
|
|
if: ${{ matrix.skip-rate && github.event_name != 'workflow_dispatch' && github.event_name != 'schedule' && github.event_name != 'pull_request' && github.run_attempt == 1 || contains(github.event.head_commit.message, 'only:') }}
|
2023-02-21 06:56:36 -08:00
|
|
|
run: |
|
|
|
|
# if the commit message contains `only:`, get the part after the semicolon and check if it matches the build target.
|
2023-03-01 19:11:44 -08:00
|
|
|
read -d '' MSG << EOM || true
|
2023-02-21 10:35:13 -08:00
|
|
|
${{ github.event.head_commit.message }}
|
|
|
|
EOM
|
|
|
|
if echo $MSG | grep "only:"; then
|
|
|
|
if [ "$(echo $MSG | grep -Po '(?<=only:)[^\s]*')" = "${{ matrix.build-target }}" ]; then
|
2023-02-21 06:56:36 -08:00
|
|
|
exit 0
|
|
|
|
else
|
|
|
|
# if it doesn't match, skip this job.
|
|
|
|
echo "skip=true" >> $GITHUB_ENV
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if (($(($RANDOM % 100)) < ${{ matrix.skip-rate }})); then echo "skip=true" >> $GITHUB_ENV; fi
|
2022-01-13 10:17:32 -08:00
|
|
|
|
2023-02-24 14:40:45 -08:00
|
|
|
- name: Set run condition variables
|
|
|
|
run: |
|
2023-03-16 19:23:33 -07:00
|
|
|
if [ "${{github.event_name}}" = "schedule" ] && [ "${{github.repository}}" = "rusefi/rusefi" ]; then
|
2023-07-26 12:34:26 -07:00
|
|
|
echo "Scheduled mode"
|
2023-02-24 14:40:45 -08:00
|
|
|
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" ]\
|
|
|
|
&& [ "${{env.skip}}" != "true" ]\
|
|
|
|
|| [ "${{toJSON(inputs.lts)}}" = "true" ]; then
|
2023-07-26 12:34:26 -07:00
|
|
|
echo "Full mode"
|
2023-02-24 14:40:45 -08:00
|
|
|
echo "full=true" >> $GITHUB_ENV
|
|
|
|
echo "upload=server" >> $GITHUB_ENV
|
2023-03-10 07:59:36 -08:00
|
|
|
elif [ "${{env.skip}}" != "true" ]; then
|
2023-07-26 12:34:26 -07:00
|
|
|
echo "Partial mode"
|
2023-03-10 07:59:36 -08:00
|
|
|
echo "partial=true" >> $GITHUB_ENV
|
2023-02-24 14:40:45 -08:00
|
|
|
fi
|
|
|
|
|
2023-09-05 06:09:12 -07:00
|
|
|
- uses: actions/checkout@v4
|
2022-01-13 10:17:32 -08:00
|
|
|
if: ${{ env.skip != 'true' }}
|
2023-01-29 01:43:27 -08:00
|
|
|
|
|
|
|
- name: Checkout Submodules
|
|
|
|
if: ${{ env.skip != 'true' }}
|
|
|
|
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
|
2023-12-15 08:55:25 -08:00
|
|
|
git submodule update --init --depth=1 java_console/peak-can-basic
|
2022-01-04 08:51:06 -08:00
|
|
|
|
2023-11-30 00:06:18 -08:00
|
|
|
- uses: actions/setup-java@v4
|
2022-01-13 10:17:32 -08:00
|
|
|
if: ${{ env.skip != 'true' }}
|
2021-02-17 07:07:09 -08:00
|
|
|
with:
|
2022-07-28 01:00:13 -07:00
|
|
|
distribution: 'zulu'
|
2023-07-02 09:29:44 -07:00
|
|
|
java-version: '11'
|
2021-02-17 07:07:09 -08:00
|
|
|
|
2021-10-22 13:36:15 -07:00
|
|
|
- name: Install multilib, mingw, sshpass and mtools
|
2022-01-13 10:17:32 -08:00
|
|
|
if: ${{ env.skip != 'true' }}
|
2021-03-03 04:50:53 -08:00
|
|
|
run: |
|
2023-02-25 15:07:31 -08:00
|
|
|
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
|
2021-03-03 04:50:53 -08:00
|
|
|
|
2022-04-16 17:34:17 -07:00
|
|
|
- name: Generate Live Documentation
|
|
|
|
if: ${{ env.skip != 'true' }}
|
|
|
|
working-directory: ./firmware/
|
2022-08-31 17:43:07 -07:00
|
|
|
run: ./gen_live_documentation.sh
|
2022-04-16 17:34:17 -07:00
|
|
|
|
2024-02-15 17:17:17 -08:00
|
|
|
- name: Set Build Env Variables
|
|
|
|
if: ${{ env.skip != 'true' }}
|
|
|
|
working-directory: ./firmware/
|
|
|
|
run: |
|
|
|
|
echo LTS=${{toJSON(inputs.lts)}} >> $GITHUB_ENV
|
|
|
|
echo REF=${{github.ref_name}} >> $GITHUB_ENV
|
|
|
|
echo BUNDLE_NAME=${{matrix.build-target}} >> $GITHUB_ENV
|
|
|
|
echo BOARD_DIR=${{matrix.folder}} >> $GITHUB_ENV
|
2024-02-14 13:39:10 -08:00
|
|
|
echo BOARD_META_PATH=$(bash bin/find_meta_info.sh ${{matrix.folder}} ${{matrix.build-target}}) >> $GITHUB_ENV
|
2024-02-15 17:17:17 -08:00
|
|
|
|
2023-12-31 12:25:36 -08:00
|
|
|
- name: Git Status
|
|
|
|
if: ${{ env.skip != 'true' }}
|
|
|
|
run: |
|
|
|
|
git status
|
|
|
|
|
2024-02-27 05:02:06 -08:00
|
|
|
#
|
|
|
|
# Note to humans: on personal devices we have firmware/provide_gcc.sh and setup_linux_environment.sh
|
|
|
|
#
|
2023-12-28 13:47:52 -08:00
|
|
|
- name: Install Arm GNU Toolchain (arm-none-eabi-gcc)
|
2022-01-13 10:17:32 -08:00
|
|
|
if: ${{ env.skip != 'true' }}
|
2023-12-28 13:47:52 -08:00
|
|
|
uses: carlosperate/arm-none-eabi-gcc-action@v1
|
|
|
|
with:
|
2024-01-02 14:34:33 -08:00
|
|
|
release: '12.3.Rel1'
|
2020-11-11 05:30:26 -08:00
|
|
|
|
|
|
|
# Make sure the compiler we just downloaded works - just print out the version
|
2023-12-28 13:47:52 -08:00
|
|
|
- name: Test arm-none-eabi-gcc Compiler
|
2022-01-13 10:17:32 -08:00
|
|
|
if: ${{ env.skip != 'true' }}
|
2020-11-11 05:30:26 -08:00
|
|
|
run: arm-none-eabi-gcc -v
|
|
|
|
|
2024-02-25 09:04:53 -08:00
|
|
|
- name: Configs build_server upload SSH variables
|
2023-03-10 07:59:36 -08:00
|
|
|
if: ${{ env.full == 'true' && env.upload == 'server' }}
|
2020-11-18 15:59:02 -08:00
|
|
|
env:
|
|
|
|
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
|
2020-07-08 08:10:24 -07:00
|
|
|
run: |
|
2023-07-26 06:29:32 -07:00
|
|
|
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
|
2020-07-08 08:10:24 -07:00
|
|
|
|
2023-11-03 22:12:35 -07:00
|
|
|
# - name: Download LibOpenBLT Tool (Linux)
|
2023-12-24 16:03:05 -08:00
|
|
|
# uses: actions/download-artifact@v3
|
|
|
|
# with:
|
2023-11-03 22:12:35 -07:00
|
|
|
# name: libopenblt-linux
|
2023-12-24 16:03:05 -08:00
|
|
|
# path: ./firmware/ext/openblt/Host/
|
2023-10-25 00:29:01 -07:00
|
|
|
|
2023-11-03 22:12:35 -07:00
|
|
|
# - name: Download LibOpenBLT Tool (MacOS)
|
|
|
|
# uses: actions/download-artifact@v3
|
|
|
|
# with:
|
|
|
|
# name: libopenblt-macos
|
|
|
|
# path: ./firmware/ext/openblt/Host/
|
2023-10-25 00:29:01 -07:00
|
|
|
|
|
|
|
# Build the firmware!
|
2019-11-20 20:34:55 -08:00
|
|
|
- name: Build Firmware
|
2022-01-13 10:17:32 -08:00
|
|
|
if: ${{ env.skip != 'true' }}
|
2024-01-30 05:08:01 -08:00
|
|
|
working-directory: ./firmware/
|
2024-02-14 13:39:10 -08:00
|
|
|
run: |
|
2024-01-30 05:08:01 -08:00
|
|
|
make clean
|
2024-02-05 17:15:36 -08:00
|
|
|
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
|
2020-06-16 09:33:49 -07:00
|
|
|
|
2024-01-29 05:04:48 -08:00
|
|
|
- name: Upload Bundle
|
|
|
|
if: ${{ env.full == 'true' }}
|
|
|
|
working-directory: ./artifacts
|
2024-02-14 13:39:10 -08:00
|
|
|
run: bash ../firmware/bin/upload_bundle.sh
|
2024-01-29 05:04:48 -08:00
|
|
|
|
2023-02-27 18:01:23 -08:00
|
|
|
- name: Add Bundles to Release
|
2023-02-24 14:40:45 -08:00
|
|
|
if: ${{ env.full == 'true' && env.upload == 'release' }}
|
2024-02-06 00:56:29 -08:00
|
|
|
uses: ncipollo/release-action@v1.14.0
|
2023-02-24 14:40:45 -08:00
|
|
|
with:
|
|
|
|
tag: ${{ env.date }}
|
|
|
|
name: "Nightly ${{ env.date }}"
|
|
|
|
artifacts: "artifacts/rusefi_bundle_*.zip"
|
|
|
|
replacesArtifacts: false
|
|
|
|
token: ${{ secrets.ACCESS_TOKEN }}
|
|
|
|
allowUpdates: true
|
|
|
|
prerelease: true
|
|
|
|
|
2024-02-25 09:03:40 -08:00
|
|
|
- name: Upload .ini files to rusEFI Online server
|
2023-03-10 07:59:36 -08:00
|
|
|
if: ${{ env.full == 'true' }}
|
2024-02-14 13:39:10 -08:00
|
|
|
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 }}
|
2022-08-17 15:29:07 -07:00
|
|
|
|
2024-02-25 09:03:40 -08:00
|
|
|
- name: Upload github action elf artifact
|
2023-03-10 07:59:36 -08:00
|
|
|
if: ${{ env.partial == 'true' }}
|
2023-12-15 00:37:05 -08:00
|
|
|
uses: actions/upload-artifact@v4
|
2022-07-07 12:14:31 -07:00
|
|
|
with:
|
|
|
|
name: rusefi_${{matrix.build-target}}.elf
|
|
|
|
path: ./firmware/build/rusefi.elf
|
|
|
|
|
2024-02-25 09:03:40 -08:00
|
|
|
- name: Upload github action map artifact
|
2023-06-25 12:01:55 -07:00
|
|
|
if: ${{ env.partial == 'true' }}
|
2023-12-15 00:37:05 -08:00
|
|
|
uses: actions/upload-artifact@v4
|
2023-06-25 12:01:55 -07:00
|
|
|
with:
|
|
|
|
name: rusefi_${{matrix.build-target}}.map
|
|
|
|
path: ./firmware/build/rusefi.map
|
|
|
|
|
2024-02-25 09:03:40 -08:00
|
|
|
- name: Upload github action bin artifact
|
2023-03-10 07:59:36 -08:00
|
|
|
if: ${{ env.partial == 'true' }}
|
2023-12-15 00:37:05 -08:00
|
|
|
uses: actions/upload-artifact@v4
|
2020-07-19 13:05:47 -07:00
|
|
|
with:
|
|
|
|
name: rusefi_${{matrix.build-target}}.bin
|
2021-02-23 16:17:58 -08:00
|
|
|
path: ./firmware/deliver/rusefi*.bin
|
2020-07-19 13:05:47 -07:00
|
|
|
|
2024-02-25 09:03:40 -08:00
|
|
|
- name: Upload github action hex artifact
|
2023-03-10 07:59:36 -08:00
|
|
|
if: ${{ env.partial == 'true' }}
|
2023-12-15 00:37:05 -08:00
|
|
|
uses: actions/upload-artifact@v4
|
2020-07-19 13:05:47 -07:00
|
|
|
with:
|
|
|
|
name: rusefi_${{matrix.build-target}}.hex
|
2023-06-25 14:34:27 -07:00
|
|
|
# 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
|
2020-07-19 13:05:47 -07:00
|
|
|
|
2024-02-25 09:03:40 -08:00
|
|
|
- name: Upload github action dfu artifact
|
2023-03-10 07:59:36 -08:00
|
|
|
if: ${{ env.partial == 'true' }}
|
2023-12-15 00:37:05 -08:00
|
|
|
uses: actions/upload-artifact@v4
|
2020-07-19 13:05:47 -07:00
|
|
|
with:
|
|
|
|
name: rusefi_${{matrix.build-target}}.dfu
|
2021-02-23 16:17:58 -08:00
|
|
|
path: ./firmware/deliver/rusefi*.dfu
|
2020-07-19 13:05:47 -07:00
|
|
|
|
2023-07-26 12:34:26 -07:00
|
|
|
- name: Upload bundle artifact
|
2023-03-10 07:59:36 -08:00
|
|
|
if: ${{ env.full == 'true' }}
|
2023-12-15 00:37:05 -08:00
|
|
|
uses: actions/upload-artifact@v4
|
2019-11-20 20:34:55 -08:00
|
|
|
with:
|
2020-07-08 08:10:24 -07:00
|
|
|
name: rusefi_bundle_${{matrix.build-target}}.zip
|
2021-02-23 16:17:58 -08:00
|
|
|
path: ./artifacts/rusefi_bundle*.zip
|
2020-07-08 08:10:24 -07:00
|
|
|
|
2024-02-25 09:03:40 -08:00
|
|
|
- name: Upload github action autoupdate artifact
|
2023-03-10 07:59:36 -08:00
|
|
|
if: ${{ env.full == 'true' }}
|
2023-12-15 00:37:05 -08:00
|
|
|
uses: actions/upload-artifact@v4
|
2019-11-20 20:34:55 -08:00
|
|
|
with:
|
2020-07-08 08:10:24 -07:00
|
|
|
name: rusefi_bundle_${{matrix.build-target}}_autoupdate.zip
|
|
|
|
path: ./artifacts/rusefi_bundle_${{matrix.build-target}}_autoupdate.zip
|