zmk/lambda/default.nix
Chris Andreae c7fc3432cd
Docker container and lambda function for performing firmware builds
Provides an entry point that builds and returns a combined LH + RH keyboard
firmware when provided a keymap via a POST body.

Wraps compilation with ccache, and includes a pre-warmed cache of the build in /tmp/ccache.
To maximize chance of a direct cache hit, changes the lambda driver to always build in /tmp/build.

some back of the envelope measurements (2012 xeon e3-1230v2, nixos)
clean build, no cache -> 21.308
clean build, cache -> 7.145
modified keymap, clean build, cache -> 12.127
2022-12-24 13:00:14 +09:00

26 lines
420 B
Nix

{ pkgs ? import <nixpkgs> {} }:
with pkgs;
let
bundleEnv = bundlerEnv {
name = "lambda-bundler-env";
ruby = ruby_3_1;
gemfile = ./Gemfile;
lockfile = ./Gemfile.lock;
gemset = ./gemset.nix;
};
source = stdenv.mkDerivation {
name = "lambda-builder";
version = "0.0.1";
src = ./.;
installPhase = ''
cp -r ./ $out
'';
};
in
{
inherit bundleEnv source;
}