-
Notifications
You must be signed in to change notification settings - Fork 0
99 lines (89 loc) · 2.94 KB
/
build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
name: CI
on:
# # Triggers the workflow on push but only for the master branch
push:
branches: [main, testing]
paths-ignore:
- "**.md"
- version.properties
# Note: This is different from "pull_request". Need to specify ref when doing checkouts.
pull_request_target:
branches: [master, testing]
paths-ignore:
- "**.md"
#- "**.yml"
workflow_dispatch:
jobs:
build:
name: Build ${{ matrix.arch }} ${{ matrix.board }}
strategy:
fail-fast: false
matrix:
include:
- arch: esp32s3
board: t-energy-s3_e22
remove-debug-flags: >-
./arch/esp32/esp32.ini
./arch/esp32/esp32s2.ini
./arch/esp32/esp32s3.ini
./arch/esp32/esp32c3.ini
build-script-path: bin/build-esp32.sh
ota-firmware-source: firmware-s3.bin
ota-firmware-target: release/bleota-s3.bin
artifact-paths: |
release/*.bin
release/*.elf
include-web-ui: true
- arch: nrf52840
board: xiao_ble
build-script-path: bin/build-nrf52.sh
artifact-paths: |
release/*.hex
release/*.uf2
release/*.elf
release/*.zip
runs-on: ubuntu-latest
steps:
- id: checkout_firmware
name: Checkout Meshtastic firmware
uses: actions/checkout@v4
with:
repository: meshtastic/firmware
ref: master
submodules: recursive
- id: checkout_custom
uses: actions/checkout@v4
name: Checkout this repo (custom changes)
with:
path: .custom
- name: Overlay custom firmware changes
run: |
rsync -av .custom/firmware/ ${{ github.workspace }}
rm -rf .custom
- name: Cache PlatformIO and pip
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/.platformio/.cache
${{ github.workspace }}/.cache/.pip
key: pio-${{ matrix.arch }}
- id: build
uses: vidplace7/build-meshtastic@main
env:
PLATFORMIO_CACHE_DIR: ${{ github.workspace }}/.platformio/.cache
PIP_DOWNLOAD_CACHE: ${{ github.workspace }}/.cache/.pip
with:
arch: ${{ matrix.arch }}
board: ${{ matrix.board }}
build-script-path: ${{ matrix.build-script-path }}
remove-debug-flags: ${{ matrix.remove-debug-flags }}
ota-firmware-source: ${{ matrix.ota-firmware-source }}
ota-firmware-target: ${{ matrix.ota-firmware-target }}
include-web-ui: ${{ matrix.include-web-ui }}
- name: Store binaries as an artifact
uses: actions/upload-artifact@v4
with:
name: firmware-${{ matrix.arch }}-${{ matrix.board }}-${{ steps.build.outputs.version }}.zip
overwrite: true
path: |
${{ matrix.artifact-paths }}