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:
|
|
|
|
workflow_dispatch:
|
|
|
|
inputs:
|
|
|
|
lts:
|
|
|
|
description: 'LTS Build'
|
|
|
|
required: false
|
|
|
|
type: boolean
|
2019-11-20 20:34:55 -08:00
|
|
|
jobs:
|
2020-07-08 08:10:24 -07:00
|
|
|
build-firmware:
|
2022-11-18 20:43:43 -08:00
|
|
|
runs-on: ubuntu-latest
|
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,
|
2022-12-01 20:07:13 -08:00
|
|
|
alphax-8chan,
|
2023-01-01 12:58:52 -08:00
|
|
|
m74_9,
|
|
|
|
s105,
|
2022-02-09 19:22:47 -08:00
|
|
|
harley81,
|
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,
|
2023-02-14 05:26:56 -08:00
|
|
|
mre_f4_no_openblt,
|
2022-01-10 13:42:31 -08:00
|
|
|
mre_f4_debug,
|
2021-12-01 19:38:17 -08:00
|
|
|
mre_f4_recovery,
|
|
|
|
mre_f4_hardware_QC_special_build,
|
|
|
|
mre_f7,
|
|
|
|
prometheus_405,
|
|
|
|
prometheus_469,
|
|
|
|
proteus_f4,
|
|
|
|
proteus_f4_hardware_QC_special_build,
|
|
|
|
proteus_f7,
|
|
|
|
proteus_f7_hardware_QC_special_build,
|
|
|
|
proteus_h7,
|
|
|
|
proteus_legacy,
|
2022-10-18 19:29:43 -07:00
|
|
|
stm32f429_nucleo,
|
2021-12-01 19:38:17 -08:00
|
|
|
stm32f767_nucleo,
|
|
|
|
stm32h743_nucleo,
|
|
|
|
subaru_eg33_f7,
|
2023-01-31 20:31:42 -08:00
|
|
|
f407-discovery,
|
2022-01-10 13:14:39 -08:00
|
|
|
f429-discovery,
|
2022-02-11 13:06:00 -08:00
|
|
|
core8,
|
2022-05-30 12:56:21 -07:00
|
|
|
48way,
|
2021-12-01 19:38:17 -08:00
|
|
|
atlas,
|
2022-03-30 16:18:18 -07:00
|
|
|
tdg-pdm8,
|
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
|
|
|
|
- build-target: hellen72
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen72
|
2021-01-08 09:50:13 -08:00
|
|
|
ini-file: rusefi_hellen72.ini
|
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
|
2021-12-01 19:07:25 -08:00
|
|
|
ini-file: rusefi_hellen81.ini
|
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
|
2022-01-05 11:12:12 -08:00
|
|
|
ini-file: rusefi_alphax-2chan.ini
|
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
|
|
|
ini-file: rusefi_alphax-4chan.ini
|
|
|
|
|
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
|
2022-12-01 20:07:13 -08:00
|
|
|
ini-file: rusefi_alphax-8chan.ini
|
|
|
|
|
2023-01-01 12:58:52 -08:00
|
|
|
- build-target: s105
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/s105
|
2023-01-01 12:58:52 -08:00
|
|
|
ini-file: rusefi_s105.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
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-01-01 12:58:52 -08:00
|
|
|
ini-file: rusefi_m74_9.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 0
|
2023-01-01 12:58:52 -08:00
|
|
|
|
2022-02-09 19:22:47 -08:00
|
|
|
- build-target: harley81
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/harley81
|
2022-02-09 19:22:47 -08:00
|
|
|
ini-file: rusefi_harley81.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2022-02-09 16:59:08 -08: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
|
2021-10-11 17:51:05 -07:00
|
|
|
ini-file: rusefi_hellen88bmw.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
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
|
2022-07-26 03:13:36 -07:00
|
|
|
ini-file: rusefi_hellen88bmw.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
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
|
2021-08-07 10:02:39 -07:00
|
|
|
ini-file: rusefi_hellen-nb1.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2021-08-07 10:02:39 -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
|
2022-05-21 07:42:23 -07:00
|
|
|
ini-file: rusefi_hellen-gm-e67.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
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
|
2022-02-15 13:48:23 -08:00
|
|
|
ini-file: rusefi_hellenNA8_96.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
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
|
2021-04-18 19:03:43 -07:00
|
|
|
ini-file: rusefi_hellenNA6.ini
|
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
|
2021-07-21 16:23:17 -07:00
|
|
|
ini-file: rusefi_hellen128mercedes.ini
|
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
|
2021-05-01 17:43:09 -07:00
|
|
|
ini-file: rusefi_hellen121vag.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2021-05-01 17:43:09 -07:00
|
|
|
|
|
|
|
- build-target: hellen121nissan
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen121nissan
|
2021-05-01 17:43:09 -07:00
|
|
|
ini-file: rusefi_hellen121nissan.ini
|
|
|
|
|
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
|
|
|
ini-file: rusefi_hellen-honda-k.ini
|
|
|
|
|
2021-08-03 19:26:33 -07:00
|
|
|
- build-target: hellen154hyundai
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/hellen/hellen154hyundai
|
2021-08-03 19:26:33 -07:00
|
|
|
ini-file: rusefi_hellen154hyundai.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2021-08-03 19:26:33 -07:00
|
|
|
|
2020-09-26 19:13:39 -07:00
|
|
|
- build-target: cypress
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/cypress
|
2022-08-16 08:20:51 -07:00
|
|
|
ini-file: rusefi_cypress.ini
|
2020-09-26 19:13:39 -07:00
|
|
|
|
2020-07-08 08:10:24 -07:00
|
|
|
- build-target: frankenso_na6
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/frankenso
|
2020-07-27 16:42:29 -07:00
|
|
|
ini-file: rusefi_frankenso_na6.ini
|
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
|
2022-08-16 07:25:40 -07:00
|
|
|
ini-file: rusefi_kin.ini
|
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
|
|
|
ini-file: rusefi_mre_f4.ini
|
|
|
|
|
2023-02-14 05:26:56 -08:00
|
|
|
- build-target: mre_f4_no_openblt
|
|
|
|
folder: config/boards/microrusefi
|
|
|
|
ini-file: rusefi_mre_f4.ini
|
|
|
|
|
2022-01-10 13:42:31 -08:00
|
|
|
- build-target: mre_f4_debug
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/microrusefi
|
2022-01-10 13:42:31 -08:00
|
|
|
ini-file: rusefi_mre_f4.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 95
|
2022-01-10 13:42:31 -08:00
|
|
|
|
2021-01-28 14:46:49 -08:00
|
|
|
- build-target: mre_f4_recovery
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/microrusefi
|
2021-01-28 14:46:49 -08:00
|
|
|
ini-file: rusefi_mre_f4.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 95
|
2021-01-28 14:46:49 -08:00
|
|
|
|
2020-07-08 08:10:24 -07:00
|
|
|
- build-target: mre_f4_hardware_QC_special_build
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/microrusefi
|
2020-07-27 16:42:29 -07:00
|
|
|
ini-file: rusefi_mre_f4.ini
|
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: mre_f7
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/microrusefi
|
2020-07-08 08:10:24 -07:00
|
|
|
ini-file: rusefi_mre_f7.ini
|
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
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/prometheus
|
2020-07-08 08:10:24 -07:00
|
|
|
ini-file: rusefi_prometheus_405.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2020-07-08 08:10:24 -07:00
|
|
|
|
|
|
|
- build-target: prometheus_469
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/prometheus
|
2020-07-08 08:10:24 -07:00
|
|
|
ini-file: rusefi_prometheus_469.ini
|
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
|
|
|
ini-file: rusefi_proteus_f4.ini
|
|
|
|
|
2020-12-20 06:11:36 -08:00
|
|
|
- build-target: proteus_f4_hardware_QC_special_build
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/proteus
|
2020-12-20 06:11:36 -08:00
|
|
|
ini-file: rusefi_proteus_f4.ini
|
|
|
|
|
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
|
|
|
ini-file: rusefi_proteus_f7.ini
|
|
|
|
|
2021-05-08 07:32:21 -07:00
|
|
|
- build-target: proteus_f7_hardware_QC_special_build
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/proteus
|
2021-05-08 07:32:21 -07:00
|
|
|
ini-file: rusefi_proteus_f7.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2021-05-08 07:32:21 -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
|
2021-03-07 13:43:00 -08:00
|
|
|
ini-file: rusefi_proteus_h7.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2021-03-07 13:43:00 -08:00
|
|
|
|
2021-05-08 15:44:19 -07:00
|
|
|
- build-target: proteus_legacy
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/proteus
|
2021-05-08 15:44:19 -07:00
|
|
|
ini-file: rusefi_proteus_f7.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 90
|
2021-05-08 15:44:19 -07: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
|
2023-02-05 16:56:13 -08:00
|
|
|
ini-file: rusefi_stm32f429_nucleo.ini
|
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
|
2023-02-05 16:56:13 -08:00
|
|
|
ini-file: rusefi_stm32f767_nucleo.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 95
|
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-05 16:56:13 -08:00
|
|
|
ini-file: rusefi_stm32h743_nucleo.ini
|
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
|
2021-02-18 15:18:13 -08:00
|
|
|
ini-file: rusefi_subaru_eg33_f7.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 50
|
2021-02-18 15:18:13 -08:00
|
|
|
|
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-16 15:48:48 -08:00
|
|
|
ini-file: rusefi_f407-discovery.ini
|
2023-02-20 14:30:51 -08:00
|
|
|
skip-rate: 0
|
2023-01-31 20:31:42 -08: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-16 16:29:37 -08:00
|
|
|
ini-file: rusefi_f429-discovery.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 95
|
2022-01-10 13:14:39 -08:00
|
|
|
|
2022-02-11 13:06:00 -08:00
|
|
|
- build-target: core8
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/core8
|
2022-02-11 13:06:00 -08:00
|
|
|
ini-file: rusefi_core8.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 95
|
2022-02-11 13:06:00 -08:00
|
|
|
|
2022-05-30 12:56:21 -07:00
|
|
|
- build-target: 48way
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/48way
|
2022-05-30 12:56:21 -07:00
|
|
|
ini-file: rusefi_48way.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 95
|
2022-05-30 12:56:21 -07:00
|
|
|
|
2021-07-25 22:04:58 -07:00
|
|
|
- build-target: atlas
|
2023-02-06 04:37:17 -08:00
|
|
|
folder: config/boards/atlas
|
2021-07-25 22:04:58 -07:00
|
|
|
ini-file: rusefi_atlas.ini
|
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
|
2022-03-30 16:18:18 -07:00
|
|
|
ini-file: rusefi_tdg-pdm8.ini
|
2023-02-20 18:37:51 -08:00
|
|
|
skip-rate: 95
|
2022-03-30 16:18:18 -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
|
2022-01-13 10:17:32 -08:00
|
|
|
- name: Execution throttle early exit
|
2022-01-20 14:56:09 -08:00
|
|
|
# Don't skip any jobs if this workflow was run manually.
|
|
|
|
if: ${{ matrix.skip-rate && github.event_name != 'workflow_dispatch' }}
|
|
|
|
run: if (($(($RANDOM % 100)) < ${{ matrix.skip-rate }})); then echo "skip=true" >> $GITHUB_ENV; fi
|
2022-01-13 10:17:32 -08:00
|
|
|
|
2022-07-27 02:47:07 -07:00
|
|
|
- uses: actions/checkout@v3
|
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
|
2022-01-04 08:51:06 -08:00
|
|
|
|
2022-07-28 01:00:13 -07:00
|
|
|
- uses: actions/setup-java@v3
|
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'
|
2021-02-17 07:07:09 -08:00
|
|
|
java-version: '8'
|
|
|
|
|
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' }}
|
2023-02-07 05:01:27 -08:00
|
|
|
working-directory: ./.github/workflows/
|
2021-03-03 04:50:53 -08:00
|
|
|
run: |
|
2023-02-07 05:01:27 -08:00
|
|
|
sudo ./add-ubuntu-latest-apt-mirrors.sh
|
2021-10-22 13:36:15 -07:00
|
|
|
sudo apt-get install gcc-multilib g++-multilib g++-mingw-w64 gcc-mingw-w64 sshpass mtools
|
2021-07-30 17:22:32 -07:00
|
|
|
sudo apt-get install zip
|
|
|
|
sudo apt-get install 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
|
|
|
|
|
|
|
# live_data_ids.h is generated above so order of operations is important here!
|
|
|
|
- name: Generate Enum Strings
|
|
|
|
if: ${{ env.skip != 'true' }}
|
|
|
|
working-directory: ./firmware/
|
2022-08-31 17:43:07 -07:00
|
|
|
run: ./gen_enum_to_string.sh
|
2022-04-16 17:34:17 -07:00
|
|
|
|
2021-07-30 16:53:49 -07:00
|
|
|
- name: Generate Configs for build-target
|
2023-02-05 16:56:13 -08:00
|
|
|
if: ${{ env.skip != 'true' }}
|
2020-06-18 15:31:54 -07:00
|
|
|
working-directory: ./firmware/
|
2022-04-11 10:54:18 -07:00
|
|
|
# todo: we have code duplication with gen_config.sh here :(
|
2020-07-14 07:28:26 -07:00
|
|
|
run: |
|
|
|
|
if [ "${{ matrix.build-target }}" = "kinetis" ]; then
|
2022-08-15 10:22:12 -07:00
|
|
|
config/boards/kinetis/config/gen_kinetis_config.sh
|
2020-07-14 07:28:26 -07:00
|
|
|
[ $? -eq 0 ] || { echo "ERROR generating board kinetis kin"; exit 1; }
|
2020-09-27 06:56:44 -07:00
|
|
|
elif [ "${{ matrix.build-target }}" = "cypress" ]; then
|
2022-08-16 12:43:03 -07:00
|
|
|
config/boards/cypress/config/gen_cypress_config.sh
|
2022-08-16 08:08:24 -07:00
|
|
|
[ $? -eq 0 ] || { echo "ERROR generating board cypress cypress"; exit 1; }
|
2021-02-18 15:18:13 -08:00
|
|
|
elif [ "${{ matrix.build-target }}" = "subaru_eg33_f7" ]; then
|
2022-04-11 10:54:18 -07:00
|
|
|
bash config/boards/subaru_eg33/config/gen_subaru_config.sh
|
2021-02-18 15:18:13 -08:00
|
|
|
[ $? -eq 0 ] || { echo "ERROR generating board subaru_eg33 subaru_eg33_f7"; exit 1; }
|
2023-02-16 15:48:48 -08:00
|
|
|
elif [ "${{ matrix.ini-file }}" = "" ]; then
|
|
|
|
echo "ERROR: ${{ matrix.build-target }} is missing ini-file attribute"
|
|
|
|
exit -1
|
2020-07-14 07:28:26 -07:00
|
|
|
else
|
2021-07-17 18:41:45 -07:00
|
|
|
bash gen_config_board.sh ${{matrix.folder}} ${{matrix.build-target}} ${{matrix.ini-file}}
|
2020-07-14 07:28:26 -07:00
|
|
|
fi
|
2020-06-18 15:31:54 -07:00
|
|
|
|
2019-11-20 20:34:55 -08:00
|
|
|
# Build machines don't have arm-none-eabi gcc, so let's download it and put it on the path
|
|
|
|
- name: Download & Install GCC
|
2022-01-13 10:17:32 -08:00
|
|
|
if: ${{ env.skip != 'true' }}
|
2020-11-18 15:53:41 -08:00
|
|
|
env:
|
|
|
|
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
|
2022-11-08 15:10:53 -08:00
|
|
|
run: |
|
2022-11-09 04:18:40 -08:00
|
|
|
./firmware/provide_gcc.sh
|
2022-11-08 15:10:53 -08:00
|
|
|
echo "::add-path::`pwd`/gcc-arm-none-eabi/bin"
|
2020-11-11 05:30:26 -08:00
|
|
|
|
|
|
|
# Make sure the compiler we just downloaded works - just print out the version
|
|
|
|
- name: Test 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
|
|
|
|
|
2021-10-22 13:36:15 -07:00
|
|
|
- name: Configs Set SSH variables
|
2022-01-13 10:17:32 -08:00
|
|
|
if: ${{ env.skip != 'true' }}
|
2020-11-18 15:59:02 -08:00
|
|
|
env:
|
|
|
|
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
|
2020-07-08 08:10:24 -07:00
|
|
|
run: |
|
2023-01-21 17:24:07 -08:00
|
|
|
if [ "${{github.event_name}}" = "push" ] && [ "${{github.ref}}" = "refs/heads/master" ] || [ "${{toJSON(inputs.lts)}}" = "true" ]; then
|
2021-10-22 13:36:15 -07:00
|
|
|
echo "::set-env name=RUSEFI_SSH_SERVER::${{secrets.RUSEFI_SSH_SERVER}}";
|
|
|
|
echo "::set-env name=RUSEFI_SSH_USER::${{secrets.RUSEFI_SSH_USER}}";
|
|
|
|
echo "::set-env name=RUSEFI_SSH_PASS::${{secrets.RUSEFI_SSH_PASS}}";
|
2020-07-08 08:10:24 -07:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Build rusEFI console
|
|
|
|
- name: Build console
|
2023-01-21 17:24:07 -08:00
|
|
|
if: ${{( github.event_name == 'push' && github.ref == 'refs/heads/master' && env.skip != 'true' ) || inputs.lts }}
|
2020-07-14 07:28:26 -07:00
|
|
|
run: bash misc/jenkins/build_java_console.sh
|
2023-01-21 17:24:07 -08:00
|
|
|
|
2020-07-08 08:10:24 -07:00
|
|
|
# Build the simulator
|
|
|
|
- name: Build simulator
|
2023-01-21 17:24:07 -08:00
|
|
|
if: ${{( github.event_name == 'push' && github.ref == 'refs/heads/master' && env.skip != 'true' ) || inputs.lts }}
|
2021-10-18 19:43:03 -07:00
|
|
|
# 'OS="Windows_NT"' allows us to build Windows executable on unix
|
2020-07-14 07:28:26 -07:00
|
|
|
run: OS="Windows_NT" bash misc/jenkins/build_simulator.sh
|
2020-07-08 08:10:24 -07:00
|
|
|
|
2019-11-20 20:34:55 -08:00
|
|
|
# Build the firmware!
|
|
|
|
- name: Build Firmware
|
2022-01-13 10:17:32 -08:00
|
|
|
if: ${{ env.skip != 'true' }}
|
2023-02-06 04:37:17 -08:00
|
|
|
run: bash misc/jenkins/compile_other_versions/compile.sh ${{matrix.folder}} ${{matrix.build-target}}
|
2020-07-14 07:28:26 -07:00
|
|
|
|
|
|
|
- name: Package Bundle
|
2023-01-21 17:24:07 -08:00
|
|
|
if: ${{( github.event_name == 'push' && github.ref == 'refs/heads/master' && env.skip != 'true' ) || inputs.lts }}
|
2023-01-28 09:51:55 -08:00
|
|
|
run: bash misc/jenkins/compile_other_versions/prepare_bundle.sh ${{matrix.build-target}} "${{matrix.ini-file}}" ${{ github.ref_name }} ${{ toJSON(inputs.lts) }}
|
2020-06-16 09:33:49 -07:00
|
|
|
|
2022-08-17 15:29:07 -07:00
|
|
|
- name: Upload .ini files
|
2023-01-21 17:24:07 -08:00
|
|
|
if: ${{( github.event_name == 'push' && github.ref == 'refs/heads/master' && env.skip != 'true' ) || inputs.lts }}
|
2022-08-17 15:29:07 -07:00
|
|
|
working-directory: ./firmware/tunerstudio/generated
|
2022-08-17 16:57:04 -07:00
|
|
|
run: |
|
|
|
|
../upload_ini.sh ${{matrix.ini-file}} ${{ secrets.RUSEFI_ONLINE_FTP_USER }} ${{ secrets.RUSEFI_ONLINE_FTP_PASS }} ${{ secrets.RUSEFI_FTP_SERVER }}
|
2022-08-17 15:29:07 -07:00
|
|
|
|
2022-07-07 12:14:31 -07:00
|
|
|
- name: Upload build elf
|
2023-01-21 17:24:07 -08:00
|
|
|
if: ${{ github.event_name != 'push' || github.ref != 'refs/heads/master' && env.skip != 'true' && !inputs.lts }}
|
2022-07-27 10:10:58 -07:00
|
|
|
uses: actions/upload-artifact@v3
|
2022-07-07 12:14:31 -07:00
|
|
|
with:
|
|
|
|
name: rusefi_${{matrix.build-target}}.elf
|
|
|
|
path: ./firmware/build/rusefi.elf
|
|
|
|
|
2020-07-19 13:05:47 -07:00
|
|
|
- name: Upload build bin
|
2023-01-21 17:24:07 -08:00
|
|
|
if: ${{ github.event_name != 'push' || github.ref != 'refs/heads/master' && env.skip != 'true' && !inputs.lts }}
|
2022-07-27 10:10:58 -07:00
|
|
|
uses: actions/upload-artifact@v3
|
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
|
|
|
|
|
|
|
- name: Upload build hex
|
2023-01-21 17:24:07 -08:00
|
|
|
if: ${{ github.event_name != 'push' || github.ref != 'refs/heads/master' && env.skip != 'true' && !inputs.lts }}
|
2022-07-27 10:10:58 -07:00
|
|
|
uses: actions/upload-artifact@v3
|
2020-07-19 13:05:47 -07:00
|
|
|
with:
|
|
|
|
name: rusefi_${{matrix.build-target}}.hex
|
2021-02-23 16:17:58 -08:00
|
|
|
path: ./firmware/deliver/rusefi*.hex
|
2020-07-19 13:05:47 -07:00
|
|
|
|
|
|
|
- name: Upload build dfu
|
2023-01-21 17:24:07 -08:00
|
|
|
if: ${{ github.event_name != 'push' || github.ref != 'refs/heads/master' && env.skip != 'true' && !inputs.lts }}
|
2022-07-27 10:10:58 -07:00
|
|
|
uses: actions/upload-artifact@v3
|
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
|
|
|
|
2020-07-08 08:10:24 -07:00
|
|
|
- name: Upload bundle
|
2023-01-21 17:24:07 -08:00
|
|
|
if: ${{( github.event_name == 'push' && github.ref == 'refs/heads/master' && env.skip != 'true' ) || inputs.lts }}
|
2022-07-27 10:10:58 -07:00
|
|
|
uses: actions/upload-artifact@v3
|
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
|
|
|
|
|
|
|
- name: Upload autoupdate bundle
|
2023-01-21 17:24:07 -08:00
|
|
|
if: ${{( github.event_name == 'push' && github.ref == 'refs/heads/master' && env.skip != 'true' ) || inputs.lts }}
|
2022-07-27 10:10:58 -07:00
|
|
|
uses: actions/upload-artifact@v3
|
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
|