From 7f334c0f14ab47bfad20f1c726b22e0f855e1f2d Mon Sep 17 00:00:00 2001 From: Aakash Hegde Date: Sun, 27 Dec 2020 21:56:31 +0530 Subject: [PATCH 01/16] Fix missing word in keywords.txt Line 2 in keywords.txt file in the SPI and HID library directories have been modified as follows to ensure uniformity wrt the format in other libraries - In ArduinoCore-avr\libraries\SPI\keywords.txt Syntax Coloring Map SPI --> # Syntax Coloring Map For SPI In ArduinoCore-avr\libraries\HID\keywords.txt Syntax Coloring Map HID --> # Syntax Coloring Map For HID Fixes arduino/Arduino#10938 --- libraries/HID/keywords.txt | 2 +- libraries/SPI/keywords.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/HID/keywords.txt b/libraries/HID/keywords.txt index 32a9ba5f2..9b0a525c8 100644 --- a/libraries/HID/keywords.txt +++ b/libraries/HID/keywords.txt @@ -1,5 +1,5 @@ ####################################### -# Syntax Coloring Map HID +# Syntax Coloring Map For HID ####################################### ####################################### diff --git a/libraries/SPI/keywords.txt b/libraries/SPI/keywords.txt index fa7616581..55f4d4523 100644 --- a/libraries/SPI/keywords.txt +++ b/libraries/SPI/keywords.txt @@ -1,5 +1,5 @@ ####################################### -# Syntax Coloring Map SPI +# Syntax Coloring Map For SPI ####################################### ####################################### From cfeb61685e1f46a8fb4cca6829820ea4e845ebe9 Mon Sep 17 00:00:00 2001 From: per1234 Date: Sun, 4 Apr 2021 02:09:15 -0700 Subject: [PATCH 02/16] Use established KEYWORD_TOKENTYPE for Wire keyword All the other platform bundled libraries use KEYWORD1 for the library's global instance. --- libraries/Wire/keywords.txt | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/libraries/Wire/keywords.txt b/libraries/Wire/keywords.txt index 5e3d2b1ca..ee1d0acc5 100644 --- a/libraries/Wire/keywords.txt +++ b/libraries/Wire/keywords.txt @@ -6,6 +6,8 @@ # Datatypes (KEYWORD1) ####################################### +Wire KEYWORD1 + ####################################### # Methods and Functions (KEYWORD2) ####################################### @@ -18,12 +20,6 @@ requestFrom KEYWORD2 onReceive KEYWORD2 onRequest KEYWORD2 -####################################### -# Instances (KEYWORD2) -####################################### - -Wire KEYWORD2 - ####################################### # Constants (LITERAL1) ####################################### From 987e8741e8423364a7f3add9cc4190da0f46f456 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Mar 2022 18:13:18 +0000 Subject: [PATCH 03/16] Bump actions/checkout from 2 to 3 Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/check-arduino.yml | 2 +- .github/workflows/compile-platform-examples.yml | 2 +- .github/workflows/spell-check.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check-arduino.yml b/.github/workflows/check-arduino.yml index cfffb75c0..95f61d8fc 100644 --- a/.github/workflows/check-arduino.yml +++ b/.github/workflows/check-arduino.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Arduino Lint uses: arduino/arduino-lint-action@v1 diff --git a/.github/workflows/compile-platform-examples.yml b/.github/workflows/compile-platform-examples.yml index f7226e0d5..d5c47ca98 100644 --- a/.github/workflows/compile-platform-examples.yml +++ b/.github/workflows/compile-platform-examples.yml @@ -176,7 +176,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Compile examples uses: arduino/compile-sketches@v1 diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 01bee879b..3f6b03fb3 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Spell check uses: codespell-project/actions-codespell@master From 14ea1ca85bb0292c4a75ad7ba5d07005828d1b6d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Apr 2022 18:11:12 +0000 Subject: [PATCH 04/16] Bump actions/upload-artifact from 2 to 3 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/compile-platform-examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/compile-platform-examples.yml b/.github/workflows/compile-platform-examples.yml index d5c47ca98..fad8e1d3d 100644 --- a/.github/workflows/compile-platform-examples.yml +++ b/.github/workflows/compile-platform-examples.yml @@ -202,7 +202,7 @@ jobs: sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }} - name: Save sketches report as workflow artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: if-no-files-found: error path: ${{ env.SKETCHES_REPORTS_PATH }} From 2ff00ae7d4e85fa422b7918ee12baf56a1f3006e Mon Sep 17 00:00:00 2001 From: per1234 Date: Sun, 4 Sep 2022 21:22:25 -0700 Subject: [PATCH 05/16] Fix spell check false positive by ignoring word (#497) In the latest release of the codespell tool used for automated spell checking of the files of this project, the word "clen" was added to the codespell misspelled words dictionary as a misspelling of "clean". This caused a false detection of a struct member name `clen` as a misspelling, resulting in a failing spell check result. Since the occurrence of this name is correct and intended in this project, the false positive is resolved by configuring codespell to ignore the problematic word. --- .codespellrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codespellrc b/.codespellrc index d5d337d2c..825e4a0a2 100644 --- a/.codespellrc +++ b/.codespellrc @@ -1,7 +1,7 @@ # See: https://github.com/codespell-project/codespell#using-a-config-file [codespell] # In the event of a false positive, add the problematic word, in all lowercase, to a comma-separated list here: -ignore-words-list = hart,pullrequest +ignore-words-list = clen,hart,pullrequest builtin = clear check-filenames = check-hidden = From 72c12247d6ce4252cd3a79972d41d9382bdc016f Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 18 Oct 2022 11:49:46 +0200 Subject: [PATCH 06/16] Use correct quoting for paths in post_install.bat --- post_install.bat | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/post_install.bat b/post_install.bat index 10db2234e..fcc8d8c78 100644 --- a/post_install.bat +++ b/post_install.bat @@ -10,11 +10,11 @@ if "%PROCESSOR_ARCHITECTURE%" == "AMD64" ( REM dpinst /PATH has problems with relative paths, so use absolute path. if "%PROCESSOR_ARCHITECTURE%" == "AMD64" ( - drivers\dpinst-amd64.exe /PATH %cd%\drivers\gemma %ARGS% + drivers\dpinst-amd64.exe /PATH "%cd%\drivers\gemma" %ARGS% ) ELSE IF "%PROCESSOR_ARCHITEW6432%" == "AMD64" ( - drivers\dpinst-amd64.exe /PATH %cd%\drivers\gemma %ARGS% + drivers\dpinst-amd64.exe /PATH "%cd%\drivers\gemma" %ARGS% ) ELSE ( - drivers\dpinst-x86.exe /PATH %cd%\drivers\gemma %ARGS% + drivers\dpinst-x86.exe /PATH "%cd%\drivers\gemma" %ARGS% ) exit /b 0 From 4d8d41e95cfd8e71a91f158841ef2b2097d033f2 Mon Sep 17 00:00:00 2001 From: per1234 Date: Tue, 18 Oct 2022 04:38:55 -0700 Subject: [PATCH 07/16] Fix misspelled words in comments This project uses the codespell tool used to check for commonly misspelled words in the files of the repository. A recent update to the tool's misspelled words dictionary resulted in the identification of some occurrences of a misspelled word in the comments. In addition to correcting the detected misspellings, I did a quick scan over the repository and identified a few additional misspellings to correct. --- bootloaders/atmega/ATmegaBOOT_168.c | 8 ++++---- bootloaders/atmega8/ATmegaBOOT.c | 4 ++-- bootloaders/bt/ATmegaBOOT_168.c | 4 ++-- bootloaders/caterina-Arduino_Robot/Makefile | 4 ++-- bootloaders/caterina-LilyPadUSB/Makefile | 4 ++-- bootloaders/caterina/Makefile | 4 ++-- bootloaders/gemma/avrdude.conf | 4 ++-- bootloaders/lilypad/src/ATmegaBOOT.c | 6 +++--- bootloaders/stk500v2/Makefile | 2 +- cores/arduino/CDC.cpp | 2 +- cores/arduino/USBCore.h | 2 +- firmwares/atmegaxxu2/arduino-usbdfu/makefile | 4 ++-- firmwares/atmegaxxu2/arduino-usbserial/makefile | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/bootloaders/atmega/ATmegaBOOT_168.c b/bootloaders/atmega/ATmegaBOOT_168.c index ff2c4e486..143e7a7ca 100644 --- a/bootloaders/atmega/ATmegaBOOT_168.c +++ b/bootloaders/atmega/ATmegaBOOT_168.c @@ -387,7 +387,7 @@ int main(void) UCSR0C = (1< Date: Wed, 2 Nov 2022 11:46:19 +0100 Subject: [PATCH 08/16] Add Make Your Uno kit entry and drivers --- boards.txt | 6 +++++- drivers/arduino.cat | Bin 22869 -> 23899 bytes drivers/arduino.inf | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/boards.txt b/boards.txt index ab18bae0e..c100ecc7b 100644 --- a/boards.txt +++ b/boards.txt @@ -68,6 +68,8 @@ uno.vid.2=0x2A03 uno.pid.2=0x0043 uno.vid.3=0x2341 uno.pid.3=0x0243 +uno.vid.4=0x2341 +uno.pid.4=0x006A uno.upload_port.0.vid=0x2341 uno.upload_port.0.pid=0x0043 uno.upload_port.1.vid=0x2341 @@ -76,7 +78,9 @@ uno.upload_port.2.vid=0x2A03 uno.upload_port.2.pid=0x0043 uno.upload_port.3.vid=0x2341 uno.upload_port.3.pid=0x0243 -uno.upload_port.4.board=uno +uno.upload_port.4.vid=0x2341 +uno.upload_port.4.pid=0x006A +uno.upload_port.5.board=uno uno.upload.tool=avrdude uno.upload.tool.default=avrdude diff --git a/drivers/arduino.cat b/drivers/arduino.cat index 2b20fe60d62050b878cf9d7131492eaf70947973..bd7fe2b808f59d9ed85dfcd5d000c048160b5473 100644 GIT binary patch literal 23899 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 Ief+Ec3vL|=UjP6A literal 22869 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 G%l{9Xi+P^_ diff --git a/drivers/arduino.inf b/drivers/arduino.inf index ac0251bef..c0284efcf 100644 --- a/drivers/arduino.inf +++ b/drivers/arduino.inf @@ -55,6 +55,7 @@ robotMotor.sketch.name="Arduino Robot" uno.name="Arduino Uno" unoR3.name="Arduino Uno" unomini.name="Arduino Uno Mini" +makeyourunokit.name="Arduino Make Your Uno Kit" usbserial.name="Arduino USB Serial Light Adapter" yun.bootloader.name="Arduino Yun bootloader" yun.sketch.name="Arduino Yun" @@ -108,6 +109,7 @@ DefaultDestDir=12 %uno.name%=DriverInstall, USB\VID_2341&PID_0001 %unoR3.name%=DriverInstall, USB\VID_2341&PID_0043 %unomini.name%=DriverInstall, USB\VID_2341&PID_0062 +%makeyourunokit.name%=DriverInstall, USB\VID_2341&PID_006A %usbserial.name%=DriverInstall, USB\VID_2341&PID_003B %yun.bootloader.name%=DriverInstall, USB\VID_2341&PID_0041 %yun.sketch.name%=DriverInstall, USB\VID_2341&PID_8041&MI_00 @@ -138,6 +140,7 @@ DefaultDestDir=12 %uno.name%=DriverInstall, USB\VID_2341&PID_0001 %unoR3.name%=DriverInstall, USB\VID_2341&PID_0043 %unomini.name%=DriverInstall, USB\VID_2341&PID_0062 +%makeyourunokit.name%=DriverInstall, USB\VID_2341&PID_006A %usbserial.name%=DriverInstall, USB\VID_2341&PID_003B %robotControl.bootloader.name%=DriverInstall, USB\VID_2341&PID_0038 %robotControl.sketch.name%=DriverInstall, USB\VID_2341&PID_8038&MI_00 @@ -172,6 +175,7 @@ DefaultDestDir=12 %uno.name%=DriverInstall, USB\VID_2341&PID_0001 %unoR3.name%=DriverInstall, USB\VID_2341&PID_0043 %unomini.name%=DriverInstall, USB\VID_2341&PID_0062 +%makeyourunokit.name%=DriverInstall, USB\VID_2341&PID_006A %usbserial.name%=DriverInstall, USB\VID_2341&PID_003B %robotControl.bootloader.name%=DriverInstall, USB\VID_2341&PID_0038 %robotControl.sketch.name%=DriverInstall, USB\VID_2341&PID_8038&MI_00 From 42fa4a1ea1b1b11d1cc0a60298e529d37f9d14bd Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Wed, 2 Nov 2022 11:46:49 +0100 Subject: [PATCH 09/16] Publish core 1.8.6 --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index 617185ce0..df5ddb712 100644 --- a/platform.txt +++ b/platform.txt @@ -6,7 +6,7 @@ # https://arduino.github.io/arduino-cli/latest/platform-specification/ name=Arduino AVR Boards -version=1.8.5 +version=1.8.6 # AVR compile variables # --------------------- From dd01e5ad03a00a14771a700646d948b4b14d383d Mon Sep 17 00:00:00 2001 From: Josefine Hansson <66409231+jhansson-ard@users.noreply.github.com> Date: Mon, 20 Feb 2023 10:38:13 +0100 Subject: [PATCH 10/16] Updated board names Updated some board names to the proper spelling @facchinm --- boards.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/boards.txt b/boards.txt index c100ecc7b..b9add104a 100644 --- a/boards.txt +++ b/boards.txt @@ -58,7 +58,7 @@ yun.build.extra_flags={build.usb_flags} ############################################################## -uno.name=Arduino Uno +uno.name=Arduino UNO uno.vid.0=0x2341 uno.pid.0=0x0043 @@ -107,7 +107,7 @@ uno.build.variant=standard ############################################################## -unomini.name=Arduino Uno Mini +unomini.name=Arduino UNO Mini unomini.vid.0=0x2341 unomini.pid.0=0x0062 @@ -1272,7 +1272,7 @@ one.build.extra_flags={build.usb_flags} ############################################################## -unowifi.name=Arduino Uno WiFi +unowifi.name=Arduino UNO WiFi unowifi.vid.0=0x2A03 unowifi.pid.0=0x0057 unowifi.upload_port.0.vid=0x2A03 From daf2713c794c3019b44e74b949c7e050fd0339fd Mon Sep 17 00:00:00 2001 From: per1234 Date: Sat, 18 Mar 2023 15:39:37 -0700 Subject: [PATCH 11/16] Correct misspelled word in comment This misspelled (mislocalized?) word was causing the spell check to fail --- libraries/Wire/examples/i2c_scanner/i2c_scanner.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Wire/examples/i2c_scanner/i2c_scanner.ino b/libraries/Wire/examples/i2c_scanner/i2c_scanner.ino index 295edf7ef..508de805d 100644 --- a/libraries/Wire/examples/i2c_scanner/i2c_scanner.ino +++ b/libraries/Wire/examples/i2c_scanner/i2c_scanner.ino @@ -6,7 +6,7 @@ // can be found in many places. // For example on the Arduino.cc forum. // The original author is not known. -// Version 2, Juni 2012, Using Arduino 1.0.1 +// Version 2, June 2012, Using Arduino 1.0.1 // Adapted to be as simple as possible by Arduino.cc user Krodal // Version 3, Feb 26 2013 // V3 by louarnold From edb06d48c2cce3db6adcdd460df54cd0deb95aa1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 18:08:58 +0000 Subject: [PATCH 12/16] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/check-arduino.yml | 2 +- .github/workflows/compile-platform-examples.yml | 2 +- .github/workflows/spell-check.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check-arduino.yml b/.github/workflows/check-arduino.yml index 95f61d8fc..2c2d5f101 100644 --- a/.github/workflows/check-arduino.yml +++ b/.github/workflows/check-arduino.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Arduino Lint uses: arduino/arduino-lint-action@v1 diff --git a/.github/workflows/compile-platform-examples.yml b/.github/workflows/compile-platform-examples.yml index fad8e1d3d..d01f27688 100644 --- a/.github/workflows/compile-platform-examples.yml +++ b/.github/workflows/compile-platform-examples.yml @@ -176,7 +176,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Compile examples uses: arduino/compile-sketches@v1 diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 3f6b03fb3..ef7d89414 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Spell check uses: codespell-project/actions-codespell@master From bd473a8fde47c10e7f38b48248440f918cf79eae Mon Sep 17 00:00:00 2001 From: per1234 Date: Sat, 25 May 2024 01:45:57 -0700 Subject: [PATCH 13/16] Fix spell check false positives by ignoring words The codespell spellchecker tool is used to automatically detect commonly misspelled words in the files of this project. The misspelled words dictionary was expanded in the latest release of codespell. Some of the text in the project codebase happens to match against newly added entries, which caused codespell to produce false misspelled word detections. Since the code that produced the detections is correct and intended, the false positives are resolved by configuring codespell to ignore the problematic words. --- .codespellrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codespellrc b/.codespellrc index 825e4a0a2..7d9fef573 100644 --- a/.codespellrc +++ b/.codespellrc @@ -1,7 +1,7 @@ # See: https://github.com/codespell-project/codespell#using-a-config-file [codespell] # In the event of a false positive, add the problematic word, in all lowercase, to a comma-separated list here: -ignore-words-list = clen,hart,pullrequest +ignore-words-list = clearin,clen,hart,pullrequest,shiftin,waitin builtin = clear check-filenames = check-hidden = From 106b2c6372d9db5a17d19a06ccbd19407739b300 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 08:37:11 +0000 Subject: [PATCH 14/16] Bump actions/upload-artifact from 3 to 4 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/compile-platform-examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/compile-platform-examples.yml b/.github/workflows/compile-platform-examples.yml index d01f27688..93e40a506 100644 --- a/.github/workflows/compile-platform-examples.yml +++ b/.github/workflows/compile-platform-examples.yml @@ -202,7 +202,7 @@ jobs: sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }} - name: Save sketches report as workflow artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: if-no-files-found: error path: ${{ env.SKETCHES_REPORTS_PATH }} From 6e6036eac13e1f06197c1e3f8e0dd7cfb9bc76f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 18:55:52 +0000 Subject: [PATCH 15/16] Bump arduino/arduino-lint-action from 1 to 2 Bumps [arduino/arduino-lint-action](https://github.com/arduino/arduino-lint-action) from 1 to 2. - [Release notes](https://github.com/arduino/arduino-lint-action/releases) - [Commits](https://github.com/arduino/arduino-lint-action/compare/v1...v2) --- updated-dependencies: - dependency-name: arduino/arduino-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/check-arduino.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-arduino.yml b/.github/workflows/check-arduino.yml index 2c2d5f101..3991385f1 100644 --- a/.github/workflows/check-arduino.yml +++ b/.github/workflows/check-arduino.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@v4 - name: Arduino Lint - uses: arduino/arduino-lint-action@v1 + uses: arduino/arduino-lint-action@v2 with: compliance: specification # Always use this setting for official repositories. Remove for 3rd party projects. From 8e9f84815111753b7206c9d1bfd2ffd94c1560dd Mon Sep 17 00:00:00 2001 From: per1234 Date: Fri, 18 Oct 2024 06:47:25 -0700 Subject: [PATCH 16/16] Don't upload multiple times to same artifact in sketch compilation workflow The "Compile Examples" GitHub Actions workflow is configured to compile the example sketches for each of the supported boards. This is done by using a job matrix in the GitHub Actions workflow to generate a parallel job for each board. A GitHub Actions workflow artifact is used to transfer the sketches report files generated by the "arduino/compile-sketches" action between this workflow's job and the "Report Size Deltas" workflow that uses the "arduino/report-size-deltas" action to publish the data. The "actions/upload-artifact" action is used to upload the sketches report files to the workflow artifact. Previously, the sketches reports from all the boards were uploaded to a single artifact. However, support for uploading multiple times to a single artifact was dropped in version 4.0.0 of the "actions/upload-artifact" action. So it is now necessary for each of the jobs to use a separate artifact. The "arduino/report-size-deltas" action is configured to recognize these multiple artifacts by a regular expression that matches against a standardized prefix on the artifact names. --- .../workflows/compile-platform-examples.yml | 40 ++++++++++++++++++- .github/workflows/report-size-deltas.yml | 4 +- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/.github/workflows/compile-platform-examples.yml b/.github/workflows/compile-platform-examples.yml index 93e40a506..58cfd3409 100644 --- a/.github/workflows/compile-platform-examples.yml +++ b/.github/workflows/compile-platform-examples.yml @@ -35,117 +35,155 @@ jobs: matrix: board: - fqbn: arduino:avr:yun + artifact-name-suffix: arduino-avr-yun serial: true softwareserial: true - fqbn: arduino:avr:uno + artifact-name-suffix: arduino-avr-uno serial: true softwareserial: true - fqbn: arduino:avr:diecimila:cpu=atmega328 + artifact-name-suffix: arduino-avr-diecimila-cpu-atmega328 serial: true softwareserial: true - fqbn: arduino:avr:diecimila:cpu=atmega168 + artifact-name-suffix: arduino-avr-diecimila-cpu-atmega168 serial: true softwareserial: true - fqbn: arduino:avr:nano:cpu=atmega328 + artifact-name-suffix: arduino-avr-nano-cpu-atmega328 serial: true softwareserial: true - fqbn: arduino:avr:nano:cpu=atmega328old + artifact-name-suffix: arduino-avr-nano-cpu-atmega328old serial: true softwareserial: true - fqbn: arduino:avr:nano:cpu=atmega168 + artifact-name-suffix: arduino-avr-nano-cpu-atmega168 serial: true softwareserial: true - fqbn: arduino:avr:mega:cpu=atmega2560 + artifact-name-suffix: arduino-avr-mega-cpu-atmega2560 serial: true softwareserial: true - fqbn: arduino:avr:mega:cpu=atmega1280 + artifact-name-suffix: arduino-avr-mega-cpu-atmega1280 serial: true softwareserial: true - fqbn: arduino:avr:megaADK + artifact-name-suffix: arduino-avr-megaADK serial: true softwareserial: true - fqbn: arduino:avr:leonardo + artifact-name-suffix: arduino-avr-leonardo serial: true softwareserial: true - fqbn: arduino:avr:leonardoeth + artifact-name-suffix: arduino-avr-leonardoeth serial: true softwareserial: true - fqbn: arduino:avr:micro + artifact-name-suffix: arduino-avr-micro serial: true softwareserial: true - fqbn: arduino:avr:esplora + artifact-name-suffix: arduino-avr-esplora serial: true softwareserial: true - fqbn: arduino:avr:mini:cpu=atmega328 + artifact-name-suffix: arduino-avr-mini-cpu-atmega328 serial: true softwareserial: true - fqbn: arduino:avr:mini:cpu=atmega168 + artifact-name-suffix: arduino-avr-mini-cpu-atmega168 serial: true softwareserial: true - fqbn: arduino:avr:ethernet + artifact-name-suffix: arduino-avr-ethernet serial: true softwareserial: true - fqbn: arduino:avr:fio + artifact-name-suffix: arduino-avr-fio serial: true softwareserial: true - fqbn: arduino:avr:bt:cpu=atmega328 + artifact-name-suffix: arduino-avr-bt-cpu-atmega328 serial: true softwareserial: true - fqbn: arduino:avr:bt:cpu=atmega168 + artifact-name-suffix: arduino-avr-bt-cpu-atmega168 serial: true softwareserial: true - fqbn: arduino:avr:LilyPadUSB + artifact-name-suffix: arduino-avr-LilyPadUSB serial: true softwareserial: true - fqbn: arduino:avr:lilypad:cpu=atmega328 + artifact-name-suffix: arduino-avr-lilypad-cpu-atmega328 serial: true softwareserial: true - fqbn: arduino:avr:lilypad:cpu=atmega168 + artifact-name-suffix: arduino-avr-lilypad-cpu-atmega168 serial: true softwareserial: true - fqbn: arduino:avr:pro:cpu=16MHzatmega328 + artifact-name-suffix: arduino-avr-pro-cpu-16MHzatmega328 serial: true softwareserial: true - fqbn: arduino:avr:pro:cpu=8MHzatmega328 + artifact-name-suffix: arduino-avr-pro-cpu-8MHzatmega328 serial: true softwareserial: true - fqbn: arduino:avr:pro:cpu=16MHzatmega168 + artifact-name-suffix: arduino-avr-pro-cpu-16MHzatmega168 serial: true softwareserial: true - fqbn: arduino:avr:pro:cpu=8MHzatmega168 + artifact-name-suffix: arduino-avr-pro-cpu-8MHzatmega168 serial: true softwareserial: true - fqbn: arduino:avr:atmegang:cpu=atmega168 + artifact-name-suffix: arduino-avr-atmegang-cpu-atmega168 serial: true softwareserial: true - fqbn: arduino:avr:atmegang:cpu=atmega8 + artifact-name-suffix: arduino-avr-atmegang-cpu-atmega8 serial: true softwareserial: false - fqbn: arduino:avr:robotControl + artifact-name-suffix: arduino-avr-robotControl serial: true softwareserial: false - fqbn: arduino:avr:robotMotor + artifact-name-suffix: arduino-avr-robotMotor serial: true softwareserial: false - fqbn: arduino:avr:gemma + artifact-name-suffix: arduino-avr-gemma serial: false softwareserial: false - fqbn: arduino:avr:circuitplay32u4cat + artifact-name-suffix: arduino-avr-circuitplay32u4cat serial: true softwareserial: true - fqbn: arduino:avr:yunmini + artifact-name-suffix: arduino-avr-yunmini serial: true softwareserial: true - fqbn: arduino:avr:chiwawa + artifact-name-suffix: arduino-avr-chiwawa serial: true softwareserial: true - fqbn: arduino:avr:one + artifact-name-suffix: arduino-avr-one serial: true softwareserial: true - fqbn: arduino:avr:unowifi + artifact-name-suffix: arduino-avr-unowifi serial: true softwareserial: true - fqbn: arduino:avr:unomini + artifact-name-suffix: arduino-avr-unomini serial: true softwareserial: true @@ -206,4 +244,4 @@ jobs: with: if-no-files-found: error path: ${{ env.SKETCHES_REPORTS_PATH }} - name: ${{ env.SKETCHES_REPORTS_PATH }} + name: sketches-report-${{ matrix.board.artifact-name-suffix }} diff --git a/.github/workflows/report-size-deltas.yml b/.github/workflows/report-size-deltas.yml index 652be5d9d..39e2a0ad2 100644 --- a/.github/workflows/report-size-deltas.yml +++ b/.github/workflows/report-size-deltas.yml @@ -20,5 +20,5 @@ jobs: - name: Comment size deltas reports to PRs uses: arduino/report-size-deltas@v1 with: - # The name of the workflow artifact created by the sketch compilation workflow - sketches-reports-source: sketches-reports + # Regex matching the names of the workflow artifacts created by the "Compile Examples" workflow + sketches-reports-source: ^sketches-report-.+