Skip to content
/ ESP32-ghbuild-template Public template

Project template to build esp32, esp32c6, esp32s2 and esp32s3 firmware in the cloud with github-actions

License

Notifications You must be signed in to change notification settings

mcuw/ESP32-ghbuild-template

Repository files navigation

ESP32 project template

Description

This is a project template to create microcontroller apps with automatized firmware builds for esp32, esp32s2 and esp32s3 microcontroller boards. It uses for that GitHub Actions and platformio. Use this repository as a template for your own esp32 projects.

Requirements

GitHub Actions - Workflow

The release build happens in the build & release workflow: build_release.yml. It creates a release, after creation of a new git tag (named it like v1.0.0).

If you want to test the build on all merge w/o creating a tag then the build workflow is what you looking for: build.yml

PlatformIO

PlatformIO is a tool to create microcontroller apps for arduino platforms and compatibles (esp32). You can install the Visual Studio Code extension in the Visual Studio Code IDE.

Python

There is a tiny python script needed to customize the firmware filenames within platformio, see documentation: https://docs.platformio.org/en/stable/scripting/examples/custom_program_name.html

The extra_script.py script gets the platformio env (e.g. lolin32) and the git-tag for the firmware filename. This is required to publish several firmware names in the github artifacts of a release.

Get Started

  1. Login to github

  2. Click on Use this template to create a new git repository

  3. Implement your application in the src/main.cpp

  4. Comment your new change in the CHANGELOG.md file

  5. Push your changes

git add .
git commit -am "my app"
git push -u origin main
  1. Create a new tag to trigger a release, e.g. for v1.0.0
git tag v1.0.0
git push origin v1.0.0
  1. You can find your firmwares under Releases after the CI build finished

CHANGELOG

You can write your changes in the CHANGELOG.md before you create a release. It will be shown under the release page.

Example Release

see Releases on the right sidemenu.

Customize your project

You can reduce and adapt your required boards in the platformio.ini.

Update the CHANGELOG.md file before you are creating a new release. By creating a new git tag you trigger a new release which generate for you the firmwares.

Supported boards

Buy on AliExpress (affiliate links) ...

Disclaimer

Contribution and help ... if you find an issue or wants to contribute then please do not hesitate to create a merge request or an issue.

We provide our build template as is, and we make no promises or guarantees about this code.