Skip to content

chore: add GitHub issue templates, PR template, and Arduino CI workflow#133

Open
pangerlkr wants to merge 5 commits into
cifertech:mainfrom
pangerlkr:chore/add-github-templates-and-ci
Open

chore: add GitHub issue templates, PR template, and Arduino CI workflow#133
pangerlkr wants to merge 5 commits into
cifertech:mainfrom
pangerlkr:chore/add-github-templates-and-ci

Conversation

@pangerlkr

Copy link
Copy Markdown
Contributor

Summary

This PR adds GitHub community health files and CI automation to improve contributor experience and code quality for the ESP32-DIV project.

Changes

.github/ISSUE_TEMPLATE/bug_report.md

Structured bug report template prompting contributors to include:

  • Steps to reproduce
  • Expected vs actual behavior
  • Board version, Arduino IDE version, OS
  • Serial output / error log

.github/ISSUE_TEMPLATE/bug_report.yml & feature_request.yml

YAML-based issue form templates for guided issue creation via GitHub's issue form UI.

.github/PULL_REQUEST_TEMPLATE.md

PR template with:

  • Description + linked issue field
  • Type of change checklist
  • Testing notes section (hardware, IDE version, libraries)
  • Contributor checklist (code style, compilation, docs)

.github/workflows/arduino-compile.yml

CI workflow that automatically compiles the ESP32-DIV sketch on every push and pull request to main. Installs all required libraries and the ESP32 board package via arduino-cli.

Motivation

The repository currently has no issue templates or PR templates, leading to inconsistent bug reports (many missing critical info like board version or serial output). This PR establishes baseline GitHub community standards and automated compile checking to catch build regressions early.

Testing

Files follow standard GitHub template formats. The CI workflow was validated against the existing library list in the project README and source code.

pangerlkr added 5 commits May 15, 2026 10:30
This template helps users report bugs with detailed information about their setup and the issue encountered.Adds the full .github/ infrastructure:
- Bug report issue form (YAML, structured fields for firmware/hw/IDE versions)
- Feature request issue form (YAML)
- Pull request template with checklist
- GitHub Actions workflow: Arduino sketch compile check on every PR/push
Added a feature request template for suggesting improvements.
Added a pull request template to guide contributors in providing necessary information and ensuring quality checks.
This workflow checks the compilation of the ESP32-DIV sketch on pushes and pull requests to the main branch, ensuring that the necessary libraries and board packages are installed before compiling.
Added a bug report template for ESP32-DIV firmware or hardware issues.
Copilot AI review requested due to automatic review settings May 15, 2026 05:06

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds GitHub community health files (issue templates, PR template) and a GitHub Actions workflow that compiles the ESP32-DIV Arduino sketch via arduino-cli on pushes/PRs to main. The goal is to standardize contributor input and catch build regressions in CI.

Changes:

  • New issue templates (legacy markdown bug report plus structured YAML forms for bug reports and feature requests) and a PR template.
  • New arduino-compile.yml workflow that installs the ESP32 core, installs project libraries, copies bundled libraries, and compiles the sketch for esp32:esp32:esp32s3.
  • Optional artifact upload of the built .bin/.elf on main pushes.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
.github/workflows/arduino-compile.yml New CI workflow to install toolchain/libraries and compile the ESP32-DIV sketch.
.github/PULL_REQUEST_TEMPLATE.md New PR template with type/hardware/checklist sections.
.github/ISSUE_TEMPLATE/bug_report.yml Structured YAML bug report form.
.github/ISSUE_TEMPLATE/feature_request.yml Structured YAML feature request form.
.github/ISSUE_TEMPLATE/bug_report.md Legacy markdown bug report template (duplicates the YAML form).
Comments suppressed due to low confidence (4)

.github/workflows/arduino-compile.yml:58

  • The Libraries/ directory contains zip files (TFT_eSPI-master.zip, SmartRC-CC1101-Driver-Lib-master.zip) and a User_Setup.h, not extracted Arduino libraries. A plain cp -r Libraries/* "$ARDUINO_LIB_DIR/" will copy the zip archives and the loose header into the libraries directory, which Arduino CLI will not treat as installed libraries. The zips need to be unzipped into $ARDUINO_LIB_DIR/, and User_Setup.h needs to be placed inside the extracted TFT_eSPI library directory (overwriting the one shipped with it) for the project's display configuration to take effect. As written, this step will not actually install the bundled libraries and the compile step will likely fail (or, worse, silently use the wrong TFT_eSPI configuration if the Library Manager copy is picked up).
      # ── 5. Copy bundled libraries (not on Library Manager) ───
      - name: Install bundled libraries
        run: |
          ARDUINO_LIB_DIR=$(arduino-cli config dump | grep 'user:' | awk '{print $2}')/libraries
          cp -r Libraries/* "$ARDUINO_LIB_DIR/"

.github/workflows/arduino-compile.yml:52

  • TFT_eSPI is installed both via the Arduino Library Manager (line 47) and is also bundled as a zip in Libraries/TFT_eSPI-master.zip. The bundled copy exists because the project requires a customized User_Setup.h. Installing the upstream version from Library Manager will conflict with—and likely shadow—the bundled customized version, so the sketch will be compiled against an incorrectly configured display driver. Consider removing "TFT_eSPI" from the Library Manager install list and only using the bundled version (after fixing the unzip/copy step below).
          arduino-cli lib install \
            "TFT_eSPI" \
            "PCF8574" \
            "XPT2046_Touchscreen" \
            "NimBLE-Arduino" \
            "RCSwitch" \
            "arduinoFFT"

.github/workflows/arduino-compile.yml:57

  • Parsing arduino-cli config dump | grep 'user:' | awk '{print $2}' is fragile: the output is YAML and may contain other keys that include the substring user: (e.g., nested under different sections), and indentation/quoting can break the awk '{print $2}' extraction. Prefer the dedicated command arduino-cli config get directories.user which prints just the path, then append /libraries.
          ARDUINO_LIB_DIR=$(arduino-cli config dump | grep 'user:' | awk '{print $2}')/libraries

.github/workflows/arduino-compile.yml:33

  • arduino/setup-arduino-cli@v1 is the legacy major version. The current major is v2 (as of 2024), and pinning to @v1 will not receive maintenance updates. Consider upgrading to arduino/setup-arduino-cli@v2.
        uses: arduino/setup-arduino-cli@v1

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +13 to +18
- 'ESP32-DIV/**'
- '.github/workflows/arduino-compile.yml'
pull_request:
branches: [main]
paths:
- 'ESP32-DIV/**'
Comment on lines +2 to +3
name: Bug Report
about: Report a problem with ESP32-DIV firmware or hardware
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants