![]() This allows us to have a deterministic build (given a fixed environment) without having to rely on GIT (the .git is not copied in the Guix build environment), and without having to rely on Guix (which previously had to inject the input hash into the source tree). Guix is therefore "only" responsible for ensuring that the build tools and environment are fixed, but is not strictly necessary to have reproducible builds. |
||
---|---|---|
example-os | ||
test | ||
utils | ||
.gitignore | ||
.travis.yml | ||
appveyor.yml | ||
guix.scm | ||
guix.scm-gpl-license | ||
LICENSE.txt | ||
Makefile | ||
Makefile.example-os | ||
Makefile.test-example-os | ||
README.md | ||
travis-deploy-key-id_rsa.enc |
Travis test harness for hobby operating systems
The guix.scm file is a build recipe for os-test-framework, for the Guix package manager. This file is released under the GNU GPL version 3 or later, because it calls other recipies and library functions which are under the GPL. Other files (with the exception of guix.scm-gpl-license
and LICENSE.txt
) are released using the CC0 public domain dedication.
This Travis configuration runs an operating system in various emulators. It can execute a SikuliX test script to ensure that some elements are visible on-screen, send keystrokes and mouse events, and interact with the OS GUI in an automated way. Finally, it will take screenshots of the operating system, and upload them to a separate repository hosting these artifacts.
Below are screenshots of an example operating system. This example merely displays a gradient and does not process any user input.