Skip to content

Commit 1e48ee5

Browse files
authored
Merge pull request #20 from cpq/about
Added automatic tests chapter, and About chapter
2 parents b0820b5 + e7d0365 commit 1e48ee5

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

README.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1653,3 +1653,47 @@ for more details.
16531653
16541654
A complete project source code you can find in
16551655
[step-7-webserver](step-7-webserver) directory.
1656+
1657+
## Automatic software and hardware tests
1658+
1659+
It is a good practice for a software project to have a continuous
1660+
integration (CI) test. On every change pushed to the
1661+
repository, CI automatically rebuilds and tests all components.
1662+
1663+
Github makes it easy to do. We can create a `.github/workflows/test.yml` file
1664+
which is a CI configuration file. In that file, we can install ARM GCC
1665+
and run `make` in every example directory to build respective firmwares.
1666+
1667+
Long story short! This tells Github to run on every repo push:
1668+
https://github.com/cpq/bare-metal-programming-guide/blob/b0820b5c62b74a9b4456854feb376cda8cde4ecd/.github/workflows/test.yml#L1-L2
1669+
1670+
This installs ARM GCC compiler:
1671+
https://github.com/cpq/bare-metal-programming-guide/blob/b0820b5c62b74a9b4456854feb376cda8cde4ecd/.github/workflows/test.yml#L9
1672+
1673+
This builds a firmware in every example directory:
1674+
https://github.com/cpq/bare-metal-programming-guide/blob/b0820b5c62b74a9b4456854feb376cda8cde4ecd/.github/workflows/test.yml#L10-L18
1675+
1676+
That's it! Extremely simple and extremely powerful. Now if we push a change to
1677+
the repo which breaks a build, Github will notify us. On success, Github will
1678+
keep quiet. See an [example successful
1679+
run](https://github.com/cpq/bare-metal-programming-guide/actions/runs/3840030588).
1680+
1681+
Would it be great to also test built firmware binaries on a real hardware, to
1682+
test not only the build process, but that the built firmware is correct and
1683+
functional? Easy. See my other guide [COMING SOON] for detailed instructions.
1684+
1685+
## About the author
1686+
1687+
I am Sergey Lyubka, an engineer and entrepreneur. I am a director and
1688+
co-founder at Cesanta - a technology company based in Dublin, Ireland. I hold
1689+
MSc in RadioPhysics and Electronics from Kyiv State University, Ukraine.
1690+
1691+
My passion is bare metal embedded programming and embedded network
1692+
programming. My company develops an open source, embedded [HTTP/MQTT/Websocket
1693+
network library](https://github.com/cesanta/mongoose).
1694+
1695+
I am open to give talks on embedded network programming - so [please
1696+
contact](https://mongoose.ws/contact/) if you'd like me to talk for your
1697+
company's development team, or at your university.
1698+
1699+
Thank you!

0 commit comments

Comments
 (0)