Use gitlab CI commit 3bca937c9ff91852269a828de0c778db7d1423df Author: Alan Pearce <alan@alanpearce.eu> Date: Sat Apr 20 01:14:26 2024 +0200 create gitlab CI configuration commit ee9eeab17ac88f4020d857dcceb458c66418e2f6 Author: Alan Pearce <alan@alanpearce.eu> Date: Sat Apr 20 16:07:01 2024 +0200 make helpers for both building and streaming docker images commit d8340ec8ff3e3f9c51b55e95e27e518330435b7c Author: Alan Pearce <alan@alanpearce.eu> Date: Sat Apr 20 00:20:34 2024 +0200 use long git hashes for docker tags
1 file changed, 12 insertions(+), 8 deletions(-)
changed files
M nix/scripts.nix → nix/scripts.nix
@@ -5,12 +5,14 @@ ${watchexec}/bin/watchexec --restart \ --watch flake.nix \ --watch flake.lock \ ''; - image = (builtins.fromTOML (builtins.readFile ../fly.toml)).build.image; + imageName = (builtins.fromTOML (builtins.readFile ../fly.toml)).build.image; nonDarwinSystem = builtins.replaceStrings [ "darwin" ] [ "linux" ] pkgs.stdenv.system; - attr = "docker-${nonDarwinSystem}"; + flySystem = "x86_64-linux"; + mkAttr = type: system: ".#docker-${type}-${system}"; sh = (pkgs.lib.optionalString pkgs.stdenv.isDarwin "ssh linux-builder ") + "sh"; - stream = attr: "nix build --print-out-paths .#${attr} | ${sh}"; + stream = system: "nix build --print-out-paths ${(mkAttr "stream") system} | ${sh}"; + image = system: "nix build ${(mkAttr "image") system}"; in with pkgs; [ (writeShellScriptBin "watch-builder" ''@@ -22,10 +24,12 @@ '') (writeShellScriptBin "check-licenses" '' ${go-licenses}/bin/go-licenses check --include_tests ./... --disallowed_types=restricted,forbidden '') - (writeShellScriptBin "stream" "${stream attr}") - (writeShellScriptBin "stream-fly" "${stream "fly"}") + (writeShellScriptBin "stream" "${stream nonDarwinSystem}") + (writeShellScriptBin "stream-fly" "${stream flySystem}") + (writeShellScriptBin "image" "${image nonDarwinSystem}") + (writeShellScriptBin "image-fly" "${image flySystem}") (writeShellScriptBin "load-locally" '' - ${stream attr} | ${docker-client}/bin/docker load "$@" + stream | ${docker-client}/bin/docker load "$@" '') (writeShellScriptBin "push-to-registry" '' if test -z "''${1:-}"; then@@ -39,12 +43,12 @@ EOF exit 1 fi echo skopeo copy docker-archive:/dev/stdin "$@" - stream-fly | ${gzip}/bin/gzip --fast | ${skopeo}/bin/skopeo copy docker-archive:/dev/stdin "$@" + stream fly | ${gzip}/bin/gzip --fast | ${skopeo}/bin/skopeo copy docker-archive:/dev/stdin "$@" '') (writeShellScriptBin "deploy" '' set -eu TAG=$(git rev-parse HEAD) - IMAGE=${image}:$TAG + IMAGE=${imageName}:$TAG push-to-registry docker://$IMAGE ${pkgs.flyctl}/bin/flyctl deploy --image $IMAGE '')