Public Repository

Last pushed: 2 years ago
Short Description
Jenkins Server for Atomthreads RTOS Build/Test
Full Description

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:

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
Docker Pull Command