aboutsummaryrefslogtreecommitdiff
path: root/ci-builds.nix (follow)
AgeCommit message (Collapse)AuthorFilesLines
2020-08-26feat: Implement automatic CI target detection for the depotVincent Ambo1-119/+0
Automatically walk the entire depot tree and pick out things that are "buildable", then include them in the attribute `ci.targets` (which is now also the target for CI builds). A long time ago, in a land far away, we (well, I, at the time) had a prototype of this which ran into constant issues with infinite recursions while trying to walk the tree. In fact, this is why readTree originally gained the `__readTree`-attribute which marks things that were imported automatically. Based on some code edef whipped up earlier (with the breakthrough being that we also add the attribute to top-level folders, which suddenly resolves a whole bunch of problems), I've now implemented this actually working version. At the moment all builds still happen as one big bag of builds, but at some point we will granularise this. Change-Id: I86f12ce7f63dae98e7e5c6646a4e9d220de783f2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1854 Tested-by: BuildkiteCI Reviewed-by: kanepyork <rikingcoding@gmail.com> Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-26fix(readTree): Add __readTree attribute to foldersVincent Ambo1-1/+1
This is required to automatically walk the tree (see subsequent commits). Note: Lisp packages are removed from the CI builds in this commit because the attrValues of third_party.lisp will contain an element that is simply `true`, which causes a type error. These packages are re-added when CI refactoring is complete. Change-Id: I21e2b719e6c7161c23d2867a216f4daa1c6c8394 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1848 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-26chore(glittershark): Temporarily skip grfn's subtreeVincent Ambo1-9/+0
... explanation within. Change-Id: Ia357d30577fcc8b3d8ebc85288683e50cc318fea Reviewed-on: https://cl.tvl.fyi/c/depot/+/1847 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-06chore(3p): Bump nixpkgs channelsVincent Ambo1-2/+4
Bumps both nixos-unstable and nixos-20.03 to today's versions, as per status.nixos.org Contains minor fixes to things that broke because of the update: * tazjin/frog: hardware.u2f is a deprecated setting * glittershark/system: modSha256 in Go modules is now vendorSha256 * glittershark/owothia: removed version constraint on relude Change-Id: Ib3e9612b1b06ed547b90e4f8b0ffe5ed7fe0a5c4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1642 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-03chore(3p/loxy): Move //users/edef/loxy to //third_partyedef1-0/+1
Change-Id: Ia451d190d4e415ef875c51ebeca12c7c5dc72342 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1590 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: tazjin <mail@tazj.in>
2020-07-27chore: Move //fun/tvldb -> //fun/paroxysmVincent Ambo1-1/+2
Say ~my~ its name! Change-Id: I7890318aef984af0f6bc011de32282f16e01cbb3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1483 Tested-by: BuildkiteCI Reviewed-by: eta <eta@theta.eu.org>
2020-07-27feat(3p/gerrit_plugins): init Gerrit checks pluginLuke Granger-Brown1-0/+1
The Gerrit Checks plugin adds a new tab to the Gerrit UI, which is intended for display of status of automated checks which are being run. We can use this for e.g. reporting the run status of our CI builds/other stuff. Change-Id: Ib0d9a8ae68061a76191a56d467d915100b766e1b Reviewed-on: https://cl.tvl.fyi/c/depot/+/1462 Tested-by: BuildkiteCI Reviewed-by: kanepyork <rikingcoding@gmail.com> Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-27chore(3p/gerrit_plugins): add machinery for compiling Gerrit plugins from sourceLuke Granger-Brown1-0/+5
This looks particularly obnoxious for the owners plugin, because it's actually two plugins with a common library in the same repo. Other plugins are much cleaner to deal with (hence the default for overlayPluginCmd). Change-Id: Ibb9588c8a29b63e8509436fcbb70054e89349712 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1461 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-25feat(3p/nix): Add build for VM for testing tvixGriffin Smith1-0/+1
Add an expression, based on the nixos qemu virtualisation framework, for a basic system whose nix is tvix, to be used for testing tvix Change-Id: I3c7422bb10d3ce05a3094671cb770f1f745d814c Reviewed-on: https://cl.tvl.fyi/c/depot/+/1423 Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: Alyssa Ross <hi@alyssa.is> Tested-by: BuildkiteCI
2020-07-23feat(web/panettone): The start of a very simple issue trackerGriffin Smith1-1/+6
Initial commit for Panettone, a very simple issue tracker for TVL. In its current state this launches a web server with authenticates with our ldap server, and supports listing and creating issues via static html pages and simple forms. We've been needing an issue tracker for a while now, but none of the options out there seem very good - or there are some good ones, but they're AGPL licensed and we don't want to deal with them. Rather than muck around with Trac or Bugzilla, we've decided to write our own. Change-Id: I704f0996d15199329bbd5450f3d959046bf13973 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1337 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-07-21feat(3p/lisp): Add cl-whoGriffin Smith1-1/+1
Change-Id: I35fcb65966be2bc63ef534ab0d575aae8beb3cdf Reviewed-on: https://cl.tvl.fyi/c/depot/+/1327 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-07-19feat(web/todolist): Implement a "todo-list" page generatorVincent Ambo1-0/+1
This invokes ripgrep & jq to construct a list of TODOs from known users across depot sources, and dumps it into a static page that we can serve. The structure is relatively simple, but it might be useful. See here for an example of what this looks like: https: //tazj.in/blobs/todos.png Change-Id: I1edef56606273584ab886b9e762c8ed4d210919d Reviewed-on: https://cl.tvl.fyi/c/depot/+/1296 Tested-by: BuildkiteCI Reviewed-by: Alyssa Ross <hi@alyssa.is>
2020-07-19feat(3p): Add rapidcheckGriffin Smith1-0/+1
Pulled from the commit at current master, overridden to build with clang and enable gtest and gmock integration. Change-Id: I10008e8c591bd0c7cc26566b2a050ef2a55bb346 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1282 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-07-17feat(3p/bufbuild): Import bufKane York1-1/+2
Change-Id: Ibb35980ce3a398dd7af1c14df9eba84f0fa414b7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1243 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: isomer <isomer@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi>
2020-07-13feat(gs/home): Integrate home-manager with depotGriffin Smith1-1/+3
Essentially the same as for nixos, so I can get whitby to compile stuff for me. Eventually I'll generalize this so things aren't as hardcoded to my particular setup, but for now I'm the only one in the depot who's using home-manager so this should be fine. Change-Id: I1cb0344f5a11eea68bddc98976999c0928dfa84e Reviewed-on: https://cl.tvl.fyi/c/depot/+/937 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-07-13feat(owothia): Add owothiaGriffin Smith1-0/+1
Add owothia, an irc bot that picks a random verb out of a random subset of messages and replies with a message of the form "<verb> me owo". it's incredibly messy, full of warnings, includes a *number* of harcoded things, but also is hilarious. Change-Id: I73cacd533bbbff9e753d1e542308da25247a7034 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1063 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-07-06feat(gs/keyboard): Integrate my layout with the depotGriffin Smith1-0/+1
Integrate the keyboard layout for my Ergodox EZ, which is a layout for QMK, with the depot, including exposing several cross-compilation packages necessary to compile qmk for avr in third_party. Change-Id: Idd43169a0a3cf0be2bd1a578fdaff70388a58bfc Reviewed-on: https://cl.tvl.fyi/c/depot/+/947 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-07-06feat(ops/nixos): Add generic rebuild-system scriptGriffin Smith1-11/+9
This adds a first crack at one idea for a generic, non-user-specific rebuild-system script to ops.nixos.rebuild-system. The idea here is that we enumerate all the nixos systems stored in the monorepo (similarly to what we do for ci-builds right now) then search through them by hostname to find the one matching the hostname of the current system, which is an attempt at a more generic version of tazjin's rebuilder script which does the same thing but with an explicit case block. As a caveat, it feels like there's a slight possibility that this way of finding systems is going to get slow to evaluate - on my system it feels fine but if it grows out of hand it's probably feasible to just bake this into the built script as a dynamically generated case statement. Change-Id: I2e4c5401913b6f4d936ab48ba2f95f96e0e78eb4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/894 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-07-05feat(3p/apereo-cas): initial Nix derivation (no TVL-specific config yet)Luke Granger-Brown1-0/+1
Change-Id: Ie7d52370dd554b110bbfa041b943fcf246373b94 Reviewed-on: https://cl.tvl.fyi/c/depot/+/933 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-07-05fix(3p/grpc): Bump to 1.30.0 and build with precompiled AbseilVincent Ambo1-0/+1
gRPC 1.29.0 can not be built with our precompiled libs because it accidentally overrides the C++ standard specified by the users. This was fixed in 1.30.0. Change-Id: I9a0390b3f5ec8dae6c295562f3a94b3dfa681dd1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/925 Tested-by: BuildkiteCI Reviewed-by: isomer <isomer@tvl.fyi>
2020-07-03feat(3p): add haskell-language-serverGriffin Smith1-0/+1
Add expression for building haskell-language-server, based on a vendored version of https://github.com/korayal/hls-nix with hashes updated to work with our nixpkgs version and ghc 8.8.3. Also add that to CI builds, so whitby will build it for me (thanks whitby). Change-Id: I373f8a7cb67974b8aa043b116436c074591b8d57 Reviewed-on: https://cl.tvl.fyi/c/depot/+/897 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: BuildkiteCI
2020-07-03feat(ci-builds): re-add xanthousGriffin Smith1-0/+1
This reverts commit 2249be39ed4d869ca602b353372f8d9066f0be28. Build should pass now that it's all been properly integrated into the nix tree. Change-Id: If2bfa642302368ac24d06ff7d853c0eda76811a7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/742 Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: Kane York <rikingcoding@gmail.com> Tested-by: BuildkiteCI
2020-07-02feat(ci-builds): add chupacabraGriffin Smith1-0/+4
My laptop, so I can recompile linux-ck not on my machine Change-Id: Ib42e0440628be6a4d03999220ab2c69b19d6e391 Reviewed-on: https://cl.tvl.fyi/c/depot/+/884 Reviewed-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Tested-by: BuildkiteCI
2020-07-02feat(nixos/whitby): Hello, World!Vincent Ambo1-0/+1
This adds NixOS configuration for the machine whitby.tvl.fyi. No interesting services are configured yet, so this configuration is quite plain. Change-Id: I67b7c75ebd6e298719b52e6b3bd83cc3be3c45d8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/843 Tested-by: BuildkiteCI Reviewed-by: BuildkiteCI Reviewed-by: isomer <isomer@tvl.fyi> Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-07-01feat(3p/openldap): Enable slapd-passwd-argon2 moduleVincent Ambo1-0/+1
This enables support for the Argon2 password hashing mechanism in OpenLDAP. Note that we also need to configure the LDAP module to load this, so this change is not yet sufficient for actually using Argon2 hashes. Change-Id: I151b854b777daa924b22224a43851432a88a2760 Reviewed-on: https://cl.tvl.fyi/c/depot/+/830 Reviewed-by: BuildkiteCI Reviewed-by: isomer <isomer@tvl.fyi> Tested-by: BuildkiteCI
2020-07-01chore(ci-builds): Move third_party builds to their own package groupVincent Ambo1-9/+8
... and remove a package that doesn't exist anymore (at this location) from the nixpkgs allowlist. Change-Id: I663c84c387fb04bb3b47448132ad768ed5352474 Reviewed-on: https://cl.tvl.fyi/c/depot/+/829 Reviewed-by: BuildkiteCI Reviewed-by: isomer <isomer@tvl.fyi> Tested-by: BuildkiteCI
2020-07-01feat(ci-builds): Include //fun/tvlbot and //fun/clbot in CI buildsVincent Ambo1-0/+2
Change-Id: I95daac993808ac9c3de06d20890cca108d8fa961 Reviewed-on: https://cl.tvl.fyi/c/depot/+/828 Reviewed-by: BuildkiteCI Reviewed-by: eta <eta@theta.eu.org> Tested-by: BuildkiteCI
2020-06-30chore(ci-builds): Build users.tazjin.finito in CIVincent Ambo1-0/+1
Change-Id: I96bb33e76b373795d8cc5a4a2c7a1f9f49179a36 Reviewed-on: https://cl.tvl.fyi/c/depot/+/804 Reviewed-by: BuildkiteCI Reviewed-by: ericvolp12 <ericvolp12@gmail.com> Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2020-06-29feat(nix/runExecline): add runExeclineProfpatsch1-1/+3
runExecline is a primitive that just does not care. It’s similar to `runCommand`, but instead of concatenating bash scripts left and right, it actually *uses* the features of `derivation`, passing things to `args` and making it possible to overwrite the `builder` in a sensible manner. Additionally, it provides a way to pass a nix string to `stdin` of the build script. Similar to `writeExecline`, the passed script is not a string, but a nested list of nix lists representing execline blocks. Escaping is done by the implementation, the user can just use normal nix strings. Change-Id: I890d9e5d921207751cdc8cc4309381395d92742f Reviewed-on: https://cl.tvl.fyi/c/depot/+/701 Reviewed-by: BuildkiteCI Reviewed-by: isomer <isomer@tvl.fyi> Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2020-06-29chore(ops): Clean up old GCP infrastructure filesVincent Ambo1-1/+0
This removes almost all of the GCP-infrastructure leftovers from my previous setup. The DNS configuration is retained, but moves to my user folder instead. Change-Id: I1867acd379443882f11a3c645846c9902eadd5b0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/782 Tested-by: BuildkiteCI Reviewed-by: eta <eta@theta.eu.org> Reviewed-by: isomer <isomer@tvl.fyi>
2020-06-29fix(ci-builds): typecheck __allTargets to be (list drv)Profpatsch1-5/+16
`nix-build -A` expects a list of derivations, otherwise it will silently skip some targets. We can use yants to ensure we don’t accidentally put test targets that do not run on CI. `depot.users.tazjin.blog` was one such target, the only real drv is in the `rendered` field. `getBins` is not a derivation, rather the `runTestsuite` prints `{}` if it succeeds and aborts the evaluation otherwise. We make it into a derivation, using the `emptyDerivation` primitive we added earlier. We could actually improve that still, see the TODO. Change-Id: I3e7658b21aa4ef84192ac43c11b986bd8570a115 Reviewed-on: https://cl.tvl.fyi/c/depot/+/666 Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: tazjin <mail@tazj.in>
2020-06-29feat(ci-builds): Add overridden haskell packagesGriffin Smith1-0/+9
Add all the haskell packages we've overridden to the ci targets, so we can check that they build successfully. Change-Id: I3c2f2d61f542cc06ac2266881e182e755fcb3774 Reviewed-on: https://cl.tvl.fyi/c/depot/+/743 Reviewed-by: Kane York <rikingcoding@gmail.com> Reviewed-by: tazjin <mail@tazj.in>
2020-06-29fix(ci-builds): Revert "Add Xanthous"Griffin Smith1-4/+0
This reverts commit 35600236eef2e9b04a9655931c3cb101c8650f0c. While I fix the build, fix CI for now Change-Id: I6edf741f511fe137fd4b9b4379177996aa1a7b5d Reviewed-on: https://cl.tvl.fyi/c/depot/+/738 Reviewed-by: glittershark <grfn@gws.fyi> Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-29feat(ci-builds): Add XanthousGriffin Smith1-0/+4
Add a ci-builds group for glittershark, with Xanthous. Change-Id: I6b0cbaa158e7e0a5e74e17de8758ce1684a86b52 Reviewed-on: https://cl.tvl.fyi/c/depot/+/732
2020-06-28feat(nix/getBins): add getBinsProfpatsch1-0/+1
This is a simple-stupid “unix import system” for nix, for referencing binaries in `/bin/` by their name and lifting them to a Nix attrset. Allows for simple aliasing of executable names. Change-Id: Ifa23cb377201c3b08050c5026e9751e736afaf56 Reviewed-on: https://cl.tvl.fyi/c/depot/+/664 Reviewed-by: tazjin <mail@tazj.in>
2020-06-26chore(ci-builds): Update for moved targetsVincent Ambo1-4/+7
Change-Id: I2227d13fd4769f2b4411a43082543a5b56cacfb1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/605 Reviewed-by: isomer <isomer@tvl.fyi>
2020-06-24refactor(ci-builds): Split up CI builds into multiple bucketsVincent Ambo1-33/+68
These categories separate CI targets, which hopefully avoids the out-of-space errors we have been seeing on Sourcehut. The sets of CI build targets are made available in the depot itself so that besadii can be updated to create a new build for each target group. For convenience, 'ciBuilds' contains an '__allTargets' attribute which combines the contents of each target batch - this makes it possible to still invoke a build for everything by using: nix-build -A ciBuilds.__allTargets Note: Some targets that were previously built in CI aren't anymore, most importantly my NixOS systems which don't fit on Sourcehut. Change-Id: Ia15ed7b743c8add51ae08ce0827a0ddfacd637e2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/570 Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-18chore(tazjin/emacs): Move //tools/emacs to //users/tazjin/emacsVincent Ambo1-1/+1
Change-Id: I9dfbd0bb1fd3e215bb91c5734fb0934ee3faeae6
2020-06-13refactor(ops/nixos): Move my NixOS configurations to //users/tazjinVincent Ambo1-6/+3
NixOS modules move one level up because it's unlikely that //ops/nixos will contain actual systems at this point (they're user-specific). This is the first users folder, so it is also added to the root readTree invocation for the repository. Change-Id: I546c701145fa204b7ba7518a8a56a783588629e0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/244 Reviewed-by: tazjin <mail@tazj.in>
2020-06-11feat(ci-build): Build frog in CIVincent Ambo1-0/+1
Change-Id: I86fc06c7997688863e08017db9bbe7b9848881ff Reviewed-on: https://cl.tvl.fyi/c/depot/+/62 Reviewed-by: tazjin <mail@tazj.in>
2020-05-17feat(ci-builds): Build //third_party/nix in CIVincent Ambo1-0/+1
2020-04-21chore(web/tvl): Bootstrap static assets for TVL pageVincent Ambo1-0/+1
2020-04-19chore(build): Exclude nugget from CI buildsVincent Ambo1-1/+5
2020-03-01fix(build): Remove guile from CI buildsVincent Ambo1-1/+0
2020-02-21chore(build): Build besadii in CIVincent Ambo1-1/+1
(ironic)
2020-02-21feat(build): Add //fun and //ops/nixos projects to CI buildsVincent Ambo1-8/+13
2020-02-09fix(ci-builds): Remove tools.blog_cliVincent Ambo1-1/+0
2020-02-09chore(web): Delete //web/tazblogVincent Ambo1-1/+0
Deleting this code feels strange. This project has been around for a decade, and despite occasionally needing a bunch of tweaks it had aged well and worked fine for a very long time. I've reached a strange point where I don't really feel like using Haskell anymore, and every interaction with this project in recent years has been fighting dependency management tooling for Haskell, or dealing with strange build problems. The simple fact is that the service never really did anything other than render Markdown dynamically, and at this point I can do that much better with //tools/cheddar instead. So, tazblog-hs, it's time to say goodbye. Rest in peace!
2020-02-08feat(web/blog): Add Nix-based static blog generatorVincent Ambo1-0/+1
This introduces a derivation which builds an instance of nginx statically serving my blog posts, though as of now no indexes are being generated and no XML feed is available. This is just the initial draft of this setup and not yet what shall be yielded in the end.
2020-01-22chore(build): Build Lisp DNS library in CIVincent Ambo1-0/+1