diff --git a/docs/content/en-US/02-lay-of-the-land/06-the-ci-server/index.adoc b/docs/content/en-US/02-lay-of-the-land/06-the-ci-server/index.adoc new file mode 100644 index 00000000..fce79414 --- /dev/null +++ b/docs/content/en-US/02-lay-of-the-land/06-the-ci-server/index.adoc @@ -0,0 +1,34 @@ +--- +title: The CI server +--- += The CI server + +This project makes a lot of milage from using link:https://docs.github.com/actions[GitHub Actions] as the CI server. +It uses the server for a lot of automated tasks including: + +* Checking whether all flake outputs are valid. +* Checking if the flake lockfile is up-to-date. +* Building the packages from this project and pushing it to a binary cache which speeds up fetching my packages. +* Building the personalized console ISO mainly used for bootstrapping systems and publicly releasing it. footnote:[I can't build the graphical installer since its size is more than 2GB which is the size limit for GitHub Releases.] +* Building the site project. + +Not only this is great for them automation but also it prevents the magical it-works-on-my-machine-related problems. + +[chat, Ezran, role=reversed] +==== +Isn't that the point of using Nix, though? +To easily make reproducible builds preventing the it-works-on-my-machine problems. +==== + +[chat, foodogsquared] +==== +Yeah but it can still happen especially that not all of the changes I push into the public repo is out. +==== + +To keep the CI workflows up-to-date, this project makes use of link:https://github.com/dependabot[Dependabot] which checks for GitHub actions versions weekly. + +As a highlight, there are some nifty GitHub actions I found to fully take advantage of GitHub's large ecosystem. + +* github:DeterminateSystems/update-flake-lock[Determinate Systems has a GitHub action for automating flake updates.] +* github:DeterminateSystems/nix-installer-action[They also have a Nix installer GitHub action.] +* github:DeterminateSystems/magic-nix-cache-action[They also have a nice GitHub action for caching Nix outputs] using your runners' built-in cache making certain steps faster. diff --git a/docs/content/en-US/menu.adoc b/docs/content/en-US/menu.adoc index ff7ee897..5b82f38d 100644 --- a/docs/content/en-US/menu.adoc +++ b/docs/content/en-US/menu.adoc @@ -6,6 +6,7 @@ ** link:{{< relref "./02-lay-of-the-land/03-whats-in-my-flake/" >}}[What's in my flake?] ** link:{{< relref "./02-lay-of-the-land/04-channels-support/" >}}[Channels support] ** link:{{< relref "./02-lay-of-the-land/05-what-should-not-be-here/" >}}[What should not be here?] +** link:{{< relref "./02-lay-of-the-land/06-the-ci-server/" >}}[The CI server] * Project-specific setup ** link:{{< relref "./03-project-specific-setup/01-declarative-host-management" >}}[Declarative host management]