summaryrefslogtreecommitdiff
path: root/topics
diff options
context:
space:
mode:
authorArun Isaac2023-07-13 10:01:06 +0100
committerArun Isaac2023-07-13 10:01:06 +0100
commit6107c0ab3aa2d3fa2814fe67d47225fdb4dc8b55 (patch)
tree84ed94ddba1c93b5354727b2779d7c8bf6c587b7 /topics
parent3e3bb47baaabb4f1bc9083c7319ef8fb711cbe07 (diff)
downloadgn-gemtext-6107c0ab3aa2d3fa2814fe67d47225fdb4dc8b55.tar.gz
Add CI rethink slides.
Diffstat (limited to 'topics')
-rw-r--r--topics/ci-rethink-slides.gmi28
1 files changed, 28 insertions, 0 deletions
diff --git a/topics/ci-rethink-slides.gmi b/topics/ci-rethink-slides.gmi
new file mode 100644
index 0000000..e8cb601
--- /dev/null
+++ b/topics/ci-rethink-slides.gmi
@@ -0,0 +1,28 @@
+# CI Rethink slides
+
+## Background
+* guix-forge is an independent general purpose project that powers our CI
+* guix-forge is built on laminar
+* CI jobs are just simple scripts
+* scripts are written in G-expressions, but don't have to be
+
+## So far
+* purpose-written scripts that were executed in profiles with the necessary dependencies
+* dependencies are from current Guix
+* container had to be rebuilt to update dependencies
+* jobs did not have access to high-level Guix features (package definitions, build systems, manifests, etc.)
+* jobs only understood low-level features (profile paths, store paths, etc.)
+* One advantage: job runs were fast
+
+## What's new?
+* jobs have access to the full expressive power of Guix
+* project repositories are channels
+* jobs pull from the channels and build all packages defined therein
+* job script definitions now in package definitions from channels
+* container need not be rebuilt each time dependencies change
+* Perfect reproducibility: Make Fred's life easier
+* One disadvantage: job runs will take a while
+
+## Why now?
+* Ludo's blog post “From development environments to continuous integration”
+* realization that project repositories could be channels \ No newline at end of file