-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create automated build and release firmware #75
Conversation
Create automated build and release firmware for NEMO
// -=-=- Uncommenting more than one at a time will result in errors -=-=- | ||
|
||
String buildver="2.3.4"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we no longer need to manage and maintain buildver and bump it everytime. It will be handled automatically by automated build system. We have introduced a pre-processor called NEMO_VERSION
with default value dev
. This is the value we will get when someone manually builds and flashes from source code.
- When the build happens for a branch (i.e. main branch, feature branches), it will use first 7 chars of commit hash.
- When the build is happening for tag, then the tag_name will be replaced automatically. i.e. v0.0.2, etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice :D
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file is used by automated build system to generate the index for m5stack boards, libraries etc.
// -=-=- Uncommenting more than one at a time will result in errors -=-=- | ||
|
||
String buildver="2.3.4"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice :D
Create automated build and release firmware for NEMO. This PR involves developing an automated system that generates firmware binaries for NEMO, catering to four different supported boards and two languages.
Whenever a push occurs in the "develop" branch or a tag is created, a Github Action will be triggered. This action will initiate the firmware build process for all combinations of supported boards and languages (4 boards x 2 languages). After completion, it will pause and await manual approval before proceeding to create a release.
Runs:
![image](https://private-user-images.githubusercontent.com/216637/299963891-0bf92e4e-849c-4130-aeff-e5c11bdedd46.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI1OTQzMjUsIm5iZiI6MTcyMjU5NDAyNSwicGF0aCI6Ii8yMTY2MzcvMjk5OTYzODkxLTBiZjkyZTRlLTg0OWMtNDEzMC1hZWZmLWU1YzExYmRlZGQ0Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODAyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwMlQxMDIwMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lMDNjOWExMjY0MjMxZDY3ZTUwNDRhZGYxNWJlN2NkOWQxNjA4YTYzNTBiNzYyMzYyZTNmN2Y4M2M4MmY1OThhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.ta3CFkYpggxrlARr4i5Mp3bLB3uiwB_wndumWeqFAz0)
Builds:
![image](https://private-user-images.githubusercontent.com/216637/299964569-c1512977-2964-43d0-b909-a5e13151aab2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI1OTQzMjUsIm5iZiI6MTcyMjU5NDAyNSwicGF0aCI6Ii8yMTY2MzcvMjk5OTY0NTY5LWMxNTEyOTc3LTI5NjQtNDNkMC1iOTA5LWE1ZTEzMTUxYWFiMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODAyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwMlQxMDIwMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lZTgzMWNlMDE3ODk5N2FiMWE1ZTEzNTVhMjY1ZTM5MDdlZWYyMGJhYjIzNjRkZjZmYmEzYWZiYWY5MTZjNGMyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.CehnwhcVrxNlzpbRGPsNbCY4HmzylvhrQUtAgGl-Wms)
Workflow:
![image](https://private-user-images.githubusercontent.com/216637/299963942-dafb6f46-75ba-40bb-ac0a-ba650b85ef9f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI1OTQzMjUsIm5iZiI6MTcyMjU5NDAyNSwicGF0aCI6Ii8yMTY2MzcvMjk5OTYzOTQyLWRhZmI2ZjQ2LTc1YmEtNDBiYi1hYzBhLWJhNjUwYjg1ZWY5Zi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODAyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwMlQxMDIwMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hMGIwMTkzNGUwNGI2NzI2Y2ViMmVlMWQ2NmIxMzgxNDUxMWM2MDE1NDUwYjRmZDI3NTllYTc3ZjJmMTI3Yjc1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.lcx3hs4N3DdAifgRShs38mXbpksk1mc8q9N5HeYfiNA)
Manual Approval flow for Release Creation:
![image](https://private-user-images.githubusercontent.com/216637/299964144-05bc033a-e140-4556-9a9d-4d90f85ffccf.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI1OTQzMjUsIm5iZiI6MTcyMjU5NDAyNSwicGF0aCI6Ii8yMTY2MzcvMjk5OTY0MTQ0LTA1YmMwMzNhLWUxNDAtNDU1Ni05YTlkLTRkOTBmODVmZmNjZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODAyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwMlQxMDIwMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jNzAyMDEzYWViNjE2MmE4ZTQxMWU5YzA0MjgyZGU4Yzc3ODk2YWEwZmY3YWFjNmIyOTYyNTNjNjQ5OTk3NjVmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.WSK5TzJR8Q8HRwvF86DLslIIrRGmQ2xsnVTxtkYd5aE)
Pre-requisites:
Create an environment called "github_release" from the settings tab.
![image](https://private-user-images.githubusercontent.com/216637/299965188-3789a356-76b3-4b59-9468-ef82677e8cfe.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI1OTQzMjUsIm5iZiI6MTcyMjU5NDAyNSwicGF0aCI6Ii8yMTY2MzcvMjk5OTY1MTg4LTM3ODlhMzU2LTc2YjMtNGI1OS05NDY4LWVmODI2NzdlOGNmZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODAyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwMlQxMDIwMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jYmJmMGZhNDY0ZWIxYTMzMDE1MWQwNzdhMDRiYTJhNjAyODcxZWE0MzIyYTM0NzU0M2U5NjE0MmMwNmExYTA2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.aAUywKvoc51_wz86icRSe0ICRXIoh81ymWu7Rlj3Jww)
Add required reviewers for approving the release and save the protection rules.
![image](https://private-user-images.githubusercontent.com/216637/299965421-2da6c7a6-ff9f-47a8-863d-310a0ffea6f2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI1OTQzMjUsIm5iZiI6MTcyMjU5NDAyNSwicGF0aCI6Ii8yMTY2MzcvMjk5OTY1NDIxLTJkYTZjN2E2LWZmOWYtNDdhOC04NjNkLTMxMGEwZmZlYTZmMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODAyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwMlQxMDIwMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02NWRlZTBiNDc3ODRkZWU2ZWRjZmY2Nzk3ZmI0YjMyZjZmOWFjYWNhOWE2OTFlY2FmZTM0MzQ2MTczMzQ2YWM5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.-zPPHmU5GuJGIQ27l8Ip45uuiwPzeWcTPYSpUmNOOfQ)
CC: @n0xa