Jenkins instance pre-configured for continuous integration of Atomthreads RTOS.
Builds the project under various CPU architectures and runs the automated test suite using emulation tools (e.g. QEMU for ARM and SimAVR for AVR).
A single Jenkins job
atomthreads exists which downloads the latest Atomthreads source tree from Github then builds and runs the automated test suite using the official Atomthreads build/test container kelvinlawson/atomthreads.
The Atomthreads build/test is run inside the kelvinlawson/atomthreads Docker container, which is itself running inside this Jenkins Docker container (i.e. Docker-in-Docker). The outside Jenkins container needs to pull the kelvinlawson/atomthreads container image from Docker Hub. The image is currently ~1GB so rather than lose this if the outside Jenkins container exits, it is useful to restart the exited container so that it still contains the cached Docker images.
Run this Jenkins container using:
docker run -p 8080:8080 --privileged kelvinlawson/jenkins-atomthreads
Then open a web browser and navigate to the Jenkins server
http://<ipaddr>:8080 from where you can initiate Atomthreads build and test jobs.
To restart an exited container (which will contain the build history and cached sub-containers pulled from Docker Hub), pass the exited container ID (visibile in
docker ps -a) to
docker start <id>
It is also convenient to rename the running container ID so that you can restart it in future without referring to the list of hex IDs in the exited containers list (
docker ps -a):
docker rename <id> jenkins-running
You can then restart it in future using:
docker start jenkins-running