Skip to content

Fix time gap with RTC millis() overflow #869

Fix time gap with RTC millis() overflow

Fix time gap with RTC millis() overflow #869

name: Compile Examples
on:
pull_request:
paths:
- ".github/workflows/compile-examples.yml"
- "megaavr/libraries/**"
- "megaavr/cores/**"
- "megaavr/variants/**"
- "megaavr/*.txt"
push:
paths:
- ".github/workflows/compile-examples.yml"
- "megaavr/libraries/**"
- "megaavr/cores/**"
- "megaavr/variants/**"
- "megaavr/*.txt"
# workflow_dispatch event allows the workflow to be triggered manually
# See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows#workflow_dispatch
workflow_dispatch:
# repository_dispatch event allows the workflow to be triggered via the GitHub API
# See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows#repository_dispatch
repository_dispatch:
jobs:
compile-examples:
runs-on: ubuntu-latest
env:
platform-name: megaTinyCore:megaavr
bootloader-optiboot-o-flash-7_5kB-plus-true-sketch-paths: |
- megaavr/libraries/Optiboot_flasher/examples/Flash_put_get
available-flash-7_5kB-plus-true-sketch-paths: |
- megaavr/libraries/EEPROM/examples/eeprom_get
- megaavr/libraries/USERSIG/examples/usersig_get
- megaavr/libraries/SPI/examples/BarometricPressureSensor
- megaavr/libraries/SoftwareSerial/examples/TwoPortReceive
- megaavr/libraries/Wire/examples/SFRRanger_reader
- megaavr/libraries/tinyNeoPixel/examples/RGBWstrandtest
- megaavr/extras/CompileTestSketches/test_analog_read
- megaavr/libraries/Wire/examples/slave_address_mask
- megaavr/libraries/Wire/examples/master_multi_address_write
available-flash-7_5kB-plus-true-1620only-sketch-paths: |
- megaavr/libraries/megaTinyCore/examples/megaTinyTuner
available-flash-4kB-plus-true-sketch-paths: |
- megaavr/libraries/SoftwareSerial/examples/SoftwareSerialExample
available-flash-3_5kB-plus-true-sketch-paths: |
- megaavr/libraries/EEPROM/examples/eeprom_crc
- megaavr/libraries/EEPROM/examples/eeprom_put
- megaavr/libraries/EEPROM/examples/eeprom_read
- megaavr/libraries/USERSIG/examples/usersig_crc
- megaavr/libraries/USERSIG/examples/usersig_put
- megaavr/libraries/USERSIG/examples/usersig_read
- megaavr/libraries/Wire/examples/digital_potentiometer
- megaavr/libraries/Wire/examples/slave_write_read
- megaavr/libraries/Wire/examples/master_and_slave
- megaavr/libraries/Wire/examples/master_write_read
- megaavr/libraries/Wire/examples/slave_secondary_address
- megaavr/libraries/megaTinyCore/examples/ModernRevSer
- megaavr/libraries/megaTinyCore/examples/readTempVcc
- megaavr/libraries/megaTinyCore/examples/ErsatzReset
- megaavr/libraries/megaTinyCore/examples/ErsatzReset_2
- megaavr/libraries/tinyNeoPixel/examples/buttoncycler
- megaavr/libraries/tinyNeoPixel/examples/simple
- megaavr/libraries/tinyNeoPixel/examples/strandtest
- megaavr/libraries/tinyNeoPixel_Static/examples/buttoncycler
- megaavr/libraries/tinyNeoPixel_Static/examples/strandtest
available-flash-2kB-plus-true-sketch-paths: |
- megaavr/extras/CompileTestSketches/test_digital_io
- megaavr/extras/CompileTestSketches/test_macros
available-flash-1_5kB-plus-true-sketch-paths: |
- megaavr/libraries/EEPROM/examples/eeprom_clear
- megaavr/libraries/EEPROM/examples/eeprom_iteration
- megaavr/libraries/EEPROM/examples/eeprom_update
- megaavr/libraries/EEPROM/examples/eeprom_write
- megaavr/libraries/USERSIG/examples/usersig_clear
- megaavr/libraries/USERSIG/examples/usersig_iteration
- megaavr/libraries/USERSIG/examples/usersig_update
- megaavr/libraries/USERSIG/examples/usersig_write
- megaavr/libraries/Logic/examples/Three_input_AND
- megaavr/libraries/Logic/examples/Modulate
- megaavr/libraries/Logic/examples/Oscillate
- megaavr/libraries/Logic/examples/LatchNoSeq
- megaavr/libraries/SPI/examples/DigitalPotControl
- megaavr/libraries/tinyNeoPixel_Static/examples/simple
- megaavr/extras/CompileTestSketches/timing/test_millis_micros
free-TCB-flash-3.5kB-plus-true-sketch-paths: |
- megaavr/extras/CompileTestSketches/timing/test_tone
- megaavr/libraries/Servo/examples/Knob
- megaavr/libraries/Servo/examples/ServoMaxTest
- megaavr/libraries/Servo/examples/Sweep
- megaavr/libraries/Servo_megaTinyCore/examples/Knob
- megaavr/libraries/Servo_megaTinyCore/examples/ServoMaxTest
- megaavr/libraries/Servo_megaTinyCore/examples/Sweep
- megaavr/libraries/Comparator/examples/Hysteresis
- megaavr/libraries/Comparator/examples/Internal_reference
- megaavr/libraries/Comparator/examples/Interrupt
- megaavr/libraries/Comparator/examples/Simple_comparator
- megaavr/libraries/Event/examples/Simple_event
IO-class-6-plus-true-sketch-paths: |
- megaavr/libraries/Logic/examples/Five_input_NOR
IO-class-2-series-1-sketch-paths: |
- megaavr/libraries/megaTinyCore/examples/TCA0Demo3
Series-1-available-flash-16kB-plus-true-1620only-sketch-paths: |
- megaavr/libraries/megaTinyCore/examples/SelfTuning
Series-2-available-flash-16kB-plus-true-1620only-sketch-paths: |
- megaavr/libraries/megaTinyCore/examples/SelfTuning
strategy:
fail-fast: false
matrix:
flash-class:
- 32
- 16
- 8
- 4
- 2
peripheral-class:
- 2
- 1
- 0
IO-class:
- 7
- 6
- 4
- 2
bootloader-series:
- y
- 2
bootloader-code:
-
- o
# Filter out these matrix combinations
exclude:
- flash-class: 32
peripheral-class: 0
- flash-class: 32
IO-class: 4
- flash-class: 32
IO-class: 2
- flash-class: 16
IO-class: 2
- flash-class: 8
IO-class: 2
- flash-class: 4
peripheral-class: 0
IO-class: 7
- flash-class: 2
IO-class: 7
- flash-class: 2
IO-class: 6
- flash-class: 2
peripheral-class: 2
- IO-class: 2
peripheral-class: 2
- peripheral-class: 2
bootloader-code: o
bootloader-series: y
- peripheral-class: 2
bootloader-code:
bootloader-series: 2
- peripheral-class: 1
bootloader-series: 2
- peripheral-class: 0
bootloader-series: 2
include:
- flash-class: 32
bootloader-code:
available-flash-kB: 32
bootloader-series: y
- flash-class: 32
bootloader-code: o
available-flash-kB: 31.5
- flash-class: 16
bootloader-code:
available-flash-kB: 16
bootloader-series: y
- flash-class: 16
bootloader-code: o
available-flash-kB: 15.5
- flash-class: 8
bootloader-code:
available-flash-kB: 8
bootloader-series: y
- flash-class: 8
bootloader-code: o
available-flash-kB: 7.5
- flash-class: 4
bootloader-code:
available-flash-kB: 4
bootloader-series: y
- flash-class: 4
bootloader-code: o
available-flash-kB: 3.5
- flash-class: 2
bootloader-code:
available-flash-kB: 2
bootloader-series: y
- flash-class: 2
bootloader-code: o
available-flash-kB: 1.5
steps:
- name: Checkout repository
uses: actions/checkout@v2
# See: https://github.com/arduino/compile-sketches/README.md
- name: Compile examples (all default)
uses: arduino/compile-sketches@main
with:
cli-version: 0.33.0
fqbn: ${{ env.platform-name }}:atx${{ matrix.bootloader-series}}${{ matrix.IO-class }}${{ matrix.bootloader-code }}:chip=${{ matrix.flash-class }}${{ matrix.peripheral-class }}${{ matrix.IO-class }},wiremode=mors,attach=allenabled,PWMmux=default
sketch-paths: |
# It's necessary to jump through some hoops to dynamically generate the env object keys to define the non-universal sketch paths
# https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#format
${{ env[format('available-flash-7_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 7.5)] }}
${{ env[format('available-flash-7_5kB-plus-{0}-1620only-sketch-paths', matrix.available-flash-kB >= 7.5)] }}
${{ env[format('available-flash-4kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 4)] }}
${{ env[format('available-flash-3_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('available-flash-2kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 2)] }}
${{ env[format('available-flash-1_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 1.5)] }}
${{ env[format('free-TCB-flash-3.5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('bootloader-optiboot-{0}-flash-7_5kB-plus-{1}-sketch-paths', matrix.bootloader-code, (matrix.available-flash-kB >= 7.5))] }}
${{ env[format('IO-class-4-plus-{0}-sketch-paths', matrix.IO-class >= 4)] }}
${{ env[format('IO-class-{0}-series-{1}-sketch-paths', matrix.IO-class, matrix.peripheral-class)] }}
${{ env[format('Series-{0}-available-flash-16kB-plus-{1}-1620only-sketch-paths', matrix.peripheral-class, matrix.available-flash-kB >= 15.5)] }}
platforms: |
# Install megaTinyCore via Boards Manager for the toolchain
- source-url: http://drazzy.com/package_drazzy.com_index.json
name: ${{ env.platform-name }}
# Overwrite the megaTinyCore release version with the platform from the local path
- source-path: megaavr
name: ${{ env.platform-name }}
libraries: |
# The sketches don't have any external library dependencies, so just define an empty array
-
verbose: false
enable-deltas-report: true
github-token: ${{ secrets.GITHUB_TOKEN }}
enable-warnings-report: true
sketches-report-path: sketches-reports
- name: Compile examples (disable millis)
uses: arduino/compile-sketches@main
with:
cli-version: 0.33.0
fqbn: ${{ env.platform-name }}:atx${{ matrix.bootloader-series}}${{ matrix.IO-class }}${{ matrix.bootloader-code }}:chip=${{ matrix.flash-class }}${{ matrix.peripheral-class }}${{ matrix.IO-class }},millis=disabled,wiremode=mands,attach=manual,PWMmux=buffered
sketch-paths: |
# It's necessary to jump through some hoops to dynamically generate the env object keys to define the non-universal sketch paths
# https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#format
${{ env[format('available-flash-7_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 7.5)] }}
${{ env[format('available-flash-7_5kB-plus-{0}-1620only-sketch-paths', matrix.available-flash-kB >= 7.5)] }}
${{ env[format('available-flash-4kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 4)] }}
${{ env[format('available-flash-3_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('available-flash-2kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 2)] }}
${{ env[format('available-flash-1_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 1.5)] }}
${{ env[format('free-TCB-flash-3.5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('bootloader-optiboot-{0}-flash-7_5kB-plus-{1}-sketch-paths', matrix.bootloader-code, matrix.available-flash-kB >= 7.5)] }}
${{ env[format('IO-class-4-plus-{0}-sketch-paths', matrix.IO-class >= 4)] }}
${{ env[format('IO-class-{0}-series-{1}-sketch-paths', matrix.IO-class, matrix.peripheral-class)] }}
${{ env[format('Series-{0}-available-flash-16kB-plus-{1}-1620only-sketch-paths', matrix.peripheral-class, matrix.available-flash-kB >= 15.5)] }}
platforms: |
# Install megaTinyCore via Boards Manager for the toolchain
- source-url: http://drazzy.com/package_drazzy.com_index.json
name: ${{ env.platform-name }}
# Overwrite the megaTinyCore release version with the platform from the local path
- source-path: megaavr
name: ${{ env.platform-name }}
libraries: |
# The sketches don't have any external library dependencies, so just define an empty array
-
verbose: false
enable-deltas-report: true
github-token: ${{ secrets.GITHUB_TOKEN }}
enable-warnings-report: true
sketches-report-path: sketches-reports
- name: Compile examples (TCB0 millis)
uses: arduino/compile-sketches@main
with:
cli-version: 0.33.0
fqbn: ${{ env.platform-name }}:atx${{ matrix.bootloader-series}}${{ matrix.IO-class }}${{ matrix.bootloader-code }}:chip=${{ matrix.flash-class }}${{ matrix.peripheral-class }}${{ matrix.IO-class }},millis=timerb0,wiremode=mors,attach=manual,PWMmux=I3
sketch-paths: |
# It's necessary to jump through some hoops to dynamically generate the env object keys to define the non-universal sketch paths
# https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#format
${{ env[format('available-flash-7_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 7.5)] }}
${{ env[format('available-flash-7_5kB-plus-{0}-1620only-sketch-paths', matrix.available-flash-kB >= 7.5)] }}
${{ env[format('available-flash-4kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 4)] }}
${{ env[format('available-flash-3_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('available-flash-2kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 2)] }}
${{ env[format('available-flash-1_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 1.5)] }}
${{ env[format('free-TCB-flash-3.5kB-plus-{0}-sketch-paths', (matrix.available-flash-kB >= 3.5 && (matrix.peripheral-class == 2 || (matrix.peripheral-class == 1 && matrix.available-flash-kB >= 15.5))))] }}
${{ env[format('IO-class-4-plus-{0}-sketch-paths', matrix.IO-class >= 4)] }}
platforms: |
# Install megaTinyCore via Boards Manager for the toolchain
- source-url: http://drazzy.com/package_drazzy.com_index.json
name: ${{ env.platform-name }}
# Overwrite the megaTinyCore release version with the platform from the local path
- source-path: megaavr
name: ${{ env.platform-name }}
libraries: |
# The sketches don't have any external library dependencies, so just define an empty array
-
verbose: false
enable-deltas-report: true
github-token: ${{ secrets.GITHUB_TOKEN }}
enable-warnings-report: true
sketches-report-path: sketches-reports
- name: Compile examples (RTC millis)
uses: arduino/compile-sketches@main
with:
fqbn: ${{ env.platform-name }}:atx${{ matrix.bootloader-series}}${{ matrix.IO-class }}${{ matrix.bootloader-code }}:chip=${{ matrix.flash-class }}${{ matrix.peripheral-class }}${{ matrix.IO-class }},millis=rtc,wiremode=mands,attach=allenabled,PWMmux=buffered
sketch-paths: |
# It's necessary to jump through some hoops to dynamically generate the env object keys to define the non-universal sketch paths
# https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#format
${{ env[format('available-flash-7_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 7.5)] }}
${{ env[format('available-flash-7_5kB-plus-{0}-1620only-sketch-paths', matrix.available-flash-kB >= 7.5)] }}
${{ env[format('available-flash-4kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 4)] }}
${{ env[format('available-flash-3_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('available-flash-2kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 2)] }}
${{ env[format('available-flash-1_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 1.5)] }}
${{ env[format('free-TCB-flash-3.5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('bootloader-optiboot-{0}-flash-7_5kB-plus-{1}-sketch-paths', matrix.bootloader-code, matrix.available-flash-kB >= 7.5)] }}
${{ env[format('IO-class-4-plus-{0}-sketch-paths', matrix.IO-class >= 4)] }}
${{ env[format('IO-class-{0}-series-{1}-sketch-paths', matrix.IO-class, matrix.peripheral-class)] }}
${{ env[format('Series-{0}-available-flash-16kB-plus-{1}-1620only-sketch-paths', matrix.peripheral-class, matrix.available-flash-kB >= 15.5)] }}
platforms: |
# Install megaTinyCore via Boards Manager for the toolchain
- source-url: http://drazzy.com/package_drazzy.com_index.json
name: ${{ env.platform-name }}
# Overwrite the megaTinyCore release version with the platform from the local path
- source-path: megaavr
name: ${{ env.platform-name }}
libraries: |
# The sketches don't have any external library dependencies, so just define an empty array
-
verbose: false
enable-deltas-report: true
github-token: ${{ secrets.GITHUB_TOKEN }}
enable-warnings-report: true
sketches-report-path: sketches-reports
- name: Compile examples (default millis, 8 MHz)
uses: arduino/compile-sketches@main
with:
cli-version: 0.33.0
fqbn: ${{ env.platform-name }}:atx${{ matrix.bootloader-series}}${{ matrix.IO-class }}${{ matrix.bootloader-code }}:chip=${{ matrix.flash-class }}${{ matrix.peripheral-class }}${{ matrix.IO-class }},clock${{ matrix.bootloader-code }}=8internal,wiremode=mors,attach=oldversion,PWMmux=I3
sketch-paths: |
# It's necessary to jump through some hoops to dynamically generate the env object keys to define the non-universal sketch paths
# https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#format
${{ env[format('available-flash-7_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 7.5)] }}
${{ env[format('available-flash-4kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 4)] }}
${{ env[format('available-flash-3_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('available-flash-2kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 2)] }}
${{ env[format('available-flash-1_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 1.5)] }}
${{ env[format('bootloader-optiboot-{0}-flash-7_5kB-plus-{1}-sketch-paths', matrix.bootloader-code, matrix.available-flash-kB >= 7.5)] }}
${{ env[format('IO-class-4-plus-{0}-sketch-paths', matrix.IO-class >= 4)] }}
${{ env[format('IO-class-{0}-series-{1}-sketch-paths', matrix.IO-class, matrix.peripheral-class)] }}
platforms: |
# Install megaTinyCore via Boards Manager for the toolchain
- source-url: http://drazzy.com/package_drazzy.com_index.json
name: ${{ env.platform-name }}
# Overwrite the megaTinyCore release version with the platform from the local path
- source-path: megaavr
name: ${{ env.platform-name }}
libraries: |
# The sketches don't have any external library dependencies, so just define an empty array
-
verbose: false
enable-deltas-report: true
github-token: ${{ secrets.GITHUB_TOKEN }}
enable-warnings-report: true
sketches-report-path: sketches-reports
- name: Compile examples (default millis, clock 25 MHz internal, tuned)
uses: arduino/compile-sketches@main
with:
cli-version: 0.33.0
fqbn: ${{ env.platform-name }}:atx${{ matrix.bootloader-series}}${{ matrix.IO-class }}${{ matrix.bootloader-code }}:chip=${{ matrix.flash-class }}${{ matrix.peripheral-class }}${{ matrix.IO-class }},clock${{ matrix.bootloader-code }}=25internaltuned,wiremode=mors,attach=oldversion,PWMmux=buffered
sketch-paths: |
# It's necessary to jump through some hoops to dynamically generate the env object keys to define the non-universal sketch paths
# https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#format
${{ env[format('available-flash-7_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 7.5)] }}
${{ env[format('available-flash-4kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 4)] }}
${{ env[format('available-flash-3_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('available-flash-2kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 2)] }}
${{ env[format('available-flash-1_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 1.5)] }}
${{ env[format('free-TCB-flash-3.5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('bootloader-optiboot-{0}-flash-7_5kB-plus-{1}-sketch-paths', matrix.bootloader-code, matrix.available-flash-kB >= 7.5)] }}
${{ env[format('IO-class-4-plus-{0}-sketch-paths', matrix.IO-class >= 4)] }}
${{ env[format('IO-class-{0}-series-{1}-sketch-paths', matrix.IO-class, matrix.peripheral-class)] }}
platforms: |
# Install megaTinyCore via Boards Manager for the toolchain
- source-url: http://drazzy.com/package_drazzy.com_index.json
name: ${{ env.platform-name }}
# Overwrite the megaTinyCore release version with the platform from the local path
- source-path: megaavr
name: ${{ env.platform-name }}
libraries: |
# The sketches don't have any external library dependencies, so just define an empty array
-
verbose: false
enable-deltas-report: true
github-token: ${{ secrets.GITHUB_TOKEN }}
enable-warnings-report: true
sketches-report-path: sketches-reports
- name: Compile examples (default millis, clock 24 MHz external)
uses: arduino/compile-sketches@main
with:
fqbn: ${{ env.platform-name }}:atx${{ matrix.bootloader-series}}${{ matrix.IO-class }}${{ matrix.bootloader-code }}:chip=${{ matrix.flash-class }}${{ matrix.peripheral-class }}${{ matrix.IO-class }},clock${{ matrix.bootloader-code }}=24extclock,wiremode=mors,attach=oldversion,PWMmux=default
sketch-paths: |
# It's necessary to jump through some hoops to dynamically generate the env object keys to define the non-universal sketch paths
# https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#format
${{ env[format('available-flash-7_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 7.5)] }}
${{ env[format('available-flash-4kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 4)] }}
${{ env[format('available-flash-3_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('available-flash-2kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 2)] }}
${{ env[format('available-flash-1_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 1.5)] }}
${{ env[format('free-TCB-flash-3.5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('bootloader-optiboot-{0}-flash-7_5kB-plus-{1}-sketch-paths', matrix.bootloader-code, matrix.available-flash-kB >= 7.5)] }}
${{ env[format('IO-class-4-plus-{0}-sketch-paths', matrix.IO-class >= 4)] }}
${{ env[format('IO-class-{0}-series-{1}-sketch-paths', matrix.IO-class, matrix.peripheral-class)] }}
platforms: |
# Install megaTinyCore via Boards Manager for the toolchain
- source-url: http://drazzy.com/package_drazzy.com_index.json
name: ${{ env.platform-name }}
# Overwrite the megaTinyCore release version with the platform from the local path
- source-path: megaavr
name: ${{ env.platform-name }}
libraries: |
# The sketches don't have any external library dependencies, so just define an empty array
-
verbose: false
enable-deltas-report: true
github-token: ${{ secrets.GITHUB_TOKEN }}
enable-warnings-report: true
sketches-report-path: sketches-reports
- name: Compile examples (default millis, clock 8 MHz internal, tuned)
uses: arduino/compile-sketches@main
with:
cli-version: 0.33.0
fqbn: ${{ env.platform-name }}:atx${{ matrix.bootloader-series}}${{ matrix.IO-class }}${{ matrix.bootloader-code }}:chip=${{ matrix.flash-class }}${{ matrix.peripheral-class }}${{ matrix.IO-class }},clock${{ matrix.bootloader-code }}=8internaltuned,wiremode=mors,attach=oldversion,PWMmux=default
sketch-paths: |
# It's necessary to jump through some hoops to dynamically generate the env object keys to define the non-universal sketch paths
# https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#format
${{ env[format('available-flash-7_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 7.5)] }}
${{ env[format('available-flash-4kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 4)] }}
${{ env[format('available-flash-3_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('available-flash-2kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 2)] }}
${{ env[format('available-flash-1_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 1.5)] }}
${{ env[format('free-TCB-flash-3.5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('bootloader-optiboot-{0}-flash-7_5kB-plus-{1}-sketch-paths', matrix.bootloader-code, matrix.available-flash-kB >= 7.5)] }}
${{ env[format('IO-class-4-plus-{0}-sketch-paths', matrix.IO-class >= 4)] }}
${{ env[format('IO-class-{0}-series-{1}-sketch-paths', matrix.IO-class, matrix.peripheral-class)] }}
platforms: |
# Install megaTinyCore via Boards Manager for the toolchain
- source-url: http://drazzy.com/package_drazzy.com_index.json
name: ${{ env.platform-name }}
# Overwrite the megaTinyCore release version with the platform from the local path
- source-path: megaavr
name: ${{ env.platform-name }}
libraries: |
# The sketches don't have any external library dependencies, so just define an empty array
-
verbose: false
enable-deltas-report: true
github-token: ${{ secrets.GITHUB_TOKEN }}
enable-warnings-report: true
sketches-report-path: sketches-reports
- name: Compile examples (default millis, clock 1 MHz internal, tuned)
uses: arduino/compile-sketches@main
with:
cli-version: 0.33.0
fqbn: ${{ env.platform-name }}:atx${{ matrix.bootloader-series}}${{ matrix.IO-class }}${{ matrix.bootloader-code }}:chip=${{ matrix.flash-class }}${{ matrix.peripheral-class }}${{ matrix.IO-class }},clock${{ matrix.bootloader-code }}=1internaltuned,wiremode=mors,attach=oldversion,PWMmux=default
sketch-paths: |
# It's necessary to jump through some hoops to dynamically generate the env object keys to define the non-universal sketch paths
# https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#format
${{ env[format('available-flash-7_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 7.5)] }}
${{ env[format('available-flash-4kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 4)] }}
${{ env[format('available-flash-3_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('available-flash-2kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 2)] }}
${{ env[format('available-flash-1_5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 1.5)] }}
${{ env[format('free-TCB-flash-3.5kB-plus-{0}-sketch-paths', matrix.available-flash-kB >= 3.5)] }}
${{ env[format('bootloader-optiboot-{0}-flash-7_5kB-plus-{1}-sketch-paths', matrix.bootloader-code, matrix.available-flash-kB >= 7.5)] }}
${{ env[format('IO-class-4-plus-{0}-sketch-paths', matrix.IO-class >= 4)] }}
${{ env[format('IO-class-{0}-series-{1}-sketch-paths', matrix.IO-class, matrix.peripheral-class)] }}
platforms: |
# Install megaTinyCore via Boards Manager for the toolchain
- source-url: http://drazzy.com/package_drazzy.com_index.json
name: ${{ env.platform-name }}
# Overwrite the megaTinyCore release version with the platform from the local path
- source-path: megaavr
name: ${{ env.platform-name }}
libraries: |
# The sketches don't have any external library dependencies, so just define an empty array
-
verbose: false
enable-deltas-report: true
github-token: ${{ secrets.GITHUB_TOKEN }}
enable-warnings-report: true
sketches-report-path: sketches-reports