Skip to content

Commit a87bc69

Browse files
authored
chore(dev): revise CI (#1050)
corresponding to nRF24/.github#23 * auto-cancel CI runs when a new run is queued does not apply to events on master branch * use LF everywhere * use doxygen v1.15.0 and adjust path to images and some other MD lint rules
1 parent d6718da commit a87bc69

File tree

12 files changed

+392
-293
lines changed

12 files changed

+392
-293
lines changed

.gitattributes

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,22 @@
1010
*.cpp text eol=lf
1111
*.c text eol=lf
1212
configure text eol=lf
13+
.yaml text eol=lf
14+
*.yml text eol=lf
15+
*.md text eol=lf
16+
*.txt text eol=lf
17+
*.json text eol=lf
18+
*.properties text eol=lf
19+
LICENSE text eol=lf
20+
nurfile text eol=lf
21+
.gitignore text eol=lf
22+
.gitattributes text eol=lf
23+
.clang-format text eol=lf
24+
.clang-tidy text eol=lf
25+
Makefile text eol=lf
26+
*.svg text eol=lf
27+
*.ino text eol=lf
28+
*.dot text eol=lf
29+
*.cmake text eol=lf
30+
*.css text eol=lf
31+
Doxyfile text eol=lf

.github/dependabot.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,10 @@ updates:
1010
# default location of `.github/workflows`
1111
directory: "/"
1212
schedule:
13-
interval: "weekly"
13+
interval: "monthly"
14+
cooldown:
15+
default-days: 5
16+
groups:
17+
actions:
18+
patterns:
19+
- "*"

.github/doxygen.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
Running this locally will alter the Doxyfile.
55
Such changes SHOULD NOT be pushed to the remote.
66
"""
7+
78
from pathlib import Path
89
import json
910

@@ -17,9 +18,12 @@ def overwrite_doxygen_value():
1718
properties = json.loads(PROPERTIES.read_text(encoding="utf-8"))
1819
assert "version" in properties
1920
config = CONFIG.read_text(encoding="utf-8")
20-
TMP.write_text("PROJECT_NUMBER = {}\n".format(properties["version"]), encoding="utf-8")
21+
TMP.write_text(
22+
"PROJECT_NUMBER = {}\n".format(properties["version"]), encoding="utf-8"
23+
)
2124
config += f"\n@INCLUDE = {str(TMP)}\n"
2225
CONFIG.write_text(config, encoding="utf-8")
2326

27+
2428
if __name__ == "__main__":
2529
overwrite_doxygen_value()
Lines changed: 172 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -1,163 +1,172 @@
1-
name: Arduino CLI build
2-
3-
on:
4-
pull_request:
5-
branches: [master]
6-
paths:
7-
- ".github/workflows/build_arduino.yml"
8-
- "examples/**"
9-
- "!examples/old_backups/**"
10-
- "RF24.*"
11-
push:
12-
branches: [master]
13-
paths:
14-
- ".github/workflows/build_arduino.yml"
15-
- "examples/**"
16-
- "!examples/old_backups/**"
17-
18-
jobs:
19-
build:
20-
uses: nRF24/.github/.github/workflows/build_arduino.yaml@main
21-
with:
22-
sketch-paths: |
23-
- examples/GettingStarted
24-
- examples/AcknowledgementPayloads
25-
- examples/ManualAcknowledgements
26-
- examples/StreamingData
27-
- examples/MulticeiverDemo
28-
- examples/InterruptConfigure
29-
- examples/scanner
30-
- examples/encodeRadioDetails
31-
# The following examples still exist for posterity. They don't trigger this workflow
32-
# - examples/old_backups/GettingStarted_HandlingFailures
33-
# - examples/old_backups/pingpair_dyn
34-
# - examples/old_backups/pingpair_irq
35-
# - examples/old_backups/pingpair_multi_dyn
36-
# - examples/old_backups/pingpair_sleepy
37-
# - examples/old_backups/TransferTimeouts
38-
# - examples/old_backups/recipes/led_remote
39-
# - examples/old_backups/recipes/nordic_fob
40-
# - examples/old_backups/recipes/pingpair_maple
41-
fqbn: ${{ matrix.fqbn }}
42-
enable-deltas-report: ${{ matrix.enable-deltas-report }}
43-
# install earlphilhower's arduino-pico platform index
44-
platforms: |
45-
- name: rp2040:rp2040
46-
source-url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
47-
- name: arduino:avr
48-
- name: arduino:megaavr
49-
- name: arduino:sam
50-
- name: arduino:samd
51-
- name: arduino:mbed
52-
strategy:
53-
fail-fast: false
54-
matrix:
55-
fqbn:
56-
- "arduino:avr:yun"
57-
- "arduino:avr:uno"
58-
- "arduino:avr:diecimila"
59-
- "arduino:avr:mega"
60-
- "arduino:avr:megaADK"
61-
- "arduino:avr:leonardo"
62-
- "arduino:avr:micro"
63-
- "arduino:avr:esplora"
64-
- "arduino:avr:mini"
65-
- "arduino:avr:ethernet"
66-
- "arduino:avr:fio"
67-
- "arduino:avr:bt"
68-
# - "arduino:avr:LilyPad" # board not found
69-
- "arduino:avr:LilyPadUSB"
70-
- "arduino:avr:pro"
71-
- "arduino:avr:atmegang"
72-
- "arduino:avr:robotControl"
73-
- "arduino:avr:robotMotor"
74-
# - "arduino:avr:gemma" # does not support SPI
75-
- "arduino:avr:circuitplay32u4cat"
76-
- "arduino:avr:yunmini"
77-
- "arduino:avr:chiwawa"
78-
- "arduino:avr:one"
79-
- "arduino:avr:unowifi"
80-
- "arduino:mbed:nano33ble"
81-
- "arduino:mbed:nanorp2040connect"
82-
- "rp2040:rp2040:rpipico"
83-
- "rp2040:rp2040:rpipicow"
84-
- "rp2040:rp2040:adafruit_feather"
85-
- "arduino:samd:mkr1000" # InterruptConfigure.ino uses pin 2
86-
- "arduino:samd:mkrwifi1010" # InterruptConfigure.ino uses pin 2
87-
- "arduino:samd:nano_33_iot"
88-
- "arduino:samd:mkrfox1200" # InterruptConfigure.ino uses pin 2
89-
- "arduino:samd:mkrwan1300" # InterruptConfigure.ino uses pin 2
90-
- "arduino:samd:mkrwan1310" # InterruptConfigure.ino uses pin 2
91-
- "arduino:samd:mkrgsm1400" # InterruptConfigure.ino uses pin 2
92-
- "arduino:samd:mkrnb1500" # InterruptConfigure.ino uses pin 2
93-
- "arduino:samd:mkrvidor4000" # InterruptConfigure.ino uses pin 2
94-
- "arduino:samd:adafruit_circuitplayground_m0"
95-
- "arduino:samd:mzero_pro_bl"
96-
- "arduino:samd:mzero_bl"
97-
- "arduino:samd:tian"
98-
- "arduino:megaavr:uno2018"
99-
# - "arduino:megaavr:nano4809" # board not found
100-
- "arduino:sam:arduino_due_x_dbg"
101-
# By default, don't generate size deltas data.
102-
enable-deltas-report:
103-
- false
104-
# Generate size deltas data for this board
105-
include:
106-
- fqbn: arduino:avr:nano
107-
enable-deltas-report: true
108-
- fqbn: arduino:samd:mkrzero # InterruptConfigure.ino uses pin 2
109-
enable-deltas-report: true
110-
111-
#### NOTE installing ATTinyCore has become too problematic for various reasons
112-
#### I'll have to revisit this later when the Arduino CLI tool gets their act together
113-
# attiny:
114-
# uses: nRF24/.github/.github/workflows/build_arduino.yaml@main
115-
# with:
116-
# platforms: |
117-
# - source-url: "http://drazzy.com/package_drazzy.com_index.json"
118-
# name: "ATTinyCore:avr"
119-
# - name: "arduino:avr"
120-
# sketch-paths: |
121-
# - examples/rf24_ATTiny/rf24ping85
122-
# - examples/rf24_ATTiny/timingSearch3pin
123-
# fqbn: ${{ matrix.fqbn }}
124-
# enable-deltas-report: ${{ matrix.enable-deltas-report }}
125-
# strategy:
126-
# fail-fast: false
127-
# matrix:
128-
# fqbn:
129-
# - ATTinyCore:avr:attinyx4
130-
# - ATTinyCore:avr:attinyx4opti
131-
# - ATTinyCore:avr:attinyx4micr
132-
# - ATTinyCore:avr:attinyx5
133-
# - ATTinyCore:avr:attinyx5micr
134-
# - ATTinyCore:avr:attinyx8
135-
# - ATTinyCore:avr:attinyx8opti
136-
# - ATTinyCore:avr:attinyx8micr
137-
# - ATTinyCore:avr:attinyx7
138-
# - ATTinyCore:avr:attinyx7opti
139-
# - ATTinyCore:avr:attinyx7micr
140-
# - ATTinyCore:avr:attinyx61
141-
# - ATTinyCore:avr:attinyx61opti
142-
# - ATTinyCore:avr:attinyx41
143-
# - ATTinyCore:avr:attinyx41opti
144-
# - ATTinyCore:avr:attinyx41micr
145-
# # - ATTinyCore:avr:attiny43 # doesn't seem to support USI implementation of SPI
146-
# - ATTinyCore:avr:attiny828
147-
# - ATTinyCore:avr:attiny828opti
148-
# - ATTinyCore:avr:attiny1634
149-
# - ATTinyCore:avr:attiny1634opti
150-
# - ATTinyCore:avr:attinyx313
151-
# # By default, don't generate size deltas data.
152-
# enable-deltas-report:
153-
# - false
154-
# # Generate size deltas data for this board
155-
# include:
156-
# - fqbn: ATTinyCore:avr:attinyx5
157-
# enable-deltas-report: true
158-
159-
# When using a matrix to compile for multiple boards, it's necessary to use a separate job for the deltas report
160-
report:
161-
needs: [build] # , attiny]
162-
if: github.event_name == 'pull_request'
163-
uses: nRF24/.github/.github/workflows/arduino_size_deltas.yaml@main
1+
name: Arduino
2+
3+
on:
4+
pull_request:
5+
branches: [master]
6+
paths:
7+
- ".github/workflows/build_arduino.yml"
8+
- "examples/**"
9+
- "!examples/old_backups/**"
10+
- "RF24.*"
11+
push:
12+
branches: [master]
13+
paths:
14+
- ".github/workflows/build_arduino.yml"
15+
- "examples/**"
16+
- "!examples/old_backups/**"
17+
18+
permissions: {}
19+
20+
concurrency:
21+
group: ${{ github.workflow }}-${{ github.ref }}
22+
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
23+
24+
jobs:
25+
build:
26+
uses: nRF24/.github/.github/workflows/build_arduino.yaml@main
27+
with:
28+
sketch-paths: |
29+
- examples/GettingStarted
30+
- examples/AcknowledgementPayloads
31+
- examples/ManualAcknowledgements
32+
- examples/StreamingData
33+
- examples/MulticeiverDemo
34+
- examples/InterruptConfigure
35+
- examples/scanner
36+
- examples/encodeRadioDetails
37+
# The following examples still exist for posterity. They don't trigger this workflow
38+
# - examples/old_backups/GettingStarted_HandlingFailures
39+
# - examples/old_backups/pingpair_dyn
40+
# - examples/old_backups/pingpair_irq
41+
# - examples/old_backups/pingpair_multi_dyn
42+
# - examples/old_backups/pingpair_sleepy
43+
# - examples/old_backups/TransferTimeouts
44+
# - examples/old_backups/recipes/led_remote
45+
# - examples/old_backups/recipes/nordic_fob
46+
# - examples/old_backups/recipes/pingpair_maple
47+
fqbn: ${{ matrix.fqbn }}
48+
enable-deltas-report: ${{ matrix.enable-deltas-report }}
49+
# install earlphilhower's arduino-pico platform index
50+
platforms: |
51+
- name: rp2040:rp2040
52+
source-url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
53+
- name: arduino:avr
54+
- name: arduino:megaavr
55+
- name: arduino:sam
56+
- name: arduino:samd
57+
- name: arduino:mbed
58+
strategy:
59+
fail-fast: false
60+
matrix:
61+
fqbn:
62+
- "arduino:avr:yun"
63+
- "arduino:avr:uno"
64+
- "arduino:avr:diecimila"
65+
- "arduino:avr:mega"
66+
- "arduino:avr:megaADK"
67+
- "arduino:avr:leonardo"
68+
- "arduino:avr:micro"
69+
- "arduino:avr:esplora"
70+
- "arduino:avr:mini"
71+
- "arduino:avr:ethernet"
72+
- "arduino:avr:fio"
73+
- "arduino:avr:bt"
74+
# - "arduino:avr:LilyPad" # board not found
75+
- "arduino:avr:LilyPadUSB"
76+
- "arduino:avr:pro"
77+
- "arduino:avr:atmegang"
78+
- "arduino:avr:robotControl"
79+
- "arduino:avr:robotMotor"
80+
# - "arduino:avr:gemma" # does not support SPI
81+
- "arduino:avr:circuitplay32u4cat"
82+
- "arduino:avr:yunmini"
83+
- "arduino:avr:chiwawa"
84+
- "arduino:avr:one"
85+
- "arduino:avr:unowifi"
86+
- "arduino:mbed:nano33ble"
87+
- "arduino:mbed:nanorp2040connect"
88+
- "rp2040:rp2040:rpipico"
89+
- "rp2040:rp2040:rpipicow"
90+
- "rp2040:rp2040:adafruit_feather"
91+
- "arduino:samd:mkr1000" # InterruptConfigure.ino uses pin 2
92+
- "arduino:samd:mkrwifi1010" # InterruptConfigure.ino uses pin 2
93+
- "arduino:samd:nano_33_iot"
94+
- "arduino:samd:mkrfox1200" # InterruptConfigure.ino uses pin 2
95+
- "arduino:samd:mkrwan1300" # InterruptConfigure.ino uses pin 2
96+
- "arduino:samd:mkrwan1310" # InterruptConfigure.ino uses pin 2
97+
- "arduino:samd:mkrgsm1400" # InterruptConfigure.ino uses pin 2
98+
- "arduino:samd:mkrnb1500" # InterruptConfigure.ino uses pin 2
99+
- "arduino:samd:mkrvidor4000" # InterruptConfigure.ino uses pin 2
100+
- "arduino:samd:adafruit_circuitplayground_m0"
101+
- "arduino:samd:mzero_pro_bl"
102+
- "arduino:samd:mzero_bl"
103+
- "arduino:samd:tian"
104+
- "arduino:megaavr:uno2018"
105+
# - "arduino:megaavr:nano4809" # board not found
106+
- "arduino:sam:arduino_due_x_dbg"
107+
# By default, don't generate size deltas data.
108+
enable-deltas-report:
109+
- false
110+
# Generate size deltas data for this board
111+
include:
112+
- fqbn: arduino:avr:nano
113+
enable-deltas-report: true
114+
- fqbn: arduino:samd:mkrzero # InterruptConfigure.ino uses pin 2
115+
enable-deltas-report: true
116+
117+
#### NOTE installing ATTinyCore has become too problematic for various reasons
118+
#### I'll have to revisit this later when the Arduino CLI tool gets their act together
119+
# attiny:
120+
# uses: nRF24/.github/.github/workflows/build_arduino.yaml@main
121+
# with:
122+
# platforms: |
123+
# - source-url: "http://drazzy.com/package_drazzy.com_index.json"
124+
# name: "ATTinyCore:avr"
125+
# - name: "arduino:avr"
126+
# sketch-paths: |
127+
# - examples/rf24_ATTiny/rf24ping85
128+
# - examples/rf24_ATTiny/timingSearch3pin
129+
# fqbn: ${{ matrix.fqbn }}
130+
# enable-deltas-report: ${{ matrix.enable-deltas-report }}
131+
# strategy:
132+
# fail-fast: false
133+
# matrix:
134+
# fqbn:
135+
# - ATTinyCore:avr:attinyx4
136+
# - ATTinyCore:avr:attinyx4opti
137+
# - ATTinyCore:avr:attinyx4micr
138+
# - ATTinyCore:avr:attinyx5
139+
# - ATTinyCore:avr:attinyx5micr
140+
# - ATTinyCore:avr:attinyx8
141+
# - ATTinyCore:avr:attinyx8opti
142+
# - ATTinyCore:avr:attinyx8micr
143+
# - ATTinyCore:avr:attinyx7
144+
# - ATTinyCore:avr:attinyx7opti
145+
# - ATTinyCore:avr:attinyx7micr
146+
# - ATTinyCore:avr:attinyx61
147+
# - ATTinyCore:avr:attinyx61opti
148+
# - ATTinyCore:avr:attinyx41
149+
# - ATTinyCore:avr:attinyx41opti
150+
# - ATTinyCore:avr:attinyx41micr
151+
# # - ATTinyCore:avr:attiny43 # doesn't seem to support USI implementation of SPI
152+
# - ATTinyCore:avr:attiny828
153+
# - ATTinyCore:avr:attiny828opti
154+
# - ATTinyCore:avr:attiny1634
155+
# - ATTinyCore:avr:attiny1634opti
156+
# - ATTinyCore:avr:attinyx313
157+
# # By default, don't generate size deltas data.
158+
# enable-deltas-report:
159+
# - false
160+
# # Generate size deltas data for this board
161+
# include:
162+
# - fqbn: ATTinyCore:avr:attinyx5
163+
# enable-deltas-report: true
164+
165+
# When using a matrix to compile for multiple boards, it's necessary to use a separate job for the deltas report
166+
report:
167+
needs: [build] # , attiny]
168+
if: github.event_name == 'pull_request'
169+
permissions:
170+
# for posting/updating comments on PR threads
171+
pull-requests: write
172+
uses: nRF24/.github/.github/workflows/arduino_size_deltas.yaml@main

0 commit comments

Comments
 (0)