-
-
Notifications
You must be signed in to change notification settings - Fork 13
154 lines (137 loc) · 4.41 KB
/
PlatformioBuild.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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
name: PlatformIOBuild
env:
PROJECT_DIR: examples/Tests/build_test
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
on:
push:
paths:
- '**.ino'
- '**.ini'
- '**.cpp'
- '**.hpp'
- '**.h'
- '**.c'
- '**PlatformioBuild.yml'
pull_request:
workflow_dispatch:
inputs:
master_branch:
description: 'Main branch'
required: true
default: 'master'
jobs:
build:
name: ${{ matrix.board }}@${{ matrix.platform-version }}
runs-on: ubuntu-latest
strategy:
matrix:
# This matrix is highly dependant on platformio.ini contents
# It expects [env] values named after the board and the platform
# version e.g. [[email protected]] and trusts that env
# for loading the relevant platform version
platform-version:
- 1.0.6
#- 2.0.0
#- 2.0.1
#- 2.0.2
#- 2.0.3
#- 2.0.4
# - 2.0.5
# - 2.0.6
# - 2.0.7
# - 2.0.8
- 2.0.9
- 2.0.10
- 2.0.11
- 2.0.12
- 2.0.13
board:
- esp32
- m5stick-c
- m5stack-core-esp32
- m5stack-fire
- m5stack-core2
- odroid_esp32
- esp-wrover-kit
- esp32s3box
- lolin_d32_pro
- ttgo-t-watch
- ttgo-t1
- CoreS3
#- ttgo-lora32-v2
- TDeck
exclude:
- { board: esp32s3box, platform-version: 1.0.6 }
#- { board: esp32s3box, platform-version: 2.0.0 }
#- { board: esp32s3box, platform-version: 2.0.1 }
#- { board: esp32s3box, platform-version: 2.0.2 }
#- { board: esp32s3box, platform-version: 2.0.4 }
- { board: TDeck, platform-version: 1.0.6 }
#- { board: esp-wrover-kit, platform-version: 1.0.6}
- { board: m5stack-core2, platform-version: 1.0.6 } # M5Core2.h broken I2S support with 1.0.6
- { board: CoreS3, platform-version: 1.0.6 } # M5Core2.h broken I2S support with 1.0.6
#- { board: m5stack-core2, platform-version: 2.0.0 } # M5Core2.h broken I2S support with 2.0.0
include:
- platform-version: 1.0.6
#- platform-version: 2.0.0
#- platform-version: 2.0.1
#- platform-version: 2.0.2
#- platform-version: 2.0.3
#- platform-version: 2.0.4
# - platform-version: 2.0.5
# - platform-version: 2.0.6
# - platform-version: 2.0.7
# - platform-version: 2.0.8
# - platform-version: 2.0.9
- platform-version: 2.0.10
- platform-version: 2.0.11
- platform-version: 2.0.12
- platform-version: 2.0.13
- board: esp32
- board: m5stick-c
- board: m5stack-core-esp32
- board: m5stack-fire
- board: m5stack-core2
- board: odroid_esp32
- board: esp-wrover-kit
- board: esp32s3box
- board: lolin_d32_pro
- board: ttgo-t-watch
- board: ttgo-t1
- board: CoreS3
- board: TDeck
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Cache pip
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Cache PlatformIO
uses: actions/cache@v3
with:
path: ~/.platformio
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install PlatformIO
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
# pio upgrade --dev
- name: Run PlatformIO
run: |
cd ${{ env.PROJECT_DIR }}
export pio_ver=${{ matrix.platform-version }}
export pio_env="${pio_ver//./_}"
[[ "${{ env.BRANCH_NAME }}" == "${{ github.event.inputs.master_branch }}" ]] && rm dev_lib_deps.ini || echo "Develop!" && pio system prune -f
pio lib -e ${{ matrix.board }}_$pio_env install --no-save file://$(realpath ../../../)
pio run -e ${{ matrix.board }}_$pio_env